From 87499ee545fa466ebf925d1f541630c6dea1846c Mon Sep 17 00:00:00 2001 From: Alireza Ashayer Date: Thu, 10 Nov 2016 18:50:25 +0330 Subject: [PATCH 1/2] Allocated more memory for events to prevent heap corruption when using events with large string data (#749) --- spine-c/src/spine/AnimationState.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-c/src/spine/AnimationState.c b/spine-c/src/spine/AnimationState.c index d64bca18f..00b52b0b7 100644 --- a/spine-c/src/spine/AnimationState.c +++ b/spine-c/src/spine/AnimationState.c @@ -59,7 +59,7 @@ void _spAnimationState_disposeTrackEntry (spTrackEntry* entry) { spAnimationState* spAnimationState_create (spAnimationStateData* data) { _spAnimationState* internal = NEW(_spAnimationState); spAnimationState* self = SUPER(internal); - internal->events = MALLOC(spEvent*, 64); + internal->events = MALLOC(spEvent*, 256); self->timeScale = 1; CONST_CAST(spAnimationStateData*, self->data) = data; internal->createTrackEntry = _spAnimationState_createTrackEntry; From 36000e3c550a80c712afcf65a73103c7d29c9f5f Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Tue, 15 Nov 2016 23:10:23 +0100 Subject: [PATCH 2/2] Updated to v3.5 (merge dev branch). # Conflicts: # spine-c/src/spine/AnimationState.c --- examples/alien/export/alien.json | 503 +-- examples/alien/export/alien.skel | Bin 9856 -> 9848 bytes examples/dragon/export/dragon.json | 8 +- examples/dragon/export/dragon.skel | Bin 8612 -> 8588 bytes examples/export/runtimes.sh | 34 + examples/goblins/export/goblins-mesh.json | 73 +- examples/goblins/export/goblins-mesh.skel | Bin 17763 -> 17751 bytes examples/goblins/export/goblins.json | 11 +- examples/goblins/export/goblins.skel | Bin 5857 -> 5848 bytes examples/hero/export/hero-mesh.json | 84 +- examples/hero/export/hero-mesh.skel | Bin 36066 -> 36047 bytes examples/hero/export/hero.json | 36 +- examples/hero/export/hero.skel | Bin 13721 -> 13709 bytes examples/powerup/export/powerup.json | 23 +- examples/powerup/export/powerup.skel | Bin 3948 -> 3940 bytes examples/raptor/export/raptor.json | 104 +- examples/raptor/export/raptor.skel | Bin 36802 -> 36754 bytes examples/speedy/export/speedy.json | 71 +- examples/speedy/export/speedy.skel | Bin 8830 -> 8824 bytes .../spineboy-old/export/spineboy-old.json | 21 +- .../spineboy-old/export/spineboy-old.skel | Bin 7727 -> 7718 bytes examples/spineboy/export/spineboy-hover.json | 149 +- examples/spineboy/export/spineboy-hover.skel | Bin 13754 -> 13732 bytes examples/spineboy/export/spineboy-mesh.json | 52 +- examples/spineboy/export/spineboy-mesh.skel | Bin 17579 -> 17564 bytes examples/spineboy/export/spineboy.json | 33 +- examples/spineboy/export/spineboy.skel | Bin 15529 -> 15521 bytes examples/spinosaurus/export/spinosaurus.json | 31 +- examples/spinosaurus/export/spinosaurus.skel | Bin 1796 -> 1799 bytes examples/stretchyman/export/stretchyman.json | 189 +- examples/stretchyman/export/stretchyman.skel | Bin 24155 -> 24121 bytes examples/tank/export/tank.json | 108 +- examples/tank/export/tank.skel | Bin 24609 -> 24540 bytes examples/test/export/test.json | 63 +- examples/test/export/test.skel | Bin 5366 -> 5364 bytes examples/vine/export/vine.json | 30 +- examples/vine/export/vine.skel | Bin 10276 -> 10268 bytes spine-as3/spine-as3-example/lib/spine-as3.swc | Bin 74419 -> 86016 bytes spine-as3/spine-as3-example/src/spineboy.json | 33 +- spine-as3/spine-as3/src/spine/Bone.as | 248 +- spine-as3/spine-as3/src/spine/BoneData.as | 3 +- spine-as3/spine-as3/src/spine/Constraint.as | 37 + spine-as3/spine-as3/src/spine/IkConstraint.as | 43 +- .../spine-as3/src/spine/IkConstraintData.as | 1 + spine-as3/spine-as3/src/spine/MathUtils.as | 4 + .../spine-as3/src/spine/PathConstraint.as | 30 +- .../spine-as3/src/spine/PathConstraintData.as | 1 + .../spine-as3/src/spine/Pool.as | 109 +- spine-as3/spine-as3/src/spine/Poolable.as | 5 + spine-as3/spine-as3/src/spine/Skeleton.as | 202 +- .../spine-as3/src/spine/SkeletonBounds.as | 9 +- spine-as3/spine-as3/src/spine/SkeletonData.as | 3 + spine-as3/spine-as3/src/spine/SkeletonJson.as | 12 +- .../src/spine/TransformConstraint.as | 32 +- .../src/spine/TransformConstraintData.as | 1 + .../spine-as3/src/spine/TransformMode.as | 46 +- .../src/spine/animation/Animation.as | 20 +- .../src/spine/animation/AnimationState.as | 668 +++- .../src/spine/animation/AttachmentTimeline.as | 24 +- .../src/spine/animation/ColorTimeline.as | 62 +- .../src/spine/animation/CurveTimeline.as | 6 +- .../src/spine/animation/DeformTimeline.as | 90 +- .../src/spine/animation/DrawOrderTimeline.as | 31 +- .../src/spine/animation/EventQueue.as | 122 + .../src/spine/animation/EventTimeline.as | 8 +- .../src/spine/animation/EventType.as | 41 + .../spine/animation/IkConstraintTimeline.as | 34 +- .../animation/PathConstraintMixTimeline.as | 50 +- .../PathConstraintPositionTimeline.as | 36 +- .../PathConstraintSpacingTimeline.as | 37 +- .../src/spine/animation/RotateTimeline.as | 59 +- .../src/spine/animation/ScaleTimeline.as | 66 +- .../src/spine/animation/ShearTimeline.as | 55 +- .../spine-as3/src/spine/animation/Timeline.as | 4 +- .../src/spine/animation/TimelineType.as | 56 + .../src/spine/animation/TrackEntry.as | 56 +- .../animation/TransformConstraintTimeline.as | 74 +- .../src/spine/animation/TranslateTimeline.as | 48 +- .../src/spine/attachments/VertexAttachment.as | 11 +- spine-c/include/spine/Animation.h | 21 +- spine-c/include/spine/AnimationState.h | 74 +- spine-c/include/spine/Bone.h | 12 +- spine-c/include/spine/BoneData.h | 12 +- spine-c/include/spine/IkConstraint.h | 5 +- spine-c/include/spine/IkConstraintData.h | 2 +- spine-c/include/spine/PathConstraintData.h | 1 + spine-c/include/spine/Skeleton.h | 2 - .../include/spine/TransformConstraintData.h | 1 + spine-c/include/spine/extension.h | 61 +- spine-c/src/spine/Animation.c | 900 ++++-- spine-c/src/spine/AnimationState.c | 917 ++++-- spine-c/src/spine/Bone.c | 228 +- spine-c/src/spine/BoneData.c | 3 +- spine-c/src/spine/IkConstraint.c | 36 +- spine-c/src/spine/PathConstraint.c | 23 +- spine-c/src/spine/RegionAttachment.c | 2 +- spine-c/src/spine/Skeleton.c | 248 +- spine-c/src/spine/SkeletonBinary.c | 28 +- spine-c/src/spine/SkeletonJson.c | 18 +- spine-c/src/spine/TransformConstraint.c | 26 +- spine-c/src/spine/VertexAttachment.c | 12 +- .../Resources/goblins-mesh.json | 73 +- spine-cocos2d-objc/Resources/raptor.json | 104 +- spine-cocos2d-objc/Resources/spineboy.json | 33 +- spine-cocos2d-objc/Resources/tank.json | 108 +- spine-cocos2d-objc/example/SpineboyExample.m | 27 +- .../src/spine/SkeletonAnimation.h | 20 +- .../src/spine/SkeletonAnimation.m | 92 +- .../example/Classes/SpineboyExample.cpp | 26 +- .../Resources/common/goblins-mesh.json | 73 +- .../example/Resources/common/raptor.json | 104 +- .../example/Resources/common/spineboy.json | 33 +- .../example/Resources/common/tank.json | 108 +- .../src/spine/SkeletonAnimation.cpp | 87 +- spine-cocos2dx/src/spine/SkeletonAnimation.h | 20 +- spine-corona/data/goblins-mesh.json | 73 +- spine-corona/data/raptor.json | 104 +- spine-corona/data/spineboy.json | 33 +- spine-corona/data/stretchyman.json | 189 +- spine-corona/data/tank.json | 108 +- spine-corona/data/test.json | 63 +- spine-corona/data/vine.json | 30 +- spine-corona/main.lua | 35 +- spine-csharp/README.md | 2 +- spine-csharp/spine-csharp.csproj | 97 +- spine-csharp/src/Animation.cs | 811 +++-- spine-csharp/src/AnimationState.cs | 936 +++++- spine-csharp/src/AnimationStateData.cs | 9 +- .../src/Attachments/AtlasAttachmentLoader.cs | 2 +- .../src/Attachments/PathAttachment.cs | 2 +- .../src/Attachments/RegionAttachment.cs | 3 +- .../src/Attachments/VertexAttachment.cs | 15 +- spine-csharp/src/Bone.cs | 253 +- spine-csharp/src/BoneData.cs | 19 +- spine-csharp/src/Event.cs | 24 +- spine-csharp/src/ExposedList.cs | 11 + spine-csharp/src/IConstraint.cs | 5 + spine-csharp/src/IkConstraint.cs | 43 +- spine-csharp/src/IkConstraintData.cs | 2 + spine-csharp/src/Json.cs | 100 +- spine-csharp/src/MathUtils.cs | 28 +- spine-csharp/src/PathConstraint.cs | 27 +- spine-csharp/src/PathConstraintData.cs | 16 +- spine-csharp/src/Skeleton.cs | 201 +- spine-csharp/src/SkeletonBinary.cs | 42 +- spine-csharp/src/SkeletonBounds.cs | 9 +- spine-csharp/src/SkeletonData.cs | 17 +- spine-csharp/src/SkeletonJson.cs | 20 +- spine-csharp/src/Skin.cs | 2 +- spine-csharp/src/TransformConstraint.cs | 35 +- spine-csharp/src/TransformConstraintData.cs | 2 + .../assets/goblins/goblins-mesh.json | 73 +- .../assets/goblins/goblins-mesh.skel | Bin 17763 -> 17751 bytes .../assets/goblins/goblins.json | 11 +- .../assets/goblins/goblins.skel | Bin 5857 -> 5848 bytes .../assets/raptor/raptor.json | 104 +- .../assets/raptor/raptor.skel | Bin 36802 -> 36754 bytes .../assets/spineboy-old/spineboy-old.json | 21 +- .../assets/spineboy-old/spineboy-old.skel | Bin 7727 -> 7718 bytes .../assets/spineboy/spineboy-hover.json | 149 +- .../assets/spineboy/spineboy-hover.skel | Bin 13754 -> 13732 bytes .../assets/spineboy/spineboy-mesh.json | 52 +- .../assets/spineboy/spineboy-mesh.skel | Bin 17579 -> 17564 bytes .../assets/spineboy/spineboy.json | 33 +- .../assets/spineboy/spineboy.skel | Bin 15529 -> 15521 bytes .../spine-libgdx-tests/assets/test/test.json | 11 +- .../spine-libgdx-tests/assets/test/test.spine | Bin 392 -> 436 bytes .../spine/AnimationStateTest.java | 215 -- .../spine/AnimationStateTests.java | 822 +++++ .../esotericsoftware/spine/BonePlotting.java | 2 +- .../esotericsoftware/spine/Box2DExample.java | 7 +- .../spine/EventTimelineTests.java | 8 +- .../com/esotericsoftware/spine/MixTest.java | 14 +- .../esotericsoftware/spine/NormalMapTest.java | 2 +- .../com/esotericsoftware/spine/Sandbox.java | 131 - .../esotericsoftware/spine/SimpleTest2.java | 30 +- .../.settings/org.eclipse.jdt.core.prefs | 3 +- .../com/esotericsoftware/spine/Animation.java | 913 ++++-- .../spine/AnimationState.java | 1026 ++++-- .../spine/AnimationStateData.java | 21 +- .../com/esotericsoftware/spine/BlendMode.java | 1 + .../src/com/esotericsoftware/spine/Bone.java | 288 +- .../com/esotericsoftware/spine/BoneData.java | 39 +- .../esotericsoftware/spine/Constraint.java | 37 + .../src/com/esotericsoftware/spine/Event.java | 10 + .../com/esotericsoftware/spine/EventData.java | 4 + .../esotericsoftware/spine/IkConstraint.java | 59 +- .../spine/IkConstraintData.java | 18 + .../spine/PathConstraint.java | 41 +- .../spine/PathConstraintData.java | 41 +- .../com/esotericsoftware/spine/Skeleton.java | 325 +- .../spine/SkeletonBinary.java | 23 +- .../spine/SkeletonBounds.java | 28 +- .../esotericsoftware/spine/SkeletonData.java | 105 +- .../esotericsoftware/spine/SkeletonJson.java | 64 +- .../spine/SkeletonMeshRenderer.java | 12 +- .../spine/SkeletonRenderer.java | 2 +- .../spine/SkeletonRendererDebug.java | 21 +- .../src/com/esotericsoftware/spine/Skin.java | 15 +- .../src/com/esotericsoftware/spine/Slot.java | 34 +- .../com/esotericsoftware/spine/SlotData.java | 8 +- .../spine/TransformConstraint.java | 43 +- .../spine/TransformConstraintData.java | 26 + .../attachments/AtlasAttachmentLoader.java | 5 + .../spine/attachments/Attachment.java | 2 + .../spine/attachments/AttachmentLoader.java | 12 +- .../attachments/BoundingBoxAttachment.java | 13 +- .../spine/attachments/MeshAttachment.java | 35 +- .../spine/attachments/PathAttachment.java | 20 +- .../spine/attachments/RegionAttachment.java | 26 +- .../spine/attachments/VertexAttachment.java | 50 +- .../spine/SkeletonViewer.java | 330 +- spine-love/data/goblins-mesh.json | 73 +- spine-love/data/raptor.json | 104 +- spine-love/data/spineboy.json | 33 +- spine-love/data/stretchyman.json | 189 +- spine-love/data/tank.json | 108 +- spine-love/data/test.json | 63 +- spine-love/data/vine.json | 30 +- spine-love/main.lua | 23 +- spine-lua/Animation.lua | 808 +++-- spine-lua/AnimationState.lua | 942 ++++-- spine-lua/Bone.lua | 229 +- spine-lua/BoneData.lua | 4 + spine-lua/Color.lua | 2 +- spine-lua/IkConstraint.lua | 44 +- spine-lua/IkConstraintData.lua | 1 + spine-lua/PathConstraint.lua | 28 +- spine-lua/PathConstraintData.lua | 1 + spine-lua/Skeleton.lua | 230 +- spine-lua/SkeletonBounds.lua | 9 +- spine-lua/SkeletonJson.lua | 14 +- spine-lua/TransformConstraint.lua | 20 +- spine-lua/TransformConstraintData.lua | 1 + spine-lua/TransformMode.lua | 38 + spine-lua/attachments/MeshAttachment.lua | 14 +- spine-lua/attachments/RegionAttachment.lua | 4 +- spine-lua/attachments/VertexAttachment.lua | 14 +- spine-lua/utils.lua | 12 + spine-monogame/LICENSE | 31 +- spine-monogame/README.md | 2 +- spine-sfml/data/goblins-mesh.json | 73 +- spine-sfml/data/goblins-mesh.skel | Bin 17763 -> 17751 bytes spine-sfml/data/raptor.json | 104 +- spine-sfml/data/raptor.skel | Bin 36802 -> 36754 bytes spine-sfml/data/spineboy.json | 33 +- spine-sfml/data/spineboy.skel | Bin 15529 -> 15521 bytes spine-sfml/data/stretchyman.json | 189 +- spine-sfml/data/stretchyman.skel | Bin 24155 -> 24121 bytes spine-sfml/data/tank.json | 108 +- spine-sfml/data/tank.skel | Bin 24609 -> 24540 bytes spine-sfml/data/vine.json | 30 +- spine-sfml/data/vine.skel | Bin 10276 -> 10268 bytes spine-sfml/example/main.cpp | 19 +- .../spine-starling-example/lib/spine-as3.swc | Bin 74436 -> 86016 bytes .../lib/spine-starling.swc | Bin 207083 -> 220782 bytes .../src/goblins-mesh.json | 73 +- .../spine-starling-example/src/raptor.json | 104 +- .../src/spine/examples/Main.as | 5 +- .../src/spine/examples/SpineboyExample.as | 23 +- .../src/spine/examples/StretchymanExample.as | 98 + .../spine-starling-example/src/spineboy.json | 33 +- .../src/stretchyman.atlas | 41 + .../src/stretchyman.json | 773 +++++ .../src/stretchyman.png | Bin 0 -> 134187 bytes .../spine-starling-example/src/tank.json | 108 +- .../spine-starling-example/src/vine.json | 30 +- .../spine-starling/lib/spine-as3.swc | Bin 74436 -> 86016 bytes .../spine/starling/StarlingTextureLoader.as | 58 +- spine-ts/README.md | 1 + spine-ts/build/spine-all.d.ts | 1201 +++---- spine-ts/build/spine-all.js | 2821 +++++++++++------ spine-ts/build/spine-all.js.map | 2 +- spine-ts/build/spine-canvas.d.ts | 1200 +++---- spine-ts/build/spine-canvas.js | 2810 ++++++++++------ spine-ts/build/spine-canvas.js.map | 2 +- spine-ts/build/spine-core.d.ts | 1280 ++++---- spine-ts/build/spine-core.js | 2810 ++++++++++------ spine-ts/build/spine-core.js.map | 2 +- spine-ts/build/spine-threejs.d.ts | 1280 ++++---- spine-ts/build/spine-threejs.js | 2810 ++++++++++------ spine-ts/build/spine-threejs.js.map | 2 +- spine-ts/build/spine-webgl.d.ts | 1280 ++++---- spine-ts/build/spine-webgl.js | 2814 ++++++++++------ spine-ts/build/spine-webgl.js.map | 2 +- spine-ts/build/spine-widget.d.ts | 1281 ++++---- spine-ts/build/spine-widget.js | 2821 +++++++++++------ spine-ts/build/spine-widget.js.map | 2 +- spine-ts/canvas/example/assets/spineboy.json | 35 +- spine-ts/core/src/Animation.ts | 700 ++-- spine-ts/core/src/AnimationState.ts | 760 ++++- spine-ts/core/src/AssetManager.ts | 10 +- spine-ts/core/src/Bone.ts | 227 +- spine-ts/core/src/BoneData.ts | 6 +- spine-ts/core/src/Constraint.ts | 35 + spine-ts/core/src/IkConstraint.ts | 45 +- spine-ts/core/src/IkConstraintData.ts | 1 + spine-ts/core/src/PathConstraint.ts | 28 +- spine-ts/core/src/PathConstraintData.ts | 1 + spine-ts/core/src/Skeleton.ts | 187 +- spine-ts/core/src/SkeletonBounds.ts | 9 +- spine-ts/core/src/SkeletonData.ts | 6 +- spine-ts/core/src/SkeletonJson.ts | 21 +- spine-ts/core/src/TransformConstraint.ts | 32 +- spine-ts/core/src/TransformConstraintData.ts | 1 + spine-ts/core/src/Utils.ts | 35 +- spine-ts/core/src/attachments/Attachment.ts | 9 +- .../core/src/attachments/MeshAttachment.ts | 11 +- .../core/src/attachments/RegionAttachment.ts | 2 +- spine-ts/threejs/example/assets/raptor.json | 104 +- spine-ts/webgl/demos/hoverboard.js | 68 +- spine-ts/webgl/demos/skins.js | 49 +- spine-ts/webgl/demos/spritesheets.js | 42 +- spine-ts/webgl/demos/transitions.js | 5 +- .../webgl/example/assets/goblins-mesh.json | 73 +- spine-ts/webgl/example/assets/raptor.json | 104 +- spine-ts/webgl/example/assets/spineboy.json | 33 +- .../webgl/example/assets/stretchyman.json | 189 +- spine-ts/webgl/example/assets/tank.json | 108 +- spine-ts/webgl/example/assets/vine.json | 30 +- spine-ts/webgl/example/index.html | 48 +- spine-ts/webgl/example/test.html | 81 + spine-ts/widget/example/assets/raptor.json | 104 +- spine-ts/widget/example/assets/spineboy.json | 33 +- spine-ts/widget/example/index.html | 8 +- spine-ts/widget/src/Widget.ts | 5 +- .../Scripts/BasicPlatformerController.cs | 6 +- .../Getting Started/Scripts/Raptor.cs | 2 +- .../Scripts/SpineboyBeginnerView.cs | 14 +- .../Assets/Examples/Scripts/SpineGauge.cs | 2 +- .../Assets/Examples/Scripts/Spineboy.cs | 34 +- .../Assets/Examples/Spine/Dragon/dragon.json | 8 +- .../Assets/Examples/Spine/Eyes/eyes.json | 14 +- .../Spine/FootSoldier/FootSoldier.json | 556 ++-- .../Assets/Examples/Spine/Gauge/Gauge.json | 2 +- .../Examples/Spine/Goblins/goblins.json | 69 +- .../Assets/Examples/Spine/Hero/hero-mesh.json | 87 +- .../Raggedy Spineboy/Raggedy Spineboy.json | 196 +- .../Assets/Examples/Spine/Raptor/raptor.json | 118 +- .../Examples/Spine/Spineboy/spineboy.json | 244 +- .../Examples/Spine/Spineunitygirl/Doi.json | 144 +- .../spine-unity/Asset Types/AtlasAsset.cs | 87 +- .../Asset Types/Editor/AtlasAssetInspector.cs | 192 +- .../Editor/SkeletonDataAssetInspector.cs | 251 +- .../Asset Types/SkeletonDataAsset.cs | 74 +- .../Editor/BoneFollowerInspector.cs | 16 +- .../Assets/spine-unity/Editor/Menus.cs | 6 +- .../Editor/SkeletonAnimationInspector.cs | 50 +- .../spine-unity/Editor/SkeletonBaker.cs | 54 +- .../Editor/SkeletonRendererInspector.cs | 204 +- .../Editor/SpineAttributeDrawers.cs | 6 +- .../Editor/SpineEditorUtilities.cs | 185 +- .../Editor/SpineInspectorUtility.cs | 237 +- .../Assets/spine-unity/ISkeletonAnimation.cs | 2 - .../Mesh Generation/DoubleBuffered.cs | 3 - .../spine-unity/Modules/AttachmentTools.meta | 9 + .../AttachmentTools/AttachmentTools.cs | 702 ++++ .../AttachmentTools/AttachmentTools.cs.meta} | 6 +- .../BoundingBoxFollower.cs | 134 +- .../Editor/BoundingBoxFollowerInspector.cs | 149 +- ...keletonRendererCustomMaterialsInspector.cs | 2 +- ...xt => SkeletonRendererCustomMaterials.txt} | 0 ... SkeletonRendererCustomMaterials.txt.meta} | 0 .../Modules/Ghost/SkeletonGhost.cs | 10 +- .../Modules/Ragdoll/SkeletonRagdoll.cs | 2 +- .../Modules/Ragdoll/SkeletonRagdoll2D.cs | 4 +- .../Editor/SkeletonGraphicInspector.cs | 59 +- .../SkeletonGraphic/SkeletonGraphic.cs | 3 +- .../Editor/SkeletonPartsRendererInspector.cs | 32 +- .../SkeletonRenderSeparatorInspector.cs | 24 +- .../SkeletonUtilityGroundConstraint.cs | 17 - .../spine-unity/Modules/SpriteAttacher.cs | 16 +- .../WaitForSpineAnimationComplete.cs | 2 +- .../YieldInstructions/WaitForSpineEvent.cs | 12 +- .../Assets/spine-unity/SkeletonAnimation.cs | 55 +- .../Assets/spine-unity/SkeletonAnimator.cs | 259 +- .../Assets/spine-unity/SkeletonExtensions.cs | 193 +- .../Assets/spine-unity/SkeletonRenderer.cs | 56 +- .../Editor/SkeletonUtilityBoneInspector.cs | 54 +- .../Editor/SkeletonUtilityInspector.cs | 317 +- .../SkeletonUtility/SkeletonUtility.cs | 134 +- .../SkeletonUtility/SkeletonUtilityBone.cs | 179 +- .../SkeletonUtilityConstraint.cs | 2 +- .../SkeletonUtilitySubmeshRenderer.cs.meta | 14 - spine-unity/README.md | 4 +- spine-xna/LICENSE | 31 +- spine-xna/README.md | 2 +- spine-xna/example/data/goblins-mesh.json | 73 +- spine-xna/example/data/goblins-mesh.skel | Bin 17763 -> 17751 bytes spine-xna/example/data/raptor.json | 104 +- spine-xna/example/data/raptor.skel | Bin 36802 -> 36754 bytes spine-xna/example/data/spineboy.json | 33 +- spine-xna/example/data/spineboy.skel | Bin 15529 -> 15521 bytes spine-xna/example/data/tank.json | 108 +- spine-xna/example/data/tank.skel | Bin 24609 -> 24540 bytes spine-xna/example/src/ExampleGame.cs | 16 +- spine-xna/example/src/ExampleProgram.cs | 1 - spine-xna/src/MeshBatcher.cs | 39 +- spine-xna/src/RegionBatcher.cs | 39 +- spine-xna/src/SkeletonMeshRenderer.cs | 37 +- spine-xna/src/SkeletonRegionRenderer.cs | 37 +- spine-xna/src/Util.cs | 43 +- spine-xna/src/XnaTextureLoader.cs | 37 +- 403 files changed, 34907 insertions(+), 20038 deletions(-) create mode 100644 spine-as3/spine-as3/src/spine/Constraint.as rename spine-unity/Assets/spine-unity/SkeletonUtility/Editor/SkeletonUtilitySubmeshRendererInspector.cs => spine-as3/spine-as3/src/spine/Pool.as (71%) create mode 100644 spine-as3/spine-as3/src/spine/Poolable.as rename spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtilitySubmeshRenderer.cs => spine-as3/spine-as3/src/spine/TransformMode.as (62%) create mode 100644 spine-as3/spine-as3/src/spine/animation/EventQueue.as create mode 100644 spine-as3/spine-as3/src/spine/animation/EventType.as create mode 100644 spine-as3/spine-as3/src/spine/animation/TimelineType.as create mode 100644 spine-csharp/src/IConstraint.cs delete mode 100644 spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java create mode 100644 spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java delete mode 100644 spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Sandbox.java create mode 100644 spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java create mode 100644 spine-lua/TransformMode.lua create mode 100644 spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as create mode 100644 spine-starling/spine-starling-example/src/stretchyman.atlas create mode 100644 spine-starling/spine-starling-example/src/stretchyman.json create mode 100644 spine-starling/spine-starling-example/src/stretchyman.png create mode 100644 spine-ts/core/src/Constraint.ts create mode 100644 spine-ts/webgl/example/test.html create mode 100644 spine-unity/Assets/spine-unity/Modules/AttachmentTools.meta create mode 100644 spine-unity/Assets/spine-unity/Modules/AttachmentTools/AttachmentTools.cs rename spine-unity/Assets/spine-unity/{SkeletonUtility/Editor/SkeletonUtilitySubmeshRendererInspector.cs.meta => Modules/AttachmentTools/AttachmentTools.cs.meta} (52%) rename spine-unity/Assets/spine-unity/Modules/CustomMaterials/{readme.txt => SkeletonRendererCustomMaterials.txt} (100%) rename spine-unity/Assets/spine-unity/Modules/CustomMaterials/{readme.txt.meta => SkeletonRendererCustomMaterials.txt.meta} (100%) delete mode 100644 spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtilitySubmeshRenderer.cs.meta diff --git a/examples/alien/export/alien.json b/examples/alien/export/alien.json index 6c72bfb06..687e934a4 100644 --- a/examples/alien/export/alien.json +++ b/examples/alien/export/alien.json @@ -1,39 +1,46 @@ { -"skeleton": { "hash": "ojVnF+IXlzxTZnAzaREvaOo8Rdw", "spine": "3.4.02", "width": 365.79, "height": 391.47, "images": "./images/" }, +"skeleton": { + "hash": "nOEEQ9EfaTG99Zodad6GrnyjZhc", + "spine": "3.5.03-beta", + "width": 365.79, + "height": 391.47, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": -8.17, "y": 73.5, "color": "fff200ff" }, - { "name": "back_thigh", "parent": "hip", "length": 44.3, "rotation": -54.08, "x": -2.82, "y": -2.64, "color": "ff0008ff" }, - { "name": "back_shin", "parent": "back_thigh", "length": 31.17, "rotation": -50.15, "x": 44.3, "y": 0.06, "color": "ff0008ff" }, + { "name": "back_thigh", "parent": "hip", "length": 44.29, "rotation": -54.08, "x": -2.81, "y": -2.64, "color": "ff0008ff" }, + { "name": "back_shin", "parent": "back_thigh", "length": 31.17, "rotation": -50.15, "x": 44.29, "y": 0.05, "color": "ff0008ff" }, { "name": "back_foot", "parent": "back_shin", "length": 11.75, "rotation": 91.8, "x": 31.17, "y": 0.09, "color": "ff0008ff" }, - { "name": "body", "parent": "hip", "length": 116.25, "rotation": 99.84, "x": -34.28, "y": 4.19, "color": "fff200ff" }, - { "name": "head", "parent": "body", "length": 213.84, "rotation": -36.34, "x": 116.32, "y": 1.79, "color": "fff200ff" }, - { "name": "blown_up_nck", "parent": "head", "x": -6.12, "y": -25.01, "color": "fff200ff" }, - { "name": "front_thigh", "parent": "hip", "length": 52.72, "rotation": -55.89, "x": -42.79, "y": 4.11, "color": "04ff00ff" }, - { "name": "front_shin", "parent": "front_thigh", "length": 34.38, "rotation": -45.22, "x": 52.73, "y": 0.06, "color": "04ff00ff" }, - { "name": "front_foot", "parent": "front_shin", "length": 13.58, "rotation": 86.84, "x": 34.36, "y": -0.12, "color": "04ff00ff" }, - { "name": "front_upper_arm", "parent": "body", "length": 47.09, "rotation": 121.33, "x": 90.9, "y": 42.96, "color": "04ff00ff" }, + { "name": "body", "parent": "hip", "length": 116.25, "rotation": 99.83, "x": -34.27, "y": 4.19, "color": "fff200ff" }, + { "name": "head", "parent": "body", "length": 213.83, "rotation": -36.34, "x": 116.31, "y": 1.78, "color": "fff200ff" }, + { "name": "blown_up_nck", "parent": "head", "x": -6.11, "y": -25.01, "color": "fff200ff" }, + { "name": "front_thigh", "parent": "hip", "length": 52.72, "rotation": -55.88, "x": -42.79, "y": 4.11, "color": "04ff00ff" }, + { "name": "front_shin", "parent": "front_thigh", "length": 34.38, "rotation": -45.22, "x": 52.72, "y": 0.05, "color": "04ff00ff" }, + { "name": "front_foot", "parent": "front_shin", "length": 13.57, "rotation": 86.83, "x": 34.36, "y": -0.11, "color": "04ff00ff" }, + { "name": "front_upper_arm", "parent": "body", "length": 47.09, "rotation": 121.33, "x": 90.9, "y": 42.95, "color": "04ff00ff" }, { "name": "front_lower_arm", "parent": "front_upper_arm", "length": 75.87, "rotation": 71.97, "x": 47.09, - "y": -0.29, + "y": -0.28, "color": "04ff00ff" }, - { "name": "upper_back_arm", "parent": "body", "length": 50.28, "rotation": 172.11, "x": 50.4, "y": -84.36, "color": "ff0008ff" }, + { "name": "upper_back_arm", "parent": "body", "length": 50.27, "rotation": 172.11, "x": 50.4, "y": -84.36, "color": "ff0008ff" }, { "name": "lower_back_arm", "parent": "upper_back_arm", "length": 65.26, - "rotation": 74.17, - "x": 50.28, - "y": -0.11, + "rotation": 74.16, + "x": 50.27, + "y": -0.1, "color": "ff0008ff" }, - { "name": "metaljaw", "parent": "root", "length": 75.82, "rotation": -74.86, "x": -37.09, "y": 230.8, "color": "fff200ff" }, - { "name": "splat", "parent": "root", "x": -11.57, "y": 253.52 } + { "name": "metaljaw", "parent": "root", "length": 75.81, "rotation": -74.86, "x": -37.09, "y": 230.8, "color": "fff200ff" }, + { "name": "splat", "parent": "root", "x": -11.56, "y": 253.52 } ], "slots": [ { "name": "upper_back_arm", "bone": "upper_back_arm", "attachment": "upper_back_arm" }, @@ -56,56 +63,56 @@ "skins": { "default": { "back_foot": { - "back_foot": { "x": 4.53, "y": 2.76, "rotation": 12.42, "width": 16, "height": 11 } + "back_foot": { "x": 4.53, "y": 2.75, "rotation": 12.42, "width": 16, "height": 11 } }, "back_shin": { - "back_shin": { "x": 9.6, "y": 0.84, "rotation": 104.23, "width": 42, "height": 48 } + "back_shin": { "x": 9.6, "y": 0.83, "rotation": 104.23, "width": 42, "height": 48 } }, "back_thigh": { - "back_thigh": { "x": 21.8, "y": -0.35, "rotation": 54.08, "width": 47, "height": 47 } + "back_thigh": { "x": 21.79, "y": -0.34, "rotation": 54.08, "width": 47, "height": 47 } }, "backarmor": { - "backarmor": { "x": 121.41, "y": -18.48, "rotation": -99.84, "width": 162, "height": 182 } + "backarmor": { "x": 121.41, "y": -18.47, "rotation": -99.83, "width": 162, "height": 182 } }, "blown_up_nck": { - "blown_up_nck": { "x": 11.7, "y": -5.74, "rotation": -63.5, "width": 153, "height": 104 } + "blown_up_nck": { "x": 11.69, "y": -5.73, "rotation": -63.5, "width": 153, "height": 104 } }, "body": { - "body": { "x": 96.07, "y": -9.51, "rotation": -99.84, "width": 196, "height": 235 } + "body": { "x": 96.06, "y": -9.51, "rotation": -99.83, "width": 196, "height": 235 } }, "front_foot": { - "front_foot": { "x": 5.11, "y": 2.54, "rotation": 14.27, "width": 19, "height": 12 } + "front_foot": { "x": 5.11, "y": 2.53, "rotation": 14.27, "width": 19, "height": 12 } }, "front_lower_arm": { - "front_lower_arm": { "x": 52.88, "y": 5.47, "rotation": 102.64, "width": 110, "height": 125 } + "front_lower_arm": { "x": 52.88, "y": 5.46, "rotation": 102.63, "width": 110, "height": 125 } }, "front_shin": { - "front_shin": { "x": 10.32, "y": 1.86, "rotation": 101.12, "width": 49, "height": 56 } + "front_shin": { "x": 10.31, "y": 1.86, "rotation": 101.12, "width": 49, "height": 56 } }, "front_thigh": { - "front_thigh": { "x": 26.99, "y": 0.4, "rotation": 55.89, "width": 54, "height": 54 } + "front_thigh": { "x": 26.98, "y": 0.4, "rotation": 55.88, "width": 54, "height": 54 } }, "front_upper_arm": { - "front_upper_arm": { "x": 35.91, "y": 6.58, "rotation": 174.62, "width": 113, "height": 55 } + "front_upper_arm": { "x": 35.91, "y": 6.57, "rotation": 174.61, "width": 113, "height": 55 } }, "head": { - "burst01": { "x": 104.65, "y": -32.91, "rotation": -63.5, "width": 286, "height": 309 }, - "burst02": { "x": 124.78, "y": -27.35, "rotation": -63.5, "width": 311, "height": 361 }, - "head": { "x": 92.32, "y": -53.02, "rotation": -63.5, "width": 297, "height": 272 } + "burst01": { "x": 104.65, "y": -32.9, "rotation": -63.5, "width": 286, "height": 309 }, + "burst02": { "x": 124.77, "y": -27.35, "rotation": -63.5, "width": 311, "height": 361 }, + "head": { "x": 92.31, "y": -53.02, "rotation": -63.5, "width": 297, "height": 272 } }, "lower_back_arm": { "lower_back_arm": { "x": 42.34, "y": 10.93, "rotation": -5.4, "width": 101, "height": 91 } }, "metaljaw": { - "metaljaw": { "x": 86.81, "y": 55.48, "rotation": 64.15, "width": 243, "height": 172 } + "metaljaw": { "x": 86.8, "y": 55.47, "rotation": 64.15, "width": 243, "height": 172 } }, "splat01": { - "splat01": { "x": 77.57, "y": 167.97, "width": 514, "height": 503 }, - "splat02": { "x": 43.42, "y": 106.44, "width": 734, "height": 511 }, - "splat03": { "x": 14.57, "y": 119.84, "width": 723, "height": 339 } + "splat01": { "x": 77.56, "y": 167.97, "width": 514, "height": 503 }, + "splat02": { "x": 43.41, "y": 106.44, "width": 734, "height": 511 }, + "splat03": { "x": 14.56, "y": 119.83, "width": 723, "height": 339 } }, "upper_back_arm": { - "upper_back_arm": { "x": 38.71, "y": 2.9, "rotation": 68.76, "width": 60, "height": 86 } + "upper_back_arm": { "x": 38.7, "y": 2.9, "rotation": 68.76, "width": 60, "height": 86 } } } }, @@ -134,7 +141,7 @@ { "time": 1.2, "color": "ffffffbb", - "curve": [ 0.498, 0, 0.753, 0.37 ] + "curve": [ 0.497, 0, 0.753, 0.37 ] }, { "time": 1.3333, "color": "ffffff00" } ], @@ -150,7 +157,7 @@ "bones": { "blown_up_nck": { "translate": [ - { "time": 0.9333, "x": 6.73, "y": 10.57 } + { "time": 0.9333, "x": 6.73, "y": 10.56 } ], "scale": [ { "time": 0.8333, "x": 0.684, "y": 0.503 } @@ -170,42 +177,42 @@ "scale": [ { "time": 0, "x": 1, "y": 1 }, { "time": 0.1, "x": 1.105, "y": 1.105 }, - { "time": 0.4651, "x": 1.49, "y": 1.211 }, - { "time": 0.4666, "x": 1.227, "y": 1.221 }, - { "time": 0.8333, "x": 1.461, "y": 1.987 } + { "time": 0.465, "x": 1.49, "y": 1.21 }, + { "time": 0.4666, "x": 1.226, "y": 1.22 }, + { "time": 0.8333, "x": 1.46, "y": 1.986 } ] }, "splat": { "rotate": [ - { "time": 0, "angle": -6.77 }, + { "time": 0, "angle": -6.76 }, { "time": 0.8333, "angle": -9.39, - "curve": [ 0.232, 0.6, 0.67, 0.88 ] + "curve": [ 0.231, 0.6, 0.67, 0.87 ] }, { "time": 1.1, - "angle": 12.41, - "curve": [ 0.227, 0.04, 0.687, 0.42 ] + "angle": 12.4, + "curve": [ 0.226, 0.03, 0.686, 0.41 ] }, - { "time": 1.3333, "angle": -3.34 } + { "time": 1.3333, "angle": -3.33 } ], "translate": [ { "time": 0, "x": 0, "y": -40.5 }, - { "time": 0.8333, "x": -13.63, "y": -23.39 }, + { "time": 0.8333, "x": -13.63, "y": -23.38 }, { "time": 1.0333, "x": -84.44, "y": 2.75, - "curve": [ 0.309, 0.61, 0.75, 1 ] + "curve": [ 0.308, 0.61, 0.75, 1 ] }, { "time": 1.2333, "x": -144.96, "y": 135.8, - "curve": [ 0.25, 0, 0.725, 0.48 ] + "curve": [ 0.25, 0, 0.725, 0.47 ] }, - { "time": 1.3333, "x": -220.9, "y": -323.14 } + { "time": 1.3333, "x": -220.89, "y": -323.14 } ], "scale": [ { "time": 0, "x": 1.113, "y": 1.113 }, @@ -213,16 +220,16 @@ "time": 0.8333, "x": 1, "y": 1, - "curve": [ 0.212, 0.35, 0.681, 0.84 ] + "curve": [ 0.211, 0.34, 0.68, 0.83 ] }, { "time": 1.0333, - "x": 1.216, - "y": 1.555, - "curve": [ 0.374, 0.64, 0.713, 1 ] + "x": 1.215, + "y": 1.554, + "curve": [ 0.374, 0.63, 0.712, 1 ] }, - { "time": 1.2, "x": 1.768, "y": 1.374 }, - { "time": 1.3333, "x": 1.77, "y": 0.94 } + { "time": 1.2, "x": 1.768, "y": 1.373 }, + { "time": 1.3333, "x": 1.769, "y": 0.939 } ] }, "hip": { @@ -261,9 +268,9 @@ { "time": 0, "angle": 0, - "curve": [ 0.738, 0.01, 0.961, 0.9 ] + "curve": [ 0.737, 0, 0.961, 0.89 ] }, - { "time": 0.8333, "angle": 10.74 }, + { "time": 0.8333, "angle": 10.73 }, { "time": 1.0333, "angle": 30.29 }, { "time": 1.1666, "angle": 74.26 } ], @@ -279,10 +286,10 @@ { "time": 0, "angle": -15.6 }, { "time": 0.1333, "angle": -5.96, "curve": "stepped" }, { "time": 0.8333, "angle": -5.96 }, - { "time": 0.9333, "angle": 6.79 }, + { "time": 0.9333, "angle": 6.78 }, { "time": 1, "angle": 7.9 }, { "time": 1.0333, "angle": 19.67 }, - { "time": 1.1666, "angle": 23.38 } + { "time": 1.1666, "angle": 23.37 } ], "translate": [ { "time": 0, "x": 0, "y": 0 } @@ -294,8 +301,8 @@ "back_shin": { "rotate": [ { "time": 0, "angle": 12.88 }, - { "time": 0.1333, "angle": 48.03, "curve": "stepped" }, - { "time": 0.9333, "angle": 48.03 }, + { "time": 0.1333, "angle": 48.02, "curve": "stepped" }, + { "time": 0.9333, "angle": 48.02 }, { "time": 1.0333, "angle": 39.59 } ], "translate": [ @@ -307,13 +314,13 @@ }, "front_shin": { "rotate": [ - { "time": 0, "angle": -20.49 }, + { "time": 0, "angle": -20.48 }, { "time": 0.1333, "angle": -46.7, "curve": "stepped" }, { "time": 0.8333, "angle": -46.7 }, - { "time": 0.9333, "angle": -52.98 }, + { "time": 0.9333, "angle": -52.97 }, { "time": 1.0333, "angle": -55.88 }, { "time": 1.1333, "angle": -20.01 }, - { "time": 1.1666, "angle": 27.07 } + { "time": 1.1666, "angle": 27.06 } ], "translate": [ { "time": 0, "x": 0, "y": 0 } @@ -331,19 +338,19 @@ }, { "time": 0.5666, - "angle": 45.89, - "curve": [ 0.172, 0.35, 0.632, 0.98 ] + "angle": 45.88, + "curve": [ 0.172, 0.34, 0.632, 0.98 ] }, { "time": 0.6333, "angle": 52.04, - "curve": [ 0.423, 0.01, 0.721, 0.99 ] + "curve": [ 0.423, 0, 0.721, 0.99 ] }, { "time": 0.8333, "angle": 42.79 }, - { "time": 0.9, "angle": 45.89 }, - { "time": 0.9333, "angle": 52.28 }, - { "time": 1, "angle": 43.46 }, - { "time": 1.0333, "angle": 42.53 }, + { "time": 0.8999, "angle": 45.88 }, + { "time": 0.9333, "angle": 52.27 }, + { "time": 1, "angle": 43.45 }, + { "time": 1.0333, "angle": 42.52 }, { "time": 1.1333, "angle": 43.86 }, { "time": 1.1666, "angle": 50.52 } ], @@ -359,30 +366,30 @@ { "time": 0, "angle": -327.38, - "curve": [ 0.518, 0, 0.872, 0.77 ] + "curve": [ 0.518, 0, 0.871, 0.76 ] }, { "time": 0.5666, - "angle": -13.54, - "curve": [ 0.189, 0.36, 0.59, 1 ] + "angle": -13.53, + "curve": [ 0.188, 0.36, 0.589, 1 ] }, { "time": 0.6333, - "angle": -18.33, - "curve": [ 0.501, 0, 0.75, 1 ] + "angle": -18.32, + "curve": [ 0.5, 0, 0.75, 1 ] }, { "time": 0.8333, "angle": -10.06 }, - { "time": 0.9, "angle": -13.54 }, - { "time": 1, "angle": -21.13 }, - { "time": 1.0333, "angle": -36.05 }, + { "time": 0.8999, "angle": -13.53 }, + { "time": 1, "angle": -21.12 }, + { "time": 1.0333, "angle": -36.04 }, { "time": 1.1333, "angle": -52.59 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.5666, "x": 14.08, "y": -3.26, "curve": "stepped" }, - { "time": 0.9, "x": 14.08, "y": -3.26, "curve": "stepped" }, - { "time": 1, "x": 14.08, "y": -3.26 }, - { "time": 1.0333, "x": 7.82, "y": 9.2 }, + { "time": 0.5666, "x": 14.07, "y": -3.25, "curve": "stepped" }, + { "time": 0.8999, "x": 14.07, "y": -3.25, "curve": "stepped" }, + { "time": 1, "x": 14.07, "y": -3.25 }, + { "time": 1.0333, "x": 7.82, "y": 9.19 }, { "time": 1.1333, "x": 0.17, "y": 15.5 } ], "scale": [ @@ -401,16 +408,16 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1 }, - { "time": 0.1333, "x": 0.69, "y": 1 } + { "time": 0.1333, "x": 0.689, "y": 1 } ] }, "front_foot": { "rotate": [ - { "time": 0, "angle": 25.3 }, + { "time": 0, "angle": 25.29 }, { "time": 0.1333, "angle": 41.81, "curve": "stepped" }, { "time": 0.8333, "angle": 41.81 }, - { "time": 0.9333, "angle": 14.08 }, - { "time": 1, "angle": 27.15 }, + { "time": 0.9333, "angle": 14.07 }, + { "time": 1, "angle": 27.14 }, { "time": 1.0333, "angle": 27.54 }, { "time": 1.1333, "angle": -5.57 }, { "time": 1.2, "angle": -34.27 } @@ -432,25 +439,25 @@ { "time": 0.5666, "angle": -60.24, - "curve": [ 0.172, 0.35, 0.632, 0.98 ] + "curve": [ 0.172, 0.34, 0.632, 0.98 ] }, { "time": 0.6333, - "angle": -54.1, - "curve": [ 0.423, 0.01, 0.721, 0.99 ] + "angle": -54.09, + "curve": [ 0.423, 0, 0.721, 0.99 ] }, { "time": 0.8333, "angle": -38.77, - "curve": [ 0.43, 0.42, 0.768, 0.75 ] + "curve": [ 0.43, 0.41, 0.768, 0.75 ] }, { - "time": 0.9, + "time": 0.8999, "angle": -39.09, - "curve": [ 0.476, 0.47, 0.829, 0.81 ] + "curve": [ 0.476, 0.46, 0.828, 0.81 ] }, { "time": 0.9333, "angle": -44.9 }, - { "time": 0.9666, "angle": -31.46 }, + { "time": 0.9666, "angle": -31.45 }, { "time": 1, "angle": -22.11 }, { "time": 1.0333, "angle": -18.78 }, { "time": 1.1666, "angle": -18.51 }, @@ -468,22 +475,22 @@ { "time": 0, "angle": 0, - "curve": [ 0.518, 0, 0.872, 0.77 ] + "curve": [ 0.518, 0, 0.871, 0.76 ] }, { "time": 0.5666, - "angle": -70.85, - "curve": [ 0.189, 0.36, 0.59, 1 ] + "angle": -70.84, + "curve": [ 0.188, 0.36, 0.589, 1 ] }, { "time": 0.6333, - "angle": -75.64, - "curve": [ 0.501, 0, 0.75, 1 ] + "angle": -75.63, + "curve": [ 0.5, 0, 0.75, 1 ] }, { "time": 0.8333, "angle": -67.37 }, - { "time": 0.9, "angle": -70.85 }, - { "time": 0.9333, "angle": -81.64 }, - { "time": 1.0333, "angle": -70.07 }, + { "time": 0.8999, "angle": -70.84 }, + { "time": 0.9333, "angle": -81.63 }, + { "time": 1.0333, "angle": -70.06 }, { "time": 1.1333, "angle": -61.11 } ], "translate": [ @@ -498,79 +505,79 @@ { "time": 0, "angle": 0 }, { "time": 0.1333, - "angle": -21.58, + "angle": -21.57, "curve": [ 0.155, 0.33, 0.652, 0.99 ] }, { "time": 0.4666, "angle": -10.42, - "curve": [ 0.447, 0, 0.915, 0.86 ] + "curve": [ 0.446, 0, 0.915, 0.86 ] }, { "time": 0.6, "angle": -15.89 }, { "time": 0.8333, - "angle": -27.91, - "curve": [ 0.178, 0.6, 0.832, 0.94 ] + "angle": -27.9, + "curve": [ 0.178, 0.6, 0.832, 0.93 ] }, { "time": 1, "angle": 17.95 }, - { "time": 1.1333, "angle": 68.03 }, + { "time": 1.1333, "angle": 68.02 }, { - "time": 1.4, - "angle": 91.38, - "curve": [ 0.152, 0.48, 0.45, 0.99 ] + "time": 1.3999, + "angle": 91.37, + "curve": [ 0.151, 0.47, 0.449, 0.99 ] }, { "time": 1.4666, "angle": -14.52, - "curve": [ 0.481, 0, 0.791, 0.48 ] + "curve": [ 0.481, 0, 0.791, 0.47 ] }, { "time": 1.5666, - "angle": -9.82, - "curve": [ 0.542, 0.42, 0.817, 0.88 ] + "angle": -9.81, + "curve": [ 0.541, 0.41, 0.816, 0.87 ] }, - { "time": 1.6666, "angle": 18.64 }, + { "time": 1.6666, "angle": 18.63 }, { "time": 1.7666, "angle": 34.81, "curve": [ 0.432, 0, 0.75, 1 ] }, - { "time": 1.8666, "angle": 25.82 } + { "time": 1.8666, "angle": 25.81 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.1333, "x": 0, "y": -7.87 }, + { "time": 0.1333, "x": 0, "y": -7.86 }, { "time": 0.8333, - "x": 36.57, + "x": 36.56, "y": 5.26, - "curve": [ 0.178, 0.6, 0.832, 0.94 ] + "curve": [ 0.178, 0.6, 0.832, 0.93 ] }, { "time": 1.1333, - "x": -128.37, - "y": 509.99, - "curve": [ 0.338, 0.03, 0.867, 0.5 ] + "x": -128.36, + "y": 509.98, + "curve": [ 0.337, 0.02, 0.866, 0.5 ] }, { - "time": 1.4, - "x": -61.21, + "time": 1.3999, + "x": -61.2, "y": -164.71, - "curve": [ 0.152, 0.48, 0.45, 0.99 ] + "curve": [ 0.151, 0.47, 0.449, 0.99 ] }, { "time": 1.4666, "x": -11.42, "y": -59.18, - "curve": [ 0.481, 0, 0.791, 0.48 ] + "curve": [ 0.481, 0, 0.791, 0.47 ] }, { "time": 1.5666, - "x": -21.13, + "x": -21.12, "y": -68.23, - "curve": [ 0.542, 0.42, 0.817, 0.88 ] + "curve": [ 0.541, 0.41, 0.816, 0.87 ] }, - { "time": 1.6666, "x": -79.89, "y": -122.98 }, + { "time": 1.6666, "x": -79.88, "y": -122.98 }, { "time": 1.7666, "x": -89.22, @@ -610,7 +617,7 @@ ] }, { - "time": 1.4, + "time": 1.3999, "offsets": [ { "slot": "splat01", "offset": 4 } ] @@ -673,7 +680,7 @@ { "time": 0.3333, "angle": 17.04 } ], "translate": [ - { "time": 0, "x": -17.33, "y": 19.69 }, + { "time": 0, "x": -17.32, "y": 19.69 }, { "time": 0.3333, "x": -2.35, "y": 6.3 } ], "scale": [ @@ -682,12 +689,12 @@ }, "metaljaw": { "rotate": [ - { "time": 0, "angle": 53.35 }, + { "time": 0, "angle": 53.34 }, { "time": 0.3333, "angle": 22.34 } ], "translate": [ - { "time": 0, "x": -196.31, "y": -132.59 }, - { "time": 0.3333, "x": -111.57, "y": -37.47 } + { "time": 0, "x": -196.3, "y": -132.58 }, + { "time": 0.3333, "x": -111.56, "y": -37.47 } ], "scale": [ { "time": 0, "x": 1, "y": 1 } @@ -695,11 +702,11 @@ }, "back_thigh": { "rotate": [ - { "time": 0, "angle": 71.89 }, - { "time": 0.3333, "angle": 7.6 } + { "time": 0, "angle": 71.88 }, + { "time": 0.3333, "angle": 7.59 } ], "translate": [ - { "time": 0, "x": -18.91, "y": 2.35 }, + { "time": 0, "x": -18.9, "y": 2.35 }, { "time": 0.3333, "x": 0, "y": 0 } ], "scale": [ @@ -721,7 +728,7 @@ "front_thigh": { "rotate": [ { "time": 0, "angle": 15.56 }, - { "time": 0.3333, "angle": -7.16 } + { "time": 0.3333, "angle": -7.15 } ], "translate": [ { "time": 0, "x": 0, "y": 0 } @@ -756,7 +763,7 @@ }, "front_upper_arm": { "rotate": [ - { "time": 0, "angle": 43.23 }, + { "time": 0, "angle": 43.22 }, { "time": 0.3333, "angle": -61.4 } ], "translate": [ @@ -773,17 +780,17 @@ ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.3333, "x": -8.33, "y": -13 } + { "time": 0.3333, "x": -8.32, "y": -13 } ], "scale": [ - { "time": 0, "x": 1.5, "y": 0.834 }, - { "time": 0.3333, "x": 0.953, "y": 1.318 } + { "time": 0, "x": 1.5, "y": 0.833 }, + { "time": 0.3333, "x": 0.953, "y": 1.317 } ] }, "upper_back_arm": { "rotate": [ - { "time": 0, "angle": -239.2 }, - { "time": 0.3333, "angle": -335.27 } + { "time": 0, "angle": -239.19 }, + { "time": 0.3333, "angle": -335.26 } ], "translate": [ { "time": 0, "x": 0, "y": 0 } @@ -806,7 +813,7 @@ "front_foot": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.3333, "angle": 33.66 } + { "time": 0.3333, "angle": 33.65 } ], "translate": [ { "time": 0, "x": 0, "y": 0 } @@ -817,7 +824,7 @@ }, "front_lower_arm": { "rotate": [ - { "time": 0, "angle": 30.24 }, + { "time": 0, "angle": 30.23 }, { "time": 0.3333, "angle": -72.16 } ], "translate": [ @@ -868,10 +875,10 @@ "rotate": [ { "time": 0, "angle": 26.18 }, { "time": 0.1, "angle": -77.69 }, - { "time": 0.2333, "angle": -99.82 }, + { "time": 0.2333, "angle": -99.81 }, { "time": 0.4, "angle": -96.94 }, { "time": 0.4333, "angle": -99.54 }, - { "time": 0.5, "angle": -40.21 }, + { "time": 0.5, "angle": -40.2 }, { "time": 0.6666, "angle": -15.46 } ], "translate": [ @@ -885,7 +892,7 @@ "rotate": [ { "time": 0, "angle": -29.42 }, { "time": 0.1, "angle": 43.97 }, - { "time": 0.2333, "angle": -5.79 }, + { "time": 0.2333, "angle": -5.78 }, { "time": 0.4, "angle": 45.02 }, { "time": 0.4333, "angle": 45.34 }, { "time": 0.5, "angle": -20.45 }, @@ -900,17 +907,17 @@ }, "back_thigh": { "rotate": [ - { "time": 0, "angle": -83.38 }, + { "time": 0, "angle": -83.37 }, { "time": 0.1, "angle": 46.33 }, - { "time": 0.2437, "angle": -47.1 }, - { "time": 0.4, "angle": -80.1 }, + { "time": 0.2436, "angle": -47.09 }, + { "time": 0.4, "angle": -80.09 }, { "time": 0.4333, "angle": -80.25 }, - { "time": 0.5, "angle": -19.81 }, - { "time": 0.6666, "angle": 8.99 } + { "time": 0.5, "angle": -19.8 }, + { "time": 0.6666, "angle": 8.98 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.4, "x": 0, "y": 6.83 } + { "time": 0.4, "x": 0, "y": 6.82 } ], "scale": [ { "time": 0, "x": 1, "y": 1 } @@ -925,10 +932,10 @@ ], "translate": [ { "time": 0, "x": 0, "y": -13.1 }, - { "time": 0.0666, "x": 0, "y": 12.04 }, + { "time": 0.0666, "x": 0, "y": 12.03 }, { "time": 0.1, "x": 0, "y": -2.09 }, - { "time": 0.1666, "x": 0, "y": 7.95 }, - { "time": 0.4333, "x": -71.74, "y": -9.07 }, + { "time": 0.1666, "x": 0, "y": 7.94 }, + { "time": 0.4333, "x": -71.73, "y": -9.06 }, { "time": 0.5, "x": 0, "y": -2.89, "curve": "stepped" }, { "time": 0.6666, "x": 0, "y": -2.89 } ], @@ -943,27 +950,27 @@ { "time": 0.2333, "angle": -1.94 }, { "time": 0.4333, "angle": -9.18 }, { "time": 0.5, "angle": 21.79 }, - { "time": 0.6666, "angle": 26.9 } + { "time": 0.6666, "angle": 26.89 } ], "translate": [ { "time": 0, "x": -54.5, "y": -12.42 }, - { "time": 0.1, "x": -16.52, "y": -5.35 }, - { "time": 0.2333, "x": 31.77, "y": 9.62 }, - { "time": 0.4333, "x": 61.21, "y": -63.32 }, - { "time": 0.5, "x": 109.6, "y": -49.68 }, + { "time": 0.1, "x": -16.52, "y": -5.34 }, + { "time": 0.2333, "x": 31.77, "y": 9.61 }, + { "time": 0.4333, "x": 61.2, "y": -63.31 }, + { "time": 0.5, "x": 109.59, "y": -49.68 }, { "time": 0.6666, "x": 39.09, "y": 4.73 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, { "time": 0.2333, "x": 1.23, "y": 1 }, - { "time": 0.4333, "x": 1.555, "y": 1 }, + { "time": 0.4333, "x": 1.554, "y": 1 }, { "time": 0.5, "x": 1.23, "y": 1 }, { "time": 0.6666, "x": 1, "y": 1 } ] }, "body": { "rotate": [ - { "time": 0, "angle": 17.89 }, + { "time": 0, "angle": 17.88 }, { "time": 0.5, "angle": -42.29 }, { "time": 0.6666, "angle": -12.34 } ], @@ -976,11 +983,11 @@ }, "front_upper_arm": { "rotate": [ - { "time": 0, "angle": -11.37 }, + { "time": 0, "angle": -11.36 }, { "time": 0.1, "angle": -287.29 }, { "time": 0.2333, "angle": -268.6 }, { "time": 0.4333, "angle": 4.09 }, - { "time": 0.5, "angle": 6.27 }, + { "time": 0.5, "angle": 6.26 }, { "time": 0.6666, "angle": 12.39 } ], "translate": [ @@ -993,8 +1000,8 @@ "front_lower_arm": { "rotate": [ { "time": 0, "angle": 9.75 }, - { "time": 0.2333, "angle": -22.81 }, - { "time": 0.4333, "angle": -72.32 }, + { "time": 0.2333, "angle": -22.8 }, + { "time": 0.4333, "angle": -72.31 }, { "time": 0.5, "angle": -72.26 }, { "time": 0.6666, "angle": 3.89 } ], @@ -1024,7 +1031,7 @@ "rotate": [ { "time": 0, "angle": -12.56 }, { "time": 0.2333, "angle": -33.93 }, - { "time": 0.5, "angle": -74.21 }, + { "time": 0.5, "angle": -74.2 }, { "time": 0.6666, "angle": 7.46 } ], "translate": [ @@ -1059,10 +1066,10 @@ "back_shin": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.2437, "angle": -38.14 }, + { "time": 0.2436, "angle": -38.13 }, { "time": 0.4, "angle": 7.23 }, { "time": 0.4333, "angle": 50.06 }, - { "time": 0.5, "angle": -11.95 }, + { "time": 0.5, "angle": -11.94 }, { "time": 0.6666, "angle": 4.26 } ], "translate": [ @@ -1075,22 +1082,22 @@ "head": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.2333, "angle": 15.45 }, + { "time": 0.2333, "angle": 15.44 }, { "time": 0.4333, "angle": 66.11 }, - { "time": 0.5, "angle": 21.66 }, - { "time": 0.6666, "angle": 22.07 } + { "time": 0.5, "angle": 21.65 }, + { "time": 0.6666, "angle": 22.06 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.2333, "x": 16.33, "y": -5.62 }, - { "time": 0.4333, "x": 21.99, "y": -5.09 }, + { "time": 0.2333, "x": 16.32, "y": -5.61 }, + { "time": 0.4333, "x": 21.98, "y": -5.09 }, { "time": 0.5, "x": 35.16, "y": -16.94, "curve": "stepped" }, { "time": 0.6666, "x": 35.16, "y": -16.94 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, - { "time": 0.0666, "x": 0.891, "y": 1 }, - { "time": 0.4333, "x": 1.606, "y": 1 }, + { "time": 0.0666, "x": 0.89, "y": 1 }, + { "time": 0.4333, "x": 1.605, "y": 1 }, { "time": 0.5, "x": 1.09, "y": 1 }, { "time": 0.6666, "x": 1, "y": 1 } ] @@ -1112,7 +1119,7 @@ "rotate": [ { "time": 0, "angle": 0 }, { "time": 0.1, "angle": -31.86 }, - { "time": 0.4, "angle": 17.82 }, + { "time": 0.4, "angle": 17.81 }, { "time": 0.4333, "angle": -59.24 }, { "time": 0.6666, "angle": 16.42 } ], @@ -1141,17 +1148,17 @@ }, "front_shin": { "rotate": [ - { "time": 0, "angle": 46.48 }, + { "time": 0, "angle": 46.47 }, { "time": 0.0333, "angle": -19.25 }, { "time": 0.0666, "angle": -16.44 }, - { "time": 0.1, "angle": 35.98 }, - { "time": 0.1333, "angle": -13.49 }, - { "time": 0.1666, "angle": -27.81 }, - { "time": 0.2333, "angle": -46.66 }, + { "time": 0.1, "angle": 35.97 }, + { "time": 0.1333, "angle": -13.48 }, + { "time": 0.1666, "angle": -27.8 }, + { "time": 0.2333, "angle": -46.65 }, { "time": 0.2666, "angle": -62.65 }, { "time": 0.3333, "angle": -26.02 }, { "time": 0.3666, "angle": -2.18 }, - { "time": 0.4, "angle": 46.48 } + { "time": 0.4, "angle": 46.47 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, @@ -1164,19 +1171,19 @@ }, "back_thigh": { "rotate": [ - { "time": 0, "angle": -86.45 }, - { "time": 0.0333, "angle": -62.71 }, + { "time": 0, "angle": -86.44 }, + { "time": 0.0333, "angle": -62.7 }, { "time": 0.0666, "angle": -7.96 }, { "time": 0.1, "angle": 8.31 }, - { "time": 0.1333, "angle": 29.38 }, + { "time": 0.1333, "angle": 29.37 }, { "time": 0.1666, "angle": 15.43 }, { "time": 0.2, "angle": 2.11 }, { "time": 0.2333, "angle": -0.97 }, { "time": 0.2666, "angle": -38.84 }, - { "time": 0.3, "angle": -63.94 }, - { "time": 0.3333, "angle": -88.2 }, + { "time": 0.3, "angle": -63.93 }, + { "time": 0.3333, "angle": -88.19 }, { "time": 0.3666, "angle": -76.83 }, - { "time": 0.4, "angle": -86.45 } + { "time": 0.4, "angle": -86.44 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, @@ -1190,19 +1197,19 @@ }, "back_shin": { "rotate": [ - { "time": 0, "angle": -17.82 }, - { "time": 0.0333, "angle": -31.8 }, + { "time": 0, "angle": -17.81 }, + { "time": 0.0333, "angle": -31.79 }, { "time": 0.0666, "angle": -48.72 }, { "time": 0.1, "angle": -29.52 }, - { "time": 0.1333, "angle": -15.23 }, + { "time": 0.1333, "angle": -15.22 }, { "time": 0.1666, "angle": 16.27 }, - { "time": 0.2, "angle": 42.32 }, - { "time": 0.2333, "angle": -13.7 }, - { "time": 0.2666, "angle": 1.27 }, + { "time": 0.2, "angle": 42.31 }, + { "time": 0.2333, "angle": -13.69 }, + { "time": 0.2666, "angle": 1.26 }, { "time": 0.3, "angle": 34.49 }, - { "time": 0.3333, "angle": -15.12 }, + { "time": 0.3333, "angle": -15.11 }, { "time": 0.3666, "angle": -26.51 }, - { "time": 0.4, "angle": -17.82 } + { "time": 0.4, "angle": -17.81 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, @@ -1216,8 +1223,8 @@ "back_foot": { "rotate": [ { "time": 0, "angle": -22.78 }, - { "time": 0.0333, "angle": -35.73 }, - { "time": 0.1, "angle": 1.28 }, + { "time": 0.0333, "angle": -35.72 }, + { "time": 0.1, "angle": 1.27 }, { "time": 0.2, "angle": -7.86 }, { "time": 0.2333, "angle": 18.54 }, { "time": 0.2666, "angle": 16.12 }, @@ -1238,7 +1245,7 @@ "rotate": [ { "time": 0, "angle": -19.69 }, { "time": 0.1333, "angle": -10.14 }, - { "time": 0.2666, "angle": -5.43 }, + { "time": 0.2666, "angle": -5.42 }, { "time": 0.4, "angle": -19.69 } ], "translate": [ @@ -1253,10 +1260,10 @@ "body": { "rotate": [ { "time": 0, "angle": -2.7 }, - { "time": 0.0666, "angle": -7.41 }, + { "time": 0.0666, "angle": -7.4 }, { "time": 0.1333, "angle": -3.64 }, { "time": 0.2, "angle": -2.7 }, - { "time": 0.2666, "angle": -7.41 }, + { "time": 0.2666, "angle": -7.4 }, { "time": 0.3333, "angle": -3.64 }, { "time": 0.4, "angle": -2.7 } ], @@ -1275,31 +1282,31 @@ { "time": 0.0333, "angle": 2.21, - "curve": [ 0.181, 0.38, 0.75, 1 ] + "curve": [ 0.18, 0.37, 0.75, 1 ] }, { "time": 0.0666, "angle": -8.85 }, { "time": 0.1, "angle": 2.21 }, { "time": 0.1333, "angle": 4.78 }, - { "time": 0.1666, "angle": 7.18 }, + { "time": 0.1666, "angle": 7.17 }, { "time": 0.2, "angle": -0.25 }, { "time": 0.2333, - "angle": -2.6, - "curve": [ 0.175, 0.32, 0.75, 1 ] + "angle": -2.59, + "curve": [ 0.174, 0.31, 0.75, 1 ] }, { "time": 0.2666, "angle": -8.85 }, { "time": 0.3, "angle": 2.21 }, { "time": 0.3333, "angle": 4.78 }, - { "time": 0.3666, "angle": 7.18 }, + { "time": 0.3666, "angle": 7.17 }, { "time": 0.4, "angle": -0.25 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.0666, "x": -1.26, "y": -13.31 }, - { "time": 0.1333, "x": -5.86, "y": 9.03 }, + { "time": 0.0666, "x": -1.25, "y": -13.31 }, + { "time": 0.1333, "x": -5.86, "y": 9.02 }, { "time": 0.2, "x": -4.36, "y": -5.23 }, - { "time": 0.2666, "x": -2.61, "y": -4.36 }, - { "time": 0.3333, "x": -0.43, "y": 1.3 }, + { "time": 0.2666, "x": -2.6, "y": -4.36 }, + { "time": 0.3333, "x": -0.43, "y": 1.29 }, { "time": 0.4, "x": 0, "y": 0 } ], "scale": [ @@ -1316,15 +1323,15 @@ { "time": 0, "x": 0, "y": 0 }, { "time": 0.0333, "x": 0, "y": -3.97 }, { "time": 0.0666, "x": 0, "y": -1.35 }, - { "time": 0.1, "x": 0, "y": 3.28 }, - { "time": 0.1333, "x": 0, "y": 11.57 }, - { "time": 0.1666, "x": 0, "y": 2.03 }, - { "time": 0.2, "x": 0, "y": -6.45 }, + { "time": 0.1, "x": 0, "y": 3.27 }, + { "time": 0.1333, "x": 0, "y": 11.56 }, + { "time": 0.1666, "x": 0, "y": 2.02 }, + { "time": 0.2, "x": 0, "y": -6.44 }, { "time": 0.2333, "x": 0, "y": -3.97 }, { "time": 0.2666, "x": 0, "y": -1.35 }, - { "time": 0.3, "x": 0, "y": 3.28 }, - { "time": 0.3333, "x": 0, "y": 11.57 }, - { "time": 0.3666, "x": 0, "y": 2.03 }, + { "time": 0.3, "x": 0, "y": 3.27 }, + { "time": 0.3333, "x": 0, "y": 11.56 }, + { "time": 0.3666, "x": 0, "y": 2.02 }, { "time": 0.4, "x": 0, "y": 0 } ], "scale": [ @@ -1349,28 +1356,28 @@ "front_thigh": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.0333, "angle": 11.49 }, + { "time": 0.0333, "angle": 11.48 }, { "time": 0.0666, "angle": -39.11 }, { "time": 0.1, "angle": -67.87 }, { "time": 0.1333, "angle": -87.79 }, - { "time": 0.1666, "angle": -74.85 }, - { "time": 0.2, "angle": -54.57 }, + { "time": 0.1666, "angle": -74.84 }, + { "time": 0.2, "angle": -54.56 }, { "time": 0.2333, "angle": -27.42 }, { "time": 0.2666, "angle": 2.48 }, - { "time": 0.3333, "angle": 22.08 }, + { "time": 0.3333, "angle": 22.07 }, { "time": 0.3666, "angle": 23.18 }, { "time": 0.4, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.0666, "x": 6.81, "y": 1.04 }, - { "time": 0.2, "x": 23.4, "y": 4.1 }, + { "time": 0.0666, "x": 6.8, "y": 1.03 }, + { "time": 0.2, "x": 23.39, "y": 4.09 }, { "time": 0.4, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.1333, "x": 1, "y": 1 }, - { "time": 0.2333, "x": 0.886, "y": 1 }, + { "time": 0.2333, "x": 0.885, "y": 1 }, { "time": 0.4, "x": 1, "y": 1 } ] }, @@ -1379,7 +1386,7 @@ { "time": 0, "angle": 0, - "curve": [ 0.29, 0, 0.629, 0.37 ] + "curve": [ 0.289, 0, 0.629, 0.37 ] }, { "time": 0.0666, @@ -1389,22 +1396,22 @@ { "time": 0.1333, "angle": -3.71, - "curve": [ 0.325, 0.3, 0.662, 0.65 ] + "curve": [ 0.324, 0.3, 0.662, 0.64 ] }, { "time": 0.2, "angle": 4.19, - "curve": [ 0.337, 0.34, 0.675, 0.69 ] + "curve": [ 0.337, 0.34, 0.675, 0.68 ] }, { "time": 0.2666, - "angle": 0.94, + "angle": 0.93, "curve": [ 0.351, 0.4, 0.689, 0.74 ] }, { "time": 0.3333, - "angle": -3.36, - "curve": [ 0.37, 0.62, 0.709, 1 ] + "angle": -3.35, + "curve": [ 0.37, 0.62, 0.708, 1 ] }, { "time": 0.4, "angle": 0 } ], @@ -1433,7 +1440,7 @@ "scale": [ { "time": 0, "x": 1, "y": 1 }, { "time": 0.0666, "x": 0.819, "y": 1 }, - { "time": 0.2, "x": 1.04, "y": 1 }, + { "time": 0.2, "x": 1.039, "y": 1 }, { "time": 0.2666, "x": 0.819, "y": 1 }, { "time": 0.4, "x": 1, "y": 1 } ] @@ -1441,9 +1448,9 @@ "front_foot": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.0333, "angle": 9.87 }, - { "time": 0.0666, "angle": 12.87 }, - { "time": 0.1, "angle": -32.16 }, + { "time": 0.0333, "angle": 9.86 }, + { "time": 0.0666, "angle": 12.86 }, + { "time": 0.1, "angle": -32.15 }, { "time": 0.1666, "angle": -39.59 }, { "time": 0.3333, "angle": 13.67 }, { "time": 0.4, "angle": 0 } @@ -1462,22 +1469,22 @@ { "time": 0, "angle": 0, - "curve": [ 0.29, 0, 0.629, 0.37 ] + "curve": [ 0.289, 0, 0.629, 0.37 ] }, { "time": 0.0666, - "angle": -5.39, + "angle": -5.38, "curve": [ 0.31, 0.25, 0.648, 0.6 ] }, { "time": 0.1333, - "angle": -10.33, - "curve": [ 0.325, 0.3, 0.662, 0.65 ] + "angle": -10.32, + "curve": [ 0.324, 0.3, 0.662, 0.64 ] }, { "time": 0.2, "angle": 4.19, - "curve": [ 0.337, 0.34, 0.675, 0.69 ] + "curve": [ 0.337, 0.34, 0.675, 0.68 ] }, { "time": 0.2666, @@ -1486,8 +1493,8 @@ }, { "time": 0.3333, - "angle": -10.36, - "curve": [ 0.37, 0.62, 0.709, 1 ] + "angle": -10.35, + "curve": [ 0.37, 0.62, 0.708, 1 ] }, { "time": 0.4, "angle": 0 } ], @@ -1503,10 +1510,10 @@ "lower_back_arm": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.0666, "angle": -11.65 }, - { "time": 0.1333, "angle": -16.99 }, + { "time": 0.0666, "angle": -11.64 }, + { "time": 0.1333, "angle": -16.98 }, { "time": 0.2, "angle": -7.9 }, - { "time": 0.2666, "angle": -8.99 }, + { "time": 0.2666, "angle": -8.98 }, { "time": 0.3333, "angle": -10.59 }, { "time": 0.4, "angle": 0 } ], diff --git a/examples/alien/export/alien.skel b/examples/alien/export/alien.skel index 6bd3bc9842624dcf4b730c7ddd027d45b3bbbfd4..eea4cc7202bde1d7ed2698f4de071999a4672159 100644 GIT binary patch delta 160 zcmZqh{o!LOljra18ffX7mKfr0X&IHDl9*!VUX)jv6_t_9W2|SYXJD+GlvWCCPA0h3b9dO)@pvo<5c=5l6EWdJZdD#ZW* delta 168 zcmez2)8MNklb;oq=cer$kyBL>5|!szl^En&mgt{v5tLHSZmegbXJF*K?dc)s!+W9` zCz={CF)~g}(*%(d!0dziAofQPIa!fW3q<)qsB%Ul5N{QuA&9!e2vRw$RA%-TR|b3QYtG61lTD2xCA diff --git a/examples/dragon/export/dragon.json b/examples/dragon/export/dragon.json index cd6fb4066..f5f4a2bd7 100644 --- a/examples/dragon/export/dragon.json +++ b/examples/dragon/export/dragon.json @@ -1,5 +1,5 @@ { -"skeleton": { "hash": "9MKo2cmJTDc3IPV4B3LRJxWbl04", "spine": "3.4.02", "width": 897, "height": 716.36, "images": "./images/" }, +"skeleton": { "hash": "Mc0suer5LoUZv7DvFA3mLFATKFU", "spine": "3.5.03-beta", "width": 897, "height": 716.36, "fps": 30, "images": "./images/" }, "bones": [ { "name": "root", "y": -176.12 }, { "name": "COG", "parent": "root", "y": 176.12 }, @@ -200,7 +200,7 @@ { "time": 0.8, "name": "L_wing03" }, { "time": 0.8333, "name": "L_wing04" }, { "time": 0.8666, "name": "L_wing05" }, - { "time": 0.9, "name": "L_wing06" }, + { "time": 0.8999, "name": "L_wing06" }, { "time": 0.9333, "name": "L_wing07" }, { "time": 0.9666, "name": "L_wing08" }, { "time": 1, "name": "L_wing01" } @@ -223,7 +223,7 @@ { "time": 0.8, "name": "R_wing03" }, { "time": 0.8333, "name": "R_wing04" }, { "time": 0.8666, "name": "R_wing05" }, - { "time": 0.9, "name": "R_wing06" }, + { "time": 0.8999, "name": "R_wing06" }, { "time": 0.9333, "name": "R_wing07" }, { "time": 0.9666, "name": "R_wing08" }, { "time": 1, "name": "R_wing01" } @@ -757,7 +757,7 @@ { "time": 0.3333, "angle": 23.93 }, { "time": 0.6666, - "angle": 337.8, + "angle": 337.79, "curve": [ 0.41, 0, 0.887, 0.75 ] }, { "time": 1, "angle": 0 } diff --git a/examples/dragon/export/dragon.skel b/examples/dragon/export/dragon.skel index 4cdc234413b4ed096eb88922366cca93a58d1909..2e9084384366190d1144f799839887b89cc07721 100644 GIT binary patch delta 256 zcmZ4D+~aI2XRQDRc7u|=H_Ue>*MAa;_Vj7W2|SYXJD+Glv$5r5SVNOle@s=J4P*_xD*pe z)(=cJF#*k(yoE^zNIqf$8ZcR$8DxSNGe}JxnA`*=pD}|}O0a-ry}@K1nB2$$GV?B& m=_Vd;$-X-$EXF8lVk!b@qtkFOd#_n zZ(z~^QFoa@W=$4k1{>zg3|3hNp;khuJIr7WyewcP_7JKNLM>(i+i(s-{bT`~sm2Nx e3}gj4c5*F*S_z@9LMTQyu$(TK+8oJdEDZo_bT~i& diff --git a/examples/export/runtimes.sh b/examples/export/runtimes.sh index 0db4a1051..faa060d3b 100755 --- a/examples/export/runtimes.sh +++ b/examples/export/runtimes.sh @@ -68,6 +68,36 @@ cp -f ../tank/export/tank.json ../../spine-cocos2dx/example/Resources/common/ cp -f ../tank/export/tank.atlas ../../spine-cocos2dx/example/Resources/common/ cp -f ../tank/export/tank.png ../../spine-cocos2dx/example/Resources/common/ +echo "spine-corona" +rm -f ../../spine-corona/data/* +cp -f ../goblins/export/goblins-mesh.json ../../spine-corona/data +cp -f ../goblins/export/goblins.atlas ../../spine-corona/data +cp -f ../goblins/export/goblins.png ../../spine-corona/data + +cp -f ../raptor/export/raptor.json ../../spine-corona/data +cp -f ../raptor/export/raptor.atlas ../../spine-corona/data +cp -f ../raptor/export/raptor.png ../../spine-corona/data + +cp -f ../spineboy/export/spineboy.json ../../spine-corona/data +cp -f ../spineboy/export/spineboy.atlas ../../spine-corona/data +cp -f ../spineboy/export/spineboy.png ../../spine-corona/data + +cp -f ../tank/export/tank.json ../../spine-corona/data +cp -f ../tank/export/tank.atlas ../../spine-corona/data +cp -f ../tank/export/tank.png ../../spine-corona/data + +cp -f ../vine/export/vine.json ../../spine-corona/data +cp -f ../vine/export/vine.atlas ../../spine-corona/data +cp -f ../vine/export/vine.png ../../spine-corona/data + +cp -f ../stretchyman/export/stretchyman.json ../../spine-corona/data +cp -f ../stretchyman/export/stretchyman.atlas ../../spine-corona/data +cp -f ../stretchyman/export/stretchyman.png ../../spine-corona/data + +cp -f ../test/export/test.json ../../spine-corona/data +cp -f ../test/export/test.atlas ../../spine-corona/data +cp -f ../test/export/test.png ../../spine-corona/data + echo "spine-love" rm -f ../../spine-love/data/* cp -f ../goblins/export/goblins-mesh.json ../../spine-love/data @@ -152,6 +182,10 @@ cp -f ../vine/export/vine.json ../../spine-starling/spine-starling-example/src/ cp -f ../vine/export/vine.atlas ../../spine-starling/spine-starling-example/src/ cp -f ../vine/export/vine.png ../../spine-starling/spine-starling-example/src/ +cp -f ../stretchyman/export/stretchyman.json ../../spine-starling/spine-starling-example/src/ +cp -f ../stretchyman/export/stretchyman.atlas ../../spine-starling/spine-starling-example/src/ +cp -f ../stretchyman/export/stretchyman.png ../../spine-starling/spine-starling-example/src/ + echo "spine-ts" rm -f ../../spine-ts/webgl/example/assets/* diff --git a/examples/goblins/export/goblins-mesh.json b/examples/goblins/export/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/examples/goblins/export/goblins-mesh.json +++ b/examples/goblins/export/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/examples/goblins/export/goblins-mesh.skel b/examples/goblins/export/goblins-mesh.skel index 48d702d367519e22bcccd63d81a208bfd9be3d09..11d72ac71801ae2541584fad792db08c73c30515 100644 GIT binary patch delta 201 zcmaFd#dy7o(NrcVtUSv&#XLwq+sE5K&$J-5z#up~FwE4@JDJB=&s5LAST`xPB+KaW6*44-5h$TcQYAe)yNM7l5o&7NEaCRZ?nR9*v|?0a2?U)O|*M5Rab;OxZK( zfOt7fU?mG7f)|-gL4xeeV9J&mWY^?82sNJ>tlR5`6+uKklJj) HA#V!+Dz-7u diff --git a/examples/goblins/export/goblins.json b/examples/goblins/export/goblins.json index fb8c3f1da..d4ff7de2c 100644 --- a/examples/goblins/export/goblins.json +++ b/examples/goblins/export/goblins.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "XWev9W//Ru9qTfd6z9xOs5YG8F0", "spine": "3.4.02", "width": 234.01, "height": 354.84, "images": "./images/" }, +"skeleton": { + "hash": "9Twfw0ImCCb/C3Vx15ucH1FZP6U", + "spine": "3.5.03-beta", + "width": 234.01, + "height": 354.84, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -208,7 +215,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } diff --git a/examples/goblins/export/goblins.skel b/examples/goblins/export/goblins.skel index 8af1c6c941a77ed617bd1867f339356cdbbc0559..1f88764a4035f02bc16e61b3e5203c49eed2cf33 100644 GIT binary patch delta 166 zcmaE;dqdY$#xkTlt=zyf*V#Eq-`O~7#SwUX#$B(Z6L8t3rIWy5|jBDje(>yqaKhfW;6kkE5YP_MtvY# pfC)r8GU))xd?t|WQn1K1CQ~4rml;I5Fayn=Tm~XHuVA(m1_1u$DXahh delta 175 zcmcbi`%qU$CL%nw%rabGKd98QFeEL-tje;&zt}X=-NMa)-B`~=&%nqzi#gVLWA+Qi ziKYfjjEoc0G(qG9Z4kLf3q(E#k&}fOjX{(fqaKJVWi$a%t02^UMtu;Ep9xIaGwFbM hIZR+B3n79RnM^@~?95=wmKkK%YnNbT! z-UpN1Oxi%U1rta-oe897I#}cgnEVJP<(NTgyqR@?WF?rr3`jCfz6=&&WC6+Q0ZFFG z(JcBvb`J~4oIPOnTQFOe6{Odj6{NBPOfCh9Y`)C8h*6V)Nl=K{zJY<^Kfh0YeztRd oUU5lLVrE_mBO@m(0}wE>1;zWMrZa7x&Ax+~>Bz>-q1?TV0RI;8%#CA`4j1mqj0>vX%vG z<{Aj^4ur?e3O2=p6>Me-gqi>r+`N}{5#!_pc1d1NRt6woWDAP-Nlo9}!M=l;=@`Ri IC+^-x0BD9n5&!@I diff --git a/examples/hero/export/hero.json b/examples/hero/export/hero.json index 43d685349..4b5bbc2ab 100644 --- a/examples/hero/export/hero.json +++ b/examples/hero/export/hero.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "G8Hn+I+pLLpQJV630iP0YYkYAHQ", "spine": "3.4.02", "width": 319.35, "height": 337.01, "images": "./images/" }, +"skeleton": { + "hash": "A6YUo0HfQU4n+BxWujsTVoekIjA", + "spine": "3.5.03-beta", + "width": 319.35, + "height": 337.01, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "Hip", "parent": "root", "y": 94.88 }, @@ -12,10 +19,26 @@ { "name": "body", "parent": "Hip", "length": 60.79, "rotation": 96.39, "x": 4.09, "y": 3.17 }, { "name": "thigh1", "parent": "Hip", "length": 23.94, "rotation": -107.07, "x": -17.51, "y": -5.22 }, { "name": "shin1", "parent": "thigh1", "length": 28.23, "rotation": 10.26, "x": 29.76, "y": -0.91 }, - { "name": "foot1", "parent": "shin1", "length": 27.07, "rotation": -90.96, "x": 28.17, "y": -0.48, "inheritRotation": false }, + { + "name": "foot1", + "parent": "shin1", + "length": 27.07, + "rotation": -90.96, + "x": 28.17, + "y": -0.48, + "transform": "noRotationOrReflection" + }, { "name": "thigh2", "parent": "Hip", "length": 23.65, "rotation": -85.46, "x": 21.85, "y": -5.86 }, { "name": "shin2", "parent": "thigh2", "length": 25.35, "rotation": -2.25, "x": 31.99, "y": 2.96 }, - { "name": "foot2", "parent": "shin2", "length": 22.28, "rotation": -90.42, "x": 25.54, "y": 0.27, "inheritRotation": false }, + { + "name": "foot2", + "parent": "shin2", + "length": 22.28, + "rotation": -90.42, + "x": 25.54, + "y": 0.27, + "transform": "noRotationOrReflection" + }, { "name": "upperarm1", "parent": "body", "length": 19.35, "rotation": 130.11, "x": 52.49, "y": 41.84 }, { "name": "forearm1", "parent": "upperarm1", "length": 22.06, "rotation": 30.56, "x": 23.97, "y": 5.16 }, { "name": "upperarm2", "parent": "body", "length": 25.98, "rotation": -178.95, "x": 57.94, "y": -38.93 }, @@ -51,18 +74,21 @@ "ik": [ { "name": "L_Leg", + "order": 0, "bones": [ "thigh1", "shin1" ], "target": "L_Ankle", "bendPositive": false }, { "name": "LookConstraint", + "order": 1, "bones": [ "head" ], "target": "LookConstraintGoal", "mix": 0 }, { "name": "R_Leg", + "order": 2, "bones": [ "thigh2", "shin2" ], "target": "R_Ankle", "bendPositive": false @@ -1201,8 +1227,8 @@ { "time": 1, "angle": 0 } ], "translate": [ - { "time": 0, "x": -6.83, "y": 12.06, "curve": "stepped" }, - { "time": 1, "x": -6.83, "y": 12.06 } + { "time": 0, "x": -6.83, "y": 12.05, "curve": "stepped" }, + { "time": 1, "x": -6.83, "y": 12.05 } ] }, "L_Ground": { diff --git a/examples/hero/export/hero.skel b/examples/hero/export/hero.skel index a52ddd720836527e1c50bd8a10a9a2d2a9c89a54..1b395b126b323f27eafbe5cc9258575a569e723a 100644 GIT binary patch delta 249 zcmbQ4-J5MH<7gHcns4Bd78q)hr|nb`UYb=L5|*Eu?V07sW2|SYXJD+Glv7#SwUX#$B(Js`1D7f8GSicOYcv;dMJj6l)JEsQ|n$(tFqfaHBf z9U#feqzxpkfF#r8bS99AD9dxmiG_nX`aQ zPGbR@uz3p0Bt}gJCQdG9`vwMv|NK7r`Pt6-dBr6~iJ5sNjEthJ3_!rh78LK3n$EP@ Ihs{?X0JTFt8UO$Q delta 261 zcmeCpo|&y9<8I-Rr|qd-;Nw#e=oMyWY>*jX5E+>r>F5#2ZmegbXJF(!e{G5Lil!vS ziKYfjjEoc0G(qG9JrKEH7eu}ViBFbev;a}zj3AlGZHyqP$y*q;K-7Ik9T3ICqz$4h zfD{Acg!<16Hd>1XY*7RY$gs_= yERz`3m^itZ?Hd>v{`33f=Vv?T=M|R}C1&Q8Fp9D=00ARgP`poS`ep|X` zXXkCIjE)}|7$)i%FfvSx(*+W}`aohIh-wSZ(5n7tfKUICMgOdwf3 aFc}RdJHX^tF!=~f@-qX~Y_?%G-~j+p<|v2& delta 167 zcmaDN_eM@f#?QsG+(|#xIoUG1GOHva-`6oGv?$oA+(0{!-B`~=&%ns}+zf4J=WVKt z6HN`67#Sy~>4L~9`XKTMnEV0~pRCHL4Wa@WwLnx2gtr1hT>(>*n7}G@AXEf|YJpH2 SAk-ZQ#lZ|xx!Hu-fCm6iyd~8D diff --git a/examples/raptor/export/raptor.json b/examples/raptor/export/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/examples/raptor/export/raptor.json +++ b/examples/raptor/export/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/examples/raptor/export/raptor.skel b/examples/raptor/export/raptor.skel index fa45b1ebb780e78a3ed28415f5c1357884763733..8e17ea965defc40fe0632ca9268304e87b10a48d 100644 GIT binary patch delta 826 zcmXw!PfQa*6vlU^rQQC4(kf!1HE0xRp)G8;DAEdr9xzdil88hDDW)J1EpDqM7!niZ zU^XGa(L{O>4PZ3Jc-Vtph)@zwX!PI(IcSs{5aOSp2f%p`y!_^S-}mOdnd}(7J4QpU z=C)X(^Gs8DQ@WcHNP|bjJLGHH({ULv4(ASwr$72uHnq#+qE|ci0AdFO0 z5@Dp>!*QpA;}u|0A_8*~ne!y!1{)+^&S%I^B*3+ShBzbC&v}_vaXz8}LfJZWmD*^ zm}+#wW{Rzv3Rt~)A5R~ecd>zOb$Gj8!P;T*@j7aO4gJU$7I@1%(r5)OBjdO-5uS@crRgt_CiTVEmreZtR&(}M^`eL z#yE%i16~aBF!+B>&t~m=iGh8$m+UZ7TYet&Y>KILkD^@b6SV@zx`9e6+vzNYBkYvn zP`0X!a|5bOQFFeeQh!5s!IKS+X6k~Hs{JXNBoL0dO7}=A@imIiho+bNCSX4GHSRyP zR9E(U7FyXiR|9k&bjz-};XuQU^Pc+KbMGLkoOwB#nf6Am9vyP`X#MUX9esUT+bEeA z>6c&Hyyu=swV>7~sUi$mKZ0*OP>aWj+Ho*{)Rwv>wL0q<_&W1uG!udKa&*=lnfb82 OJ``@}joSUNujL=2iRh#N delta 893 zcmXw!OH30{6o$FCuW4xzP(w>vB4~&OI&HZv;Z?yF#ki34w(sqlp_LEel-~V|>Jfuuy^gIlP&i|kDpP8Jc*;!iS z7`a$ie=0ECf2QlirATZz9QK_|d4^6$N%fc)(4#ZK@j#EOSM_)VHK4{gx;dr{nD<75miL=i)kbu78nJoL7=)ml zR%zHZ;t`?={#fZSRRcyjp7Z9K2`v@@(I{ZLBrtH!@#aSkof$36jCtJ}v?Hd>9z7vn zM-*Z?sH~eSU~JFa0BEq(17waxj!lajn#K8;)6Q`t9}k=7_=K3WVy}jy!-`{fI9?#s z4XaOYr~3~Sx7^ChBZUcB>Q6@#l9Z12NU=UeEV7kQd#Mf7y#hHNlcO>DGS{M@iJmH) z2U8s_!kwV6(7|O1@vTS;$g)yeSEqzKrlpK|1j1hNOSR7m4N;psv`u>9f#lX#o`HF?{u|}=2k)SW}Z#YELQ~wj*XSQQrn$lI=VEVzB{xg z(2cOV;JPo+mn&*(?Og#DtTy6R+Z@iOIcR2^DxHkgWs9$U%e^)GC3)~BCR4gD>5{rFfhe3Jf%24(A3p{$5_u)&%jtWDYYcg*@a`G z^Nbzu7#%+_Fig}jU}TsWrwJrFwSmMoQy}qHpOIm*9HSPH^kOstk`0VNxyft6%Slc4P(AC6*-B`~=&%nspg=3=gj2-V7 zCz={CF)~g}(*%(dv_a$^QxN${A4pDCV$=drzKkXys)-S#VDdT$b&CB%MI diff --git a/examples/spineboy-old/export/spineboy-old.json b/examples/spineboy-old/export/spineboy-old.json index 4323f06bf..9138abf0d 100644 --- a/examples/spineboy-old/export/spineboy-old.json +++ b/examples/spineboy-old/export/spineboy-old.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "DIwMYpCxf9hwB7YgCS6TSSPK/5A", "spine": "3.4.02", "width": 161.12, "height": 343.58, "images": "./images/" }, +"skeleton": { + "hash": "MfbzRfUXCtXYzTG2gPcZOR6jXYY", + "spine": "3.5.03-beta", + "width": 161.12, + "height": 343.58, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -46,7 +53,7 @@ "bb-head": { "type": "boundingbox", "vertexCount": 5, - "vertices": [ 77.26, -53.82, 105.8, -32.41999, 58.43, 40.34, 5.82, 37, -7.01, -42.23 ] + "vertices": [ 77.26, -53.81999, 105.8, -32.41999, 58.43, 40.34, 5.82, 37, -7.01, -42.22999 ] } }, "eyes": { @@ -122,7 +129,7 @@ { "time": 5.2195, "angle": -37.12 }, { "time": 5.9086, "angle": 2.07 }, { "time": 6.9044, "angle": 34.72 }, - { "time": 7.7675, "angle": 359.99 } + { "time": 7.7674, "angle": 359.99 } ], "translate": [ { @@ -441,7 +448,7 @@ { "time": 0.4, "angle": -48.36 }, { "time": 0.5666, "angle": -76.86 }, { "time": 0.7666, "angle": -26.89 }, - { "time": 0.9, "angle": -18.97 }, + { "time": 0.8999, "angle": -18.97 }, { "time": 0.9333, "angle": -14.18 }, { "time": 1.0666, "angle": -80.45 }, { "time": 1.3666, "angle": -27.46 } @@ -515,7 +522,7 @@ { "time": 0.7666, "angle": 1.34 }, { "time": 0.9333, "angle": 2.35 }, { "time": 1.0666, "angle": 6.08 }, - { "time": 1.3, "angle": 21.23 }, + { "time": 1.2999, "angle": 21.23 }, { "time": 1.3666, "angle": 12.78 } ], "translate": [ @@ -538,7 +545,7 @@ { "time": 0.7666, "angle": -11.02 }, { "time": 0.9333, "angle": -24.38 }, { "time": 1.0666, "angle": 11.99 }, - { "time": 1.3, "angle": 4.86 }, + { "time": 1.2999, "angle": 4.86 }, { "time": 1.3666, "angle": 5.19 } ], "translate": [ @@ -975,7 +982,7 @@ "angle": 5.17, "curve": [ 0, 0, 0.704, 1.61 ] }, - { "time": 0.7, "angle": 1.1 }, + { "time": 0.6999, "angle": 1.1 }, { "time": 0.8, "angle": 6.09 }, { "time": 0.9333, "angle": 2.28 }, { "time": 1.0666, "angle": 3.6 } diff --git a/examples/spineboy-old/export/spineboy-old.skel b/examples/spineboy-old/export/spineboy-old.skel index f56145af6014f31b653396680b8e5098d7a0b72f..155ecfed6ced21dd6947d8768ff889f86ab5fc59 100644 GIT binary patch delta 166 zcmZ2)v&_a+#y2ggDkv>9!nq_OvMR*gC_NxK%0I{~DZUcuZh1pskdD$oD` delta 175 zcmZ2xv))EW#>KPTH?qLFBF!?R+{rvL-8tASBse(0Ti?`?-B`~=&%nr8QU03q>Qi2f z6HN`67#Sy~X@bZJ+8}a|7KnTfA}0$m8iOb|Mm-Q!%4h$*uB3CO(L*g8Ss}0k@F;EEC z1Z=!Ewd!d$jogi)(|A*@3Dg;?y*7i~?xkr{xv93L7mc0dIwa9@)?^Ye(N_A~1N>v3 zcc1rppXdF(zvtukox#q!f?fT!ds@W)${o8Jnzwd-<6HG@?a#G*v&LE3*Pl^aRaaGA zyRogK*C{Se-nYHs=6`A7Q;IsWp_-&r4Bvno?BjaEj`6 zHYpP+>KR@OFjAv-1LT0V0y3DC7qn{R|0QKbs`}rOTB)Tzyqvozozmq=ucsE#jP!?8 z3#3-3-oH(U*b_avV$CLs$y%3b9j2(odt5zT&-U(ib#?Xb{%$8tvl;3(ow>B#+tqGZ1M-lmga3X5m7$SMyLCYuB+l-D>QxvI)+btzOozn|{8E2(anbmF0 zir#iMp z=C#~VEG=B-a>U<=8#2+yKbxi|f3~wl3 zkY5>$TkkDDXdqo?xBP^cx6F(kr3=L3jHq%61ga%gAZB}ccX7{p|4{ZielaXuyu1q-XOPYKdv<84JX|s+rC&*S5 zO;Qu6`3TwT4@kxwt~zcfH&%|3%fpno>PyGcF|lfGLexE&4A1cLj}YRb*)2VtbKg*R zko4m{@2)Cf3dzyjfG|Q)R(E2CCy&4sXo{Mh<@eKtWX5S1Vkl$v+Cp+-zgf<~L1-yP zVPrlc1W=9aFaKPqJOGAz!1Kt-@A2d?ipDk{vE;N=7)TB45iZ5jEcUbSF+9%81LOpBtf0`qWqHiCcm0=lL0R; zP34uCP;OIq?_G}q8t;oNAL}k(P!3=sz{#+mmWs-zO!Q;G~Cuqv6XoPIwqy+W^WBWsEYc5JvA6BjZ`~eohz$`qEaD<#JXv zO#eY{cuc7;R$bzR*Wk4dY17_HFf7rav&;Me%aqJI!g5ZfYtVjVF!ibf@ESU?!~wsx})dh0hq4NV~D_wwLPf#6mgkvR-PGW<$%kT49P0h_0!RF zzU8K7<?wi%Akh<7-16F~RJ?GrrTKpRo$Z(xKSLmc(cnpTtW2F958 zib>gr{ybceJ#nCLMlh_rOF_^vOv@2JLkGwzW zR>ByOCx}n^6Uyp&Ot9CRq9hl?%MYDHHaDU8Sc;NcaAzYX;bVhw(uhf(3v7E~YePD$ zu>BmPa1KPKzkD$v{1E*!hW?)`F*5tjQhI4#<8)NmiCn#TazVHQ2-hwqNJXnj)D1X< z+klEmVk;Spi<$<9l7%n{K=>J;VE8Gg`ywI({oECkxaOEi>MG51;Wa4-qGTUXd;k>v zsF2Y#Gs(w_IukI>$U%I~$7AFlTAuv6!9mU`K5`AOieF5G-v{EW0Qv*?PmYFcMl_Dn X7g353>kOEF3BHTOH*ur%{ObP$%Gg=} delta 2402 zcmX|Ce^gWV70-JC(!7FEjDf_Eq{^>Qhe$xM?Mw3gJ}QypJPn5pJxj}>j*JZ}L~(Fn z7TqyB>sF2Qu?lger;t-=3#nUry3`KM`=+bygmrFXQES&_M_XOutfvL5Ze{nq1pj$A z_j|wJdq4McefBYH$CS8mz9MDQeJd7QaWO-$JGM`zs54`BF+e;&)K%Me$rpyhCjewFD(yG1BFt zwk;+0)6(H@=qmB>Gx}js;gE}-`F^?Nb5bsO`A14qWk`qi4C%_=4C(nqN_>(b z-Be|YAo)$1>qOzsEEC0GO8h=k3Uns`mm9`yVDkMJZQ$=1d&9EMH zuPb2tR?w=nkFg$XDqXM!#;U+{%Vow&b-yk9sgM#C)d#VzE0AaX95v7iT*0uoEbg!t z{xYFN9}yovlvDAv`;^lDcDOMjhfuw{)=&z}c#XmCz0h^==o)Nz= zWe7`oDulQC;`YCKjiQZKoWVX9y5Tb0o|Tm;h40H`_y@%I=;E=$Q1P-)>4DL(P^|99 zGtCUC0$5RJl2pbR^tDVz3T9@}1$95sdyVK%tVg()@J31)R#;4Ug*XJP8;=Qp9*?1R zkR;rQb7eC0JjhKJ3x0880Y3>je>ED$+q_0jzaohrl*zc&iXfUIK76h|C>$+a!1X_$ z_6WzI5LdebLKFaK!C4N-6L;gbb6z8kg3~MGG2GG>K$jp`4S<;hz<00@&49d#eb(_9 z6FRrzMh2bm@~1S#WeG1@4@5P;_oRswGAzlCJJ|P0i4nik6(E&CHT&a-J17HwA!Om1 zJVTY+ZEKr$7T_1}#v_9xe)ccRYiUDdUFm`_KLWx)~Z~* zD^K@bi-o+|>X1m+<1wwDOhL_ccvfMhMh^gu`iywf+#~69~@29T90#p@OPo-Qeit2UVL-u9lmrx z#ytQ$N;a;1MUqoIZWJ}zDEth3p2t3ZTmG7XzBumjxvU>Ppr=jvnAVSmWip#5IcLP% zz~tXL%eIzoqD*+M)q!HrbD}>JJ^>i>;UZ`m1~fb$MSe(F{puf0zo^Z8M0)0aI3_8U;*VQ|qv`Y0o=fk9Ac z3k+Q;7Ud>f36NW1qO>co8BwLrg}1~Q9&4@TVO4;x3C=jl~Fx45t)~x;(Jy-gW zBNA~Y*~Es&AmuKAc-vy(gW8e-;!Cqq^hF@@Zj4#d*2eIvC8oIonC>G>h2qv8kdd=0 zSL!CN?u(0wq_t;(cgub4aH|9NKm&?A>2W`B_|pA0c?5d)^%1^Fr?GjUkiAQxQEOKK zSHm`v9w7o-<^nWk$_0j|@4nwnuT6V!ug}H5rYodDe5BK5K_@;RvV?Bxo}momF)}sc zNB;swI$(hQ`3n|(2@|N&n@JmVSBohxG^lT&VA^f9ca$1b4`W&jv>wSGrPU|`v$hth znma$DK?mlexX5L;UdpWi(|_D)nm{NqzTZV37;$Sx6}Z^{T$eK z2La;1HzzehFI4#2e6*(I50jMIz8U6+OHYhim?J*HpDvl2)XdDD9$M0bTZS;|XIPO% zT74z~Y;1scKdO6G!)^t1Jqa(HIW;$^D&{MetqK(y3n)WhoV)=Ze+@pw`^#Ns^aiXW z?`1PNG#U=In38gs7p^Ri5$*u1#`Xn~ZLUNSB=5t1Q|*kA&w#bNfblZC`VxD1Xp8-@SI4%_VlBiO0bK*tS`QqmWip`|;x*I<(RN^`0oqs#5D&&3_-VHr+o0WF zjyq5SXdHL}7W7Y{tER9Ik3-N0!BJf6=QI%Te_sT+tgjn6*((kVEx^&WjW~SS%<0Ys z@z_v5x28IZj{v~E;G+o^@Z`h-`UdptF$R~p-JGJg5#58tU~kxq3}H_GNSx#Xpd_rY zUjguoF7p66xi8AmdoAQNI9?8$uAnQx diff --git a/examples/spineboy/export/spineboy-mesh.json b/examples/spineboy/export/spineboy-mesh.json index 1dead8c73..b469e2763 100644 --- a/examples/spineboy/export/spineboy-mesh.json +++ b/examples/spineboy/export/spineboy-mesh.json @@ -1,5 +1,5 @@ { -"skeleton": { "hash": "F8rkPuRWVWWeoK90PmJAvIALFjY", "spine": "3.4.02", "width": 0, "height": 0, "images": "./images/" }, +"skeleton": { "hash": "mb9RZEJVw/MaT0MU9ZTBXq45AU4", "spine": "3.5.03-beta", "width": 0, "height": 0, "fps": 30, "images": "./images/" }, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "y": 247.26 }, @@ -15,7 +15,7 @@ "rotation": -0.85, "x": 51.16, "y": 0.23, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ff000dff" }, { "name": "front_foot_ik", "parent": "root", "x": -13.52, "y": 0.04, "color": "ff3f00ff" }, @@ -42,7 +42,7 @@ "rotation": -1.67, "x": 41.42, "y": -0.08, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "00ff04ff" }, { "name": "rear_upper_arm", "parent": "torso", "length": 51.93, "rotation": -169.55, "x": 92.35, "y": -19.22, "color": "ff000dff" }, @@ -81,23 +81,27 @@ "ik": [ { "name": "front_ankle_ik", + "order": 0, "bones": [ "front_thigh", "front_shin" ], "target": "front_ankle_ik", "bendPositive": false }, { "name": "front_foot_ik", + "order": 2, "bones": [ "front_foot" ], "target": "front_foot_ik" }, { "name": "rear_ankle_ik", + "order": 1, "bones": [ "rear_thigh", "rear_shin" ], "target": "rear_ankle_ik", "bendPositive": false }, { "name": "rear_foot_ik", + "order": 3, "bones": [ "rear_foot" ], "target": "rear_foot_ik" } @@ -109,7 +113,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 3, 0, 1, 2, 3 ], - "vertices": [ 59.16, -86.8, 28.32, 0.92, 112.27, 30.44, 143.11, -57.28 ], + "vertices": [ 59.15999, -86.8, 28.31999, 0.92, 112.26999, 30.44, 143.11, -57.27999 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 93, @@ -129,7 +133,7 @@ "type": "mesh", "uvs": [ 0.59417, 0.23421, 0.62257, 0.30335, 0.65009, 0.37035, 0.67637, 0.38403, 0.72068, 0.40709, 0.76264, 0.42894, 1, 0.70375, 1, 1, 0.65517, 1, 0.3644, 1, 0, 1, 0, 0.39196, 0, 0, 0.17845, 0, 0.49795, 0 ], "triangles": [ 8, 6, 7, 8, 5, 6, 8, 4, 5, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 13, 13, 14, 0, 11, 1, 10, 11, 12, 13 ], - "vertices": [ 2, 16, 18.17, 41.57, 0.72255, 17, 12.46, 46.04, 0.27744, 2, 16, 24.08, 40.75999, 0.57406, 17, 16.12, 41.34, 0.42592, 2, 16, 29.8, 39.97, 0.47663, 17, 19.67, 36.77, 0.52336, 2, 16, 32.8, 41.66, 0.37452, 17, 22.99, 35.89, 0.62547, 2, 16, 37.86, 44.51, 0.24772, 17, 28.6, 34.4, 0.75227, 2, 16, 42.65, 47.21, 0.17783, 17, 33.91, 32.98, 0.82216, 1, 17, 64.15, 14.56, 1, 1, 17, 64.51, -5.87, 1, 1, 17, 21.07, -6.63, 1, 2, 16, 35.38, -16.16, 0.99998, 17, -15.54, -7.28, 1.0E-5, 2, 16, 3.1, -48.81, 1, 17, -61.44, -8.09, 0, 2, 16, -26.72, -19.31, 1, 17, -62.18, 33.84, 0, 2, 16, -45.95, -0.29, 1, 17, -62.66, 60.88, 0, 1, 16, -30.14, 15.69, 1, 2, 16, -1.84, 44.31, 0.91511, 17, 0.05, 61.98, 0.08488 ], + "vertices": [ 2, 16, 18.17, 41.56999, 0.72254, 17, 12.46, 46.04, 0.27744, 2, 16, 24.07999, 40.75999, 0.57406, 17, 16.12, 41.34, 0.42592, 2, 16, 29.79999, 39.97, 0.47663, 17, 19.67, 36.77, 0.52336, 2, 16, 32.79999, 41.65999, 0.37452, 17, 22.98999, 35.88999, 0.62546, 2, 16, 37.86, 44.50999, 0.24772, 17, 28.6, 34.4, 0.75226, 2, 16, 42.65, 47.20999, 0.17782, 17, 33.90999, 32.97999, 0.82216, 1, 17, 64.15, 14.56, 1, 1, 17, 64.51, -5.86999, 1, 1, 17, 21.06999, -6.63, 1, 2, 16, 35.38, -16.15999, 0.99997, 17, -15.53999, -7.28, 0, 2, 16, 3.09999, -48.81, 1, 17, -61.43999, -8.09, 0, 2, 16, -26.71999, -19.30999, 1, 17, -62.18, 33.84, 0, 2, 16, -45.95, -0.28999, 1, 17, -62.65999, 60.88, 0, 1, 16, -30.13999, 15.68999, 1, 2, 16, -1.84, 44.31, 0.9151, 17, 0.05, 61.97999, 0.08488 ], "hull": 15, "edges": [ 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 22, 24, 24, 26, 26, 28, 22, 26, 12, 14, 10, 12, 2, 4, 2, 20, 4, 6, 6, 16, 2, 0, 0, 28, 6, 8, 8, 10 ], "width": 126, @@ -152,7 +156,7 @@ "type": "mesh", "uvs": [ 0.53653, 0.04113, 0.72921, 0.16035, 0.91666, 0.33222, 0.97046, 0.31329, 1, 0.48053, 0.95755, 0.57329, 0.88825, 0.63279, 0.86877, 0.78962, 0.77403, 0.86749, 0.72628, 1, 0.60713, 0.93862, 0.496, 0.88138, 0.41557, 0.75026, 0.32547, 0.70084, 0.2782, 0.58256, 0.17209, 0.63281, 0.17228, 0.75071, 0.1078, 0.79897, 0, 0.32304, 0, 0.12475, 0.07372, 0.07343, 0.15423, 0.10733, 0.23165, 0.13994, 0.30313, 0.02256, 0.34802, 0, 0.42978, 0.69183, 0.39475, 0.51041, 0.39488, 0.31511, 0.45878, 0.23197, 0.56501, 0.28108, 0.6996, 0.39216, 0.82039, 0.54203, 0.85737, 0.62342, 0.91107, 0.51407, 0.72638, 0.32146, 0.58763, 0.19609, 0.48074, 0.11268, 0.37822, 0.05501, 0.32869, 0.17866, 0.31899, 0.30499, 0.36035, 0.53798, 0.40327, 0.70072, 0.30058, 0.55837, 0.21956, 0.2815, 0.09963, 0.28942, 0.56862, 0.4368, 0.4911, 0.37156, 0.51184, 0.52092, 0.67018, 0.59303, 0.7619, 0.68574, 0.73296, 0.43354 ], "triangles": [ 49, 8, 48, 9, 48, 8, 12, 25, 11, 48, 9, 10, 47, 48, 10, 47, 10, 25, 25, 10, 11, 8, 49, 7, 17, 15, 16, 17, 18, 15, 49, 32, 7, 7, 32, 6, 41, 42, 40, 12, 41, 25, 41, 12, 42, 13, 14, 42, 12, 13, 42, 41, 40, 25, 40, 26, 25, 25, 26, 47, 49, 31, 32, 31, 49, 50, 18, 44, 15, 42, 14, 44, 14, 15, 44, 5, 6, 33, 6, 32, 33, 32, 31, 33, 47, 45, 48, 49, 48, 50, 50, 45, 30, 50, 48, 45, 42, 44, 43, 5, 33, 4, 42, 39, 40, 42, 43, 39, 31, 50, 33, 40, 39, 26, 45, 47, 46, 33, 2, 4, 2, 33, 34, 47, 26, 46, 26, 27, 46, 26, 39, 27, 2, 3, 4, 30, 45, 29, 30, 34, 50, 33, 50, 34, 45, 46, 29, 30, 29, 34, 27, 28, 46, 46, 28, 29, 18, 19, 44, 29, 35, 34, 2, 34, 1, 34, 35, 1, 28, 27, 38, 27, 39, 38, 39, 43, 38, 44, 19, 21, 44, 21, 43, 21, 19, 20, 43, 22, 38, 43, 21, 22, 29, 28, 35, 28, 36, 35, 28, 38, 36, 36, 0, 35, 35, 0, 1, 22, 23, 38, 38, 37, 36, 37, 23, 24, 37, 38, 23, 36, 37, 0, 37, 24, 0 ], - "vertices": [ 172.08, 22.81, 170.09, -31.19, 159.41, -86.8, 167.03, -99, 143.4, -115.48, 125.2, -110.14, 109.88, -96.35, 83.64, -100.19, 63.25, -81.15, 38.37, -76.69, 37.66, -43.98, 37.00999, -13.47, 50.57, 13.54, 50.51, 38.45, 64.94, 56.6, 47.89, 79.94999, 29.45, 73.42, 16.31, 86.63, 81.5, 139.38, 112.55, 150.29, 126.97, 134.97, 128.63, 113.28, 130.22, 92.43, 154.79, 81.29, 162.21, 71.48, 60.96, 13.26, 86.33, 31.87, 116.92, 42.6, 135.47, 31.44, 136.98, 2.58, 131.23, -36.66, 118.22, -74.65, 108.68, -88.23, 130.45, -95.43, 144.62, -39.36, 152.24, 1.69, 156.05, 32.59999, 156.21, 61.01, 132.56, 66.4, 111.94, 61.83, 79.03, 38.83, 57.27, 19.29999, 70.67, 52.42, 107.01, 87.61, 95.39, 116.7, 112.91, -6.87, 116.41, 15.8, 94.82, 2.47, 97.23, -40.47, 90.66, -68.16, 127.64, -47.15 ], + "vertices": [ 172.08, 22.80999, 170.09, -31.19, 159.41, -86.8, 167.02998, -99, 143.4, -115.48, 125.19999, -110.13999, 109.87999, -96.34999, 83.63999, -100.19, 63.25, -81.15, 38.36999, -76.69, 37.65999, -43.97999, 37.00999, -13.47, 50.56999, 13.53999, 50.50999, 38.45, 64.94, 56.59999, 47.88999, 79.94999, 29.45, 73.41999, 16.30999, 86.62999, 81.5, 139.38, 112.55, 150.29, 126.97, 134.97, 128.63, 113.27999, 130.22, 92.43, 154.79, 81.29, 162.21, 71.48, 60.95999, 13.26, 86.33, 31.87, 116.91999, 42.59999, 135.47, 31.44, 136.98, 2.57999, 131.23, -36.65999, 118.22, -74.65, 108.68, -88.23, 130.45, -95.43, 144.62, -39.36, 152.24, 1.69, 156.05, 32.59999, 156.21, 61.00999, 132.56, 66.4, 111.94, 61.83, 79.02999, 38.83, 57.27, 19.29999, 70.66999, 52.41999, 107.01, 87.61, 95.38999, 116.69999, 112.91, -6.86999, 116.41, 15.8, 94.81999, 2.47, 97.23, -40.47, 90.66, -68.16, 127.63999, -47.15 ], "hull": 25, "edges": [ 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 48, 46, 46, 44, 36, 38, 40, 38, 24, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 62, 64, 64, 12, 8, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 24, 24, 84, 84, 86, 86, 44, 40, 42, 42, 44, 42, 88, 88, 30, 58, 90, 90, 92, 92, 94, 18, 20, 20, 22, 94, 20, 18, 96, 96, 98, 60, 100, 100, 62, 98, 100 ], "width": 261, @@ -167,7 +171,7 @@ "type": "mesh", "uvs": [ 0.75918, 0.06107, 0.88392, 0.17892, 0.90174, 0.30856, 0.94223, 0.1966, 1, 0.26584, 1, 0.42199, 0.95863, 0.46992, 0.92118, 0.51333, 0.85957, 0.53469, 0.78388, 0.65605, 0.74384, 0.74838, 0.85115, 0.75151, 0.84828, 0.82563, 0.8178, 0.85367, 0.75598, 0.85906, 0.76236, 0.90467, 0.65875, 1, 0.38336, 1, 0.18579, 0.85403, 0.12741, 0.8109, 0.06024, 0.69209, 0, 0.58551, 0, 0.41021, 0.08529, 0.20691, 0.24243, 0.14504, 0.49999, 0.14209, 0.50323, 0.07433, 0.41738, 0, 0.57613, 0, 0.85059, 0.36086, 0.73431, 0.43206, 0.6848, 0.3127, 0.72164, 0.16717, 0.55931, 0.04153, 0.44763, 0.22894, 0.23925, 0.26559, 0.71271, 0.44035, 0.56992, 0.38299, 0.41678, 0.3351, 0.29299, 0.31496, 0.70801, 0.44501, 0.56676, 0.38976, 0.4152, 0.34416, 0.28753, 0.33017, 0.88988, 0.50176, 0.30388, 0.73462, 0.2646, 0.65674, 0.21414, 0.61583, 0.14612, 0.62193, 0.10315, 0.66636, 0.10357, 0.72556, 0.14505, 0.79163, 0.20263, 0.81355, 0.27872, 0.80158, 0.34946, 0.7376, 0.23073, 0.57073, 0.08878, 0.60706, 0.2946, 0.8129, 0.73005, 0.87883, 0.69804, 0.87348, 0.66165, 0.79681 ], "triangles": [ 34, 25, 31, 37, 38, 34, 31, 32, 29, 31, 37, 34, 37, 41, 38, 30, 31, 29, 36, 37, 31, 33, 27, 28, 26, 27, 33, 0, 33, 28, 32, 33, 0, 32, 0, 1, 33, 25, 26, 33, 32, 25, 31, 25, 32, 2, 32, 1, 2, 3, 4, 2, 29, 32, 2, 4, 5, 29, 2, 5, 6, 29, 5, 30, 36, 31, 30, 29, 6, 44, 30, 6, 36, 30, 44, 34, 24, 25, 35, 23, 24, 35, 24, 34, 39, 35, 34, 39, 22, 35, 38, 39, 34, 42, 39, 38, 43, 39, 42, 41, 42, 38, 22, 23, 35, 43, 22, 39, 40, 37, 36, 41, 37, 40, 7, 44, 6, 8, 36, 44, 40, 36, 8, 8, 44, 7, 55, 22, 43, 56, 21, 22, 55, 56, 22, 55, 48, 56, 47, 48, 55, 9, 40, 8, 55, 54, 46, 42, 55, 43, 47, 55, 46, 49, 56, 48, 20, 21, 56, 20, 56, 49, 50, 49, 48, 20, 49, 50, 46, 54, 45, 54, 55, 41, 55, 42, 41, 9, 60, 40, 46, 51, 50, 60, 41, 40, 10, 60, 9, 54, 41, 60, 46, 52, 51, 19, 50, 51, 50, 48, 47, 47, 46, 50, 46, 45, 52, 20, 50, 19, 57, 53, 45, 57, 45, 54, 53, 52, 45, 12, 10, 11, 13, 10, 12, 18, 51, 52, 19, 51, 18, 18, 52, 53, 18, 53, 57, 14, 10, 13, 60, 10, 14, 59, 60, 14, 58, 59, 14, 58, 14, 15, 17, 54, 60, 16, 17, 60, 57, 54, 17, 18, 57, 17, 59, 16, 60, 16, 59, 58, 16, 58, 15 ], - "vertices": [ 1, 27, 41.97, -41.79, 1, 3, 25, 73.46, 27.54, 0.18925, 27, -5.75, -51.7, 0.72418, 26, 112.98, -11.43, 0.08656, 3, 25, 38.23, 10.98, 0.84283, 27, -41.00999, -35.22, 0.09705, 26, 92.72, -44.67, 0.0601, 1, 25, 73.35, 10.89, 1, 1, 25, 58.59, -10.38, 1, 2, 24, 75.49, -4.55, 0.10257, 25, 14.35, -24.8, 0.89742, 2, 24, 59.82, -13.72, 0.41734, 25, -2.69, -18.57, 0.58265, 1, 23, 163.06, -108.68, 1, 1, 23, 151.52, -95.04, 1, 1, 23, 110.6, -87.69, 1, 1, 23, 81.05, -86.58, 1, 1, 23, 89.81, -114.32, 1, 1, 23, 68.72, -120.91, 1, 1, 23, 58.1, -115.89, 1, 1, 23, 51.03, -100.62, 1, 1, 23, 38.78, -106.76, 1, 1, 23, 2.67, -89.69, 1, 1, 23, -22.07, -19.29999, 1, 1, 23, 1.19, 45.62, 1, 1, 23, 8.07, 64.81, 1, 1, 23, 35.43, 93.72, 1, 1, 23, 59.98, 119.66, 1, 1, 23, 109.25, 136.98, 1, 1, 23, 174.07, 135.27, 1, 2, 23, 205.58, 101.22, 0.83763, 26, -16.79999, 104.63, 0.16236, 2, 27, 58.93, 30.5, 0.60735, 26, 38.37, 61.89, 0.39264, 2, 27, 75.55, 19, 0.94502, 26, 51.62, 77.15, 0.05497, 1, 27, 106.69, 26.9, 1, 1, 27, 83.78, -9.5, 1, 4, 24, 44.52, 27.24, 0.19601, 25, 19.12, 19.33, 0.58066, 27, -46.82, -15.19, 0.07453, 26, 72.17, -48.24, 0.14877, 2, 24, 7.42, 19.08, 0.79203, 26, 34.31, -45.24, 0.20796, 1, 26, 45.94, -9.06, 1, 1, 27, 20.62, -16.35, 1, 1, 27, 75.73, 0.94, 1, 3, 23, 200.44, 40.47, 0.4822, 27, 44.58, 56.29, 0.14949, 26, 11.16, 50.46, 0.3683, 1, 23, 171.41, 90.11, 1, 2, 24, 1.07, 18.93, 0.79203, 26, 28.19, -43.54, 0.20796, 3, 23, 168.13, -6.01, 0.11484, 24, -28.63, 49.03, 0.13133, 26, 8.54, -6.08, 0.75382, 2, 23, 167.82, 37.86, 0.27101, 26, -15.06, 30.9, 0.72898, 1, 23, 162.36, 71.5, 1, 1, 23, 163.1, -47.44, 1, 1, 23, 165.94, -5.87, 1, 1, 23, 165.14, 37.37, 1, 1, 23, 157.6, 71.39, 1, 1, 23, 163.5, -99.53, 1, 1, 23, 45.37, 27.24, 1, 1, 23, 63.73, 44.98, 1, 1, 23, 70.69999, 61.92, 1, 1, 23, 62.87, 78.69999, 1, 1, 23, 46.52, 85.3, 1, 1, 23, 29.92, 79.33999, 1, 1, 23, 15.07, 62.21, 1, 1, 23, 14.09, 45.32, 1, 1, 23, 24.29, 27.05, 1, 1, 23, 48.63, 15.29, 1, 1, 23, 84.87, 62.14, 1, 1, 23, 61.9, 94.83, 1, 1, 23, 22.54, 21.87, 1, 1, 23, 43.14, -95.94, 1, 1, 23, 41.77, -87.23, 1, 1, 23, 60.05, -70.35, 1 ], + "vertices": [ 1, 27, 41.97, -41.79, 1, 3, 25, 73.45999, 27.54, 0.18925, 27, -5.75, -51.7, 0.72417, 26, 112.98, -11.43, 0.08656, 3, 25, 38.22999, 10.97999, 0.84283, 27, -41.00999, -35.22, 0.09705, 26, 92.72, -44.66999, 0.0601, 1, 25, 73.34999, 10.89, 1, 1, 25, 58.59, -10.38, 1, 2, 24, 75.48999, -4.55, 0.10256, 25, 14.35, -24.79999, 0.89741, 2, 24, 59.81999, -13.72, 0.41734, 25, -2.69, -18.56999, 0.58265, 1, 23, 163.06, -108.68, 1, 1, 23, 151.52, -95.04, 1, 1, 23, 110.59999, -87.69, 1, 1, 23, 81.05, -86.58, 1, 1, 23, 89.80999, -114.31999, 1, 1, 23, 68.72, -120.91, 1, 1, 23, 58.09999, -115.88999, 1, 1, 23, 51.02999, -100.62, 1, 1, 23, 38.77999, -106.76, 1, 1, 23, 2.67, -89.69, 1, 1, 23, -22.06999, -19.29999, 1, 1, 23, 1.19, 45.61999, 1, 1, 23, 8.06999, 64.80999, 1, 1, 23, 35.43, 93.72, 1, 1, 23, 59.97999, 119.66, 1, 1, 23, 109.25, 136.98, 1, 1, 23, 174.07, 135.27, 1, 2, 23, 205.58, 101.22, 0.83762, 26, -16.79999, 104.62999, 0.16235, 2, 27, 58.93, 30.5, 0.60734, 26, 38.36999, 61.88999, 0.39263, 2, 27, 75.55, 19, 0.94502, 26, 51.61999, 77.15, 0.05496, 1, 27, 106.69, 26.89999, 1, 1, 27, 83.77999, -9.5, 1, 4, 24, 44.52, 27.23999, 0.196, 25, 19.12, 19.32999, 0.58065, 27, -46.81999, -15.18999, 0.07453, 26, 72.16999, -48.24, 0.14877, 2, 24, 7.42, 19.07999, 0.79202, 26, 34.31, -45.24, 0.20795, 1, 26, 45.93999, -9.06, 1, 1, 27, 20.62, -16.35, 1, 1, 27, 75.73, 0.93999, 1, 3, 23, 200.44, 40.47, 0.48219, 27, 44.58, 56.29, 0.14948, 26, 11.15999, 50.45999, 0.36829, 1, 23, 171.41, 90.11, 1, 2, 24, 1.07, 18.93, 0.79202, 26, 28.19, -43.54, 0.20795, 3, 23, 168.13, -6.01, 0.11484, 24, -28.62999, 49.02999, 0.13132, 26, 8.53999, -6.07999, 0.75382, 2, 23, 167.82, 37.86, 0.27101, 26, -15.06, 30.89999, 0.72898, 1, 23, 162.36, 71.5, 1, 1, 23, 163.1, -47.43999, 1, 1, 23, 165.94, -5.86999, 1, 1, 23, 165.13998, 37.36999, 1, 1, 23, 157.6, 71.38999, 1, 1, 23, 163.5, -99.52999, 1, 1, 23, 45.36999, 27.23999, 1, 1, 23, 63.72999, 44.97999, 1, 1, 23, 70.69999, 61.91999, 1, 1, 23, 62.86999, 78.69999, 1, 1, 23, 46.52, 85.3, 1, 1, 23, 29.92, 79.33999, 1, 1, 23, 15.06999, 62.20999, 1, 1, 23, 14.09, 45.31999, 1, 1, 23, 24.29, 27.04999, 1, 1, 23, 48.63, 15.28999, 1, 1, 23, 84.87, 62.13999, 1, 1, 23, 61.9, 94.83, 1, 1, 23, 22.54, 21.87, 1, 1, 23, 43.13999, -95.94, 1, 1, 23, 41.77, -87.23, 1, 1, 23, 60.04999, -70.34999, 1 ], "hull": 29, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 56, 54, 56, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 42, 44, 32, 34, 4, 58, 58, 60, 62, 64, 64, 66, 66, 54, 50, 68, 68, 70, 70, 44, 60, 72, 62, 74, 72, 74, 74, 76, 76, 78, 78, 44, 16, 80, 80, 82, 82, 84, 84, 86, 86, 44, 14, 88, 88, 72, 14, 16, 10, 12, 12, 14, 12, 60, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 90, 108, 110, 110, 112, 38, 40, 40, 42, 112, 40, 34, 36, 36, 38, 36, 114, 114, 108, 30, 32, 30, 28, 24, 26, 28, 26, 22, 24, 22, 20, 20, 18, 18, 16, 28, 116, 116, 118, 118, 120, 120, 20 ], "width": 271, @@ -178,7 +182,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -186,7 +190,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 3, 0, 1, 2, 3 ], - "vertices": [ 11.28, -85.88, -19.56, 1.84, 36.09, 21.41, 66.93, -66.31 ], + "vertices": [ 11.27999, -85.87999, -19.55999, 1.84, 36.09, 21.40999, 66.93, -66.30999 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 93, @@ -209,7 +213,7 @@ "type": "mesh", "uvs": [ 0.48368, 0.1387, 0.5199, 0.21423, 0.55099, 0.27906, 0.58838, 0.29816, 0.63488, 0.32191, 0.77342, 0.39266, 1, 0.73346, 1, 1, 0.59435, 1, 0.3116, 1, 0, 1, 0, 0.41396, 0.1363, 0, 0.41716, 0 ], "triangles": [ 8, 6, 7, 6, 8, 5, 5, 8, 4, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 12, 12, 13, 0, 11, 1, 10 ], - "vertices": [ 2, 6, 10.45, 29.41, 0.88824, 7, -6.74, 49.62, 0.11175, 2, 6, 16.54999, 29.27, 0.83163, 7, -2.65, 45.08, 0.16836, 2, 6, 21.79, 29.15, 0.78305, 7, 0.85, 41.18999, 0.21694, 2, 6, 25.53, 31.43, 0.67844, 7, 5.07, 40.04, 0.32155, 2, 6, 30.17, 34.27, 0.54832, 7, 10.33, 38.61, 0.45167, 2, 6, 44.01, 42.72, 0.16069, 7, 25.97, 34.36, 0.83929, 1, 7, 51.56, 13.89, 1, 2, 6, 88.08, 36.28, 0, 7, 51.54, -2.08999, 1, 2, 6, 56.58, 2.98, 0.02959, 7, 5.71, -2.05, 0.9704, 2, 6, 34.63, -20.21999, 0.99999, 7, -26.22, -2.03, 0, 2, 6, 10.43, -45.8, 0.99999, 7, -61.43, -2, 0, 2, 6, -15.1, -21.64, 1, 7, -61.4, 33.15, 0, 2, 6, -22.56, 6.61, 0.99999, 7, -45.98, 57.97, 0, 2, 6, -0.76, 29.67, 0.99219, 7, -14.25, 57.94, 0.0078 ], + "vertices": [ 2, 6, 10.44999, 29.40999, 0.88823, 7, -6.73999, 49.61999, 0.11174, 2, 6, 16.54999, 29.27, 0.83162, 7, -2.65, 45.08, 0.16835, 2, 6, 21.79, 29.14999, 0.78305, 7, 0.85, 41.18999, 0.21694, 2, 6, 25.53, 31.43, 0.67843, 7, 5.07, 40.04, 0.32155, 2, 6, 30.17, 34.27, 0.54831, 7, 10.32999, 38.61, 0.45166, 2, 6, 44.00999, 42.72, 0.16069, 7, 25.96999, 34.36, 0.83929, 1, 7, 51.56, 13.89, 1, 2, 6, 88.08, 36.27999, 0, 7, 51.54, -2.08999, 1, 2, 6, 56.58, 2.98, 0.02958, 7, 5.71, -2.04999, 0.97039, 2, 6, 34.63, -20.21999, 0.99998, 7, -26.21999, -2.02999, 0, 2, 6, 10.43, -45.79999, 0.99998, 7, -61.43, -2, 0, 2, 6, -15.1, -21.63999, 1, 7, -61.4, 33.15, 0, 2, 6, -22.55999, 6.61, 0.99998, 7, -45.97999, 57.97, 0, 2, 6, -0.75999, 29.67, 0.99219, 7, -14.25, 57.93999, 0.00779 ], "hull": 14, "edges": [ 14, 12, 10, 12, 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 4, 2, 2, 20, 4, 6, 6, 16, 6, 8, 8, 10, 2, 0, 0, 26 ], "width": 113, @@ -232,7 +236,7 @@ "type": "mesh", "uvs": [ 0.62509, 0.12672, 1, 0.2636, 1, 0.2887, 1, 0.66021, 1, 0.68245, 0.92323, 0.69258, 0.95115, 0.84965, 0.77123, 1, 0.49654, 1, 0.27181, 1, 0.13842, 0.77196, 0, 0.45614, 0, 0.19436, 0.14462, 0, 0.27801, 0, 0.72524, 0.27835, 0.76091, 0.46216, 0.84888, 0.67962, 0.68257, 0.63249, 0.53985, 0.38469, 0.25443, 0.32169, 0.30062, 0.55173, 0.39552, 0.79506, 0.26389, 0.17006, 0.52409, 0.18673 ], "triangles": [ 6, 17, 5, 6, 7, 17, 8, 18, 7, 7, 18, 17, 9, 22, 8, 8, 22, 18, 9, 10, 22, 10, 21, 22, 22, 21, 18, 10, 11, 21, 4, 5, 3, 5, 17, 3, 3, 17, 16, 17, 18, 16, 16, 2, 3, 21, 19, 18, 18, 19, 16, 11, 20, 21, 21, 20, 19, 19, 15, 16, 16, 15, 2, 11, 12, 20, 20, 24, 19, 19, 24, 15, 20, 23, 24, 20, 12, 23, 15, 1, 2, 24, 0, 15, 15, 0, 1, 12, 13, 23, 0, 24, 14, 14, 24, 13, 24, 23, 13 ], - "vertices": [ 129.62, -10.38, 102.17, -45.07, 97.66, -44.71, 31, -39.45, 27.01, -39.13, 25.78, -31.49, -2.60999, -31.99, -28.2, -12.29, -26.08, 14.54, -24.34, 36.5, 17.59, 46.3, 75.33, 55.34, 122.31, 51.63, 156.07, 34.75, 155.04, 21.72, 101.64, -18.02, 68.37999, -18.9, 28.68, -24.41, 38.41999, -8.83, 83.99, 1.59, 97.5, 28.58, 55.86, 27.33, 11.47, 21.51, 124.63, 25.51, 119.63, 0.32 ], + "vertices": [ 129.62, -10.38, 102.16999, -45.06999, 97.66, -44.70999, 31, -39.45, 27.01, -39.13, 25.78, -31.48999, -2.60999, -31.98999, -28.2, -12.28999, -26.07999, 14.53999, -24.34, 36.5, 17.59, 46.29999, 75.33, 55.34, 122.30999, 51.63, 156.07, 34.75, 155.04, 21.71999, 101.63999, -18.02, 68.37999, -18.89999, 28.68, -24.40999, 38.41999, -8.82999, 83.98999, 1.59, 97.5, 28.57999, 55.86, 27.32999, 11.47, 21.51, 124.62999, 25.51, 119.62999, 0.31999 ], "hull": 15, "edges": [ 14, 12, 12, 10, 10, 8, 18, 20, 20, 22, 22, 24, 26, 28, 24, 26, 2, 4, 30, 4, 30, 32, 32, 34, 4, 6, 6, 8, 34, 6, 34, 36, 36, 38, 38, 40, 40, 24, 36, 14, 40, 42, 42, 44, 14, 16, 16, 18, 44, 16, 40, 46, 38, 48, 48, 30, 2, 0, 0, 28, 48, 0, 48, 26 ], "width": 98, @@ -708,7 +712,7 @@ { "time": 0.6, "angle": -63.03 }, { "time": 0.6333, "angle": -47.34 }, { "time": 0.6666, "angle": -31.04 }, - { "time": 0.7, "angle": -25.01 }, + { "time": 0.6999, "angle": -25.01 }, { "time": 0.7666, "angle": -15.95 }, { "time": 0.8, "angle": 0 } ], @@ -731,7 +735,7 @@ { "time": 0.6, "x": 28.47, "y": 59.02 }, { "time": 0.6333, "x": 70.89, "y": 78.19 }, { "time": 0.6666, "x": 110.42, "y": 99 }, - { "time": 0.7, "x": 122.21, "y": 79.58 }, + { "time": 0.6999, "x": 122.21, "y": 79.58 }, { "time": 0.7666, "x": 145.33, "y": 44.61 }, { "time": 0.8, "x": 159.31, "y": 38.68 } ] @@ -760,7 +764,7 @@ { "time": 0.5333, "angle": 85.36 }, { "time": 0.5666, "angle": 49.17 }, { "time": 0.6333, "angle": 9.5 }, - { "time": 0.7, "angle": 4.15 }, + { "time": 0.6999, "angle": 4.15 }, { "time": 0.7666, "angle": -1.36 }, { "time": 0.8, "angle": 0 } ], @@ -779,7 +783,7 @@ { "time": 0.5333, "x": -166.79, "y": -2.63 }, { "time": 0.5666, "x": -252.51, "y": 57.14 }, { "time": 0.6333, "x": -304.31, "y": 214.02 }, - { "time": 0.7, "x": -296.91, "y": 281.36 }, + { "time": 0.6999, "x": -296.91, "y": 281.36 }, { "time": 0.7666, "x": -269.53, "y": 257.68 }, { "time": 0.8, "x": -248.9, "y": 230.06 } ] @@ -803,7 +807,7 @@ { "time": 0.5333, "angle": 0.82 }, { "time": 0.5666, "angle": -61.7 }, { "time": 0.6333, "angle": -139.59 }, - { "time": 0.7, "angle": -146.78 }, + { "time": 0.6999, "angle": -146.78 }, { "time": 0.8, "angle": -151.51 } ] }, @@ -821,7 +825,7 @@ { "time": 0.5666, "angle": -66.86 }, { "time": 0.6, "angle": -22.89 }, { "time": 0.6333, "angle": -12.06 }, - { "time": 0.7, "angle": 35.39 }, + { "time": 0.6999, "angle": 35.39 }, { "time": 0.8, "angle": 42.19 } ] }, @@ -902,17 +906,17 @@ "goggles": [ { "time": 0, - "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ], + "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.9251, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.4, - "vertices": [ 1.73339, -8.03618, 0.70187, -3.25497, 0.39651, -1.84367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08755, -5.04639, 3.97546, -18.45124, 0.47232, -2.1937, 1.59594, -7.39851, 2.05963, -9.54877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.58685, -11.98995, 2.93106, -13.58876, 2.71148, -12.57045, 2.01113, -9.32378, 2.26412, -10.49626, 2.34347, -10.8643, 2.05169, -9.51168, 1.96224, -9.10095, 0.75805, -3.51469, 0.08056, -0.37484, 0.57971, -2.69226, 0.35055, -1.63069, 0.65036, -3.01589, 1.40933, -6.53389, 1.98852, -9.21901, 4.07943, -18.92243, 3.45761, -16.03435, 3.45532, -16.02368, 2.42819, -11.25721, 2.14263, -9.93373, 2.06396, -9.56589, 2.5906, -12.00682, 0, 0, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937 ], + "vertices": [ 1.73339, -8.03618, 0.70187, -3.25497, 0.39651, -1.84367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08755, -5.04639, 3.97546, -18.45124, 0.47232, -2.1937, 1.59594, -7.39851, 2.05963, -9.54877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.58685, -11.98995, 2.93106, -13.58876, 2.71148, -12.57044, 2.01113, -9.32378, 2.26412, -10.49626, 2.34347, -10.8643, 2.05169, -9.51168, 1.96224, -9.10095, 0.75805, -3.51469, 0.08056, -0.37484, 0.57971, -2.69226, 0.35055, -1.63069, 0.65036, -3.01589, 1.40933, -6.53389, 1.98852, -9.21901, 4.07943, -18.92243, 3.45761, -16.03435, 3.45532, -16.02368, 2.42819, -11.2572, 2.14263, -9.93373, 2.06396, -9.56589, 2.5906, -12.00682, 0, 0, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.8, - "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ] + "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.9251, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ] } ] }, @@ -921,19 +925,19 @@ { "time": 0, "offset": 32, - "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ], + "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58547, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.4, "offset": 34, - "vertices": [ 3.14837, -14.61261, 3.14837, -14.61261, 3.14837, -14.61261, 0.83425, -3.87112, 0, 0, 0, 0, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0, 0, 0, 0, 0, 0, 0, 0, 0.55618, -2.58074, 0.41714, -1.93557, 1.04281, -4.83889 ], + "vertices": [ 3.14837, -14.6126, 3.14837, -14.6126, 3.14837, -14.6126, 0.83425, -3.87112, 0, 0, 0, 0, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0, 0, 0, 0, 0, 0, 0, 0, 0.55618, -2.58074, 0.41714, -1.93557, 1.04281, -4.83889 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.8, "offset": 32, - "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ] + "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58547, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ] } ] }, @@ -965,7 +969,7 @@ { "time": 0.4, "offset": 2, - "vertices": [ 1.4615, 2.96601, 0.68634, 3.23445, 2.20619, 0.10388, 0, 0, -0.31028, -2.89859, 0, 0, -0.1851, 0.38208, 0.33795, -3.61551, 0, 0, 0, 0, -0.5516, 4.21406, -0.5516, 4.21406, 0, 0, 0, 0, -0.29403, -8.94627, -0.02416, -9.50223, 0.23017, -9.93909, -4.64135, -8.88913, -2.62136, -9.24012, -1.70074, -5.16261, -1.70074, -5.16261, -1.70074, -5.16261, 0, 0, -7.3706, -10.47316 ] + "vertices": [ 1.4615, 2.96601, 0.68634, 3.23445, 2.20619, 0.10388, 0, 0, -0.31028, -2.89859, 0, 0, -0.1851, 0.38208, 0.33795, -3.61551, 0, 0, 0, 0, -0.5516, 4.21406, -0.5516, 4.21406, 0, 0, 0, 0, -0.29403, -8.94627, -0.02416, -9.50223, 0.23017, -9.93909, -4.64135, -8.88913, -2.62136, -9.24011, -1.70074, -5.16261, -1.70074, -5.16261, -1.70074, -5.16261, 0, 0, -7.3706, -10.47315 ] }, { "time": 0.8, diff --git a/examples/spineboy/export/spineboy-mesh.skel b/examples/spineboy/export/spineboy-mesh.skel index 8bfb9a5a29e0a269ee87ad9d874f9b916e72d690..be61c7fd8a74ae01c0e5a9346127109725bd9229 100644 GIT binary patch delta 305 zcmZ48$vCHz(Nrck$ucO))hn!A-#0PDz&F$~D#R(G(8Sa+)P%=a&s5LAST`xPB#{9M z7#%+_Fig}jU}TsWrwJrFjex{nV<7PfC^lJzQ6ET#g2^^UV@9UQyMZLb$v6{&jDs2D& delta 168 zcmZ2jxw2A6rYImkveL=N&E3q+z}Y>@w7fXf)ydn%E7UTS-B`~=&%ns}b@2ihv->L; zCz|RrF)~g})drChO+n;wBM|w^07y>OW;6s*v5a6|AB5V^XaW-a0+CZ=(gg7Wm~=o? dEt3|AS^=RhGlBK7FoP_aYyze>r!d=E0s!W@Cv*S+ diff --git a/examples/spinosaurus/export/spinosaurus.json b/examples/spinosaurus/export/spinosaurus.json index b7638be30..813e8c878 100644 --- a/examples/spinosaurus/export/spinosaurus.json +++ b/examples/spinosaurus/export/spinosaurus.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "+jy97FaQm8tosWwFNGbQGD2+FlY", "spine": "3.4.02", "width": 1680, "height": 1782.27, "images": "./images/" }, +"skeleton": { + "hash": "vfzL8SvUQWTNRil1kGbSbWF5R60", + "spine": "3.5.03-beta", + "width": 1680, + "height": 1782.27, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root", "y": -526.31 }, { "name": "leaves", "parent": "root", "x": -0.16, "y": 1310.1 }, @@ -67,9 +74,9 @@ "settings": { "color": [ { "time": 1.8666, "color": "fff99dff" }, - { "time": 2.1, "color": "ffffffff", "curve": "stepped" }, + { "time": 2.0999, "color": "ffffffff", "curve": "stepped" }, { "time": 2.3666, "color": "ffffffff" }, - { "time": 2.6, "color": "fff99dff" } + { "time": 2.5999, "color": "fff99dff" } ] } }, @@ -129,8 +136,8 @@ }, { "time": 1, - "x": 1.02, - "y": 1.03, + "x": 1.019, + "y": 1.029, "curve": [ 0.37, 0, 0.66, 0.99 ] }, { @@ -141,8 +148,8 @@ }, { "time": 2.3333, - "x": 1.02, - "y": 1.03, + "x": 1.019, + "y": 1.029, "curve": [ 0.37, 0, 0.66, 0.99 ] }, { @@ -151,7 +158,7 @@ "y": 1, "curve": [ 0.387, 0.01, 0.686, 1 ] }, - { "time": 3.6666, "x": 1.02, "y": 1.03 } + { "time": 3.6666, "x": 1.019, "y": 1.029 } ] }, "play": { @@ -199,14 +206,14 @@ "y": 1, "curve": [ 0, 0, 0.525, 2.46 ] }, - { "time": 2.1, "x": 1.23, "y": 1.23, "curve": "stepped" }, + { "time": 2.0999, "x": 1.23, "y": 1.23, "curve": "stepped" }, { "time": 2.3666, "x": 1.23, "y": 1.23, "curve": [ 0, 0, 0.525, 2.46 ] }, - { "time": 2.6, "x": 1, "y": 1 } + { "time": 2.5999, "x": 1, "y": 1 } ] }, "quit": { @@ -266,9 +273,9 @@ "curve": [ 0, 0, 0.744, 0.4 ] }, { "time": 0.3333, "x": 1, "y": 1 }, - { "time": 1.3333, "x": 1.03, "y": 1.02 }, + { "time": 1.3333, "x": 1.029, "y": 1.019 }, { "time": 2, "x": 1, "y": 1 }, - { "time": 2.6666, "x": 1.03, "y": 1.02 }, + { "time": 2.6666, "x": 1.029, "y": 1.019 }, { "time": 3.3333, "x": 1, "y": 1 } ] } diff --git a/examples/spinosaurus/export/spinosaurus.skel b/examples/spinosaurus/export/spinosaurus.skel index c843153389a998d413770768b394ea5c9ae14b40..956780c6a66633913656dda30aa98a7f854cd911 100644 GIT binary patch delta 94 zcmZqSYv(hSDNC#Ju?Q{;4Ga(Q3(Cwf%yv%-P6~H34Kg#}G1fEHGceXoN-arrxx~Qe sa__`hM#m2f3=?$>7#SwU=>UlyEg-Q2L_7f!lLZ*{7#TJ@FdktA08gtMSO5S3 delta 91 zcmZqYYvI$8(ax&0GlSLTyfYfGZ#v`l%u%#GX diff --git a/examples/stretchyman/export/stretchyman.json b/examples/stretchyman/export/stretchyman.json index 63d89f419..1f852d0f2 100644 --- a/examples/stretchyman/export/stretchyman.json +++ b/examples/stretchyman/export/stretchyman.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "blOhTH+VBhIluqnZVQ+1mnv7uxQ", "spine": "3.4.02", "width": 264.48, "height": 570.1, "images": "./images/" }, +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, @@ -7,13 +14,11 @@ { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, - { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "inheritScale": false }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, - { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, - { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back foot 1", "parent": "hip", @@ -21,29 +26,28 @@ "rotation": -6.55, "x": -34, "y": -279.68, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, - { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "inheritScale": false }, - { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "inheritScale": false }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, - { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "inheritScale": false }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, - { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "inheritScale": false }, - { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, - { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, { "name": "front foot 1", "parent": "hip", @@ -51,11 +55,11 @@ "rotation": -10.97, "x": -77.04, "y": -285.03, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, { @@ -94,12 +98,13 @@ "y": -42.55, "color": "abe323ff" }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, - { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "inheritScale": false } + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } ], "slots": [ { "name": "back arm", "bone": "root", "attachment": "back arm" }, @@ -113,12 +118,14 @@ "ik": [ { "name": "back leg IK", + "order": 0, "bones": [ "back leg IK 1", "back leg IK 2" ], "target": "back leg IK target", "bendPositive": false }, { "name": "front leg IK", + "order": 1, "bones": [ "front leg IK 1", "front leg IK 2" ], "target": "front leg IK target", "bendPositive": false @@ -127,6 +134,7 @@ "transform": [ { "name": "back foot position", + "order": 4, "bones": [ "back foot 1" ], "target": "back leg 8", "rotation": 108.8, @@ -140,6 +148,7 @@ }, { "name": "front foot position", + "order": 5, "bones": [ "front foot 1" ], "target": "front leg 8", "rotation": 101.55, @@ -155,6 +164,7 @@ "path": [ { "name": "back leg path", + "order": 2, "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], "target": "back leg path", "spacingMode": "percent", @@ -163,6 +173,7 @@ }, { "name": "front leg path", + "order": 3, "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], "target": "front leg path", "spacingMode": "percent", @@ -177,7 +188,7 @@ "type": "mesh", "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], - "vertices": [ 1, 6, -7.68, -11.48, 1, 1, 6, 4.08, -13.62, 1, 1, 6, 23.48, -9.35, 1, 1, 7, 13.44, -9.22999, 1, 2, 7, 35.2, -9.62, 0.50649, 8, -0.57, -9.64999, 0.4935, 1, 8, 26.03, -6.38, 1, 1, 9, 14.15, -6.11, 1, 2, 9, 31.53, -5.56, 0.66492, 10, -3.33, -5.03, 0.33507, 1, 10, 13.08, -11.25, 1, 1, 10, 24.41, -14.88, 1, 1, 10, 30.15, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.07, -2.33, 1, 1, 10, 55.73, 14.14, 1, 1, 10, 41.39, 18.46999, 1, 1, 10, 37.28, 26.87, 1, 1, 10, 24.65, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.33, 6.77, 0.4788, 10, -1.11, 7.11, 0.52119, 1, 9, 13.77, 6.04, 1, 2, 8, 24.98, 6.17, 0.89217, 9, -5.47, 6.96, 0.10782, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.32, 7.44, 0.40157, 1, 7, 11.07, 8.84, 1, 1, 6, 17.89, 11.87, 1, 1, 6, -4.82, 9.45, 1, 1, 6, -13.68, -0.69, 1 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], "hull": 26, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], "width": 72, @@ -189,7 +200,7 @@ "type": "mesh", "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], - "vertices": [ 1, 11, -19.79, -5.66, 1, 2, 11, -5.61, -22.28, 0.83363, 16, -41.06, -23.3, 0.16636, 2, 11, 22.31, -21.98, 0.65187, 16, -13.17, -21.88, 0.34812, 3, 11, 50.83, -22.1, 0.3172, 16, 15.33, -20.86, 0.43086, 17, -19.67, -21.08, 0.25193, 4, 11, 79.83999, -23.28, 0.10791, 16, 44.37, -20.87999, 0.35417, 17, 9.3, -19.19, 0.31919, 18, -25.21, -20.06, 0.21871, 4, 16, 74.05, -20.98, 0.16485, 17, 38.93, -17.34, 0.32776, 18, 4.09, -15.38, 0.2983, 19, -30.1, -17.15, 0.20907, 3, 17, 65.53, -17.61, 0.17522, 18, 30.6, -13.1, 0.39172, 19, -4.11, -11.42, 0.43304, 3, 18, 57.03, -15.71, 0.19717, 19, 22.42, -10.53, 0.5297, 20, -12.96, -9.8, 0.27311, 3, 19, 46.04, -13.46, 0.40991, 20, 10.83, -10.17, 0.34747, 21, -24.93, -10.51, 0.24261, 3, 19, 73.37999, -18.69, 0.19432, 20, 38.58, -12.41, 0.37176, 21, 2.89, -10.98, 0.4339, 3, 20, 64.06, -14.98, 0.16664, 21, 28.48, -11.94, 0.56755, 12, -7.52, -11.48, 0.26578, 3, 21, 54.57, -12.36, 0.52113, 12, 18.54999, -10.93, 0.36167, 13, -3.08, 24.95, 0.11717, 4, 21, 82.97, -14.35, 0.35144, 12, 47, -11.86, 0.29521, 13, -13.06, -1.67, 0.25118, 14, -46.29, 1.83, 0.10216, 1, 13, 16.36, -4.67, 1, 2, 13, 34.31, -4.36, 0.53486, 14, 0.74, -4.42999, 0.46513, 3, 13, 51.09, -4.08, 0.1461, 14, 17.49, -5.42, 0.54314, 15, -15.5, -2.75, 0.31075, 2, 14, 34.66999, -4.01, 0.40714, 15, 1.64, -4.36, 0.59285, 2, 14, 45.08, -3.15, 0.25726, 15, 12.05, -5.34, 0.74273, 2, 14, 53.98, 5.81, 0.25311, 15, 22.38, 1.93, 0.74688, 2, 14, 37.18999, 9.56, 0.4029, 15, 6.5, 8.56, 0.59709, 3, 13, 57.07, 14.16, 0.1335, 14, 24.83, 12.32, 0.54644, 15, -5.17999, 13.44, 0.32003, 4, 21, 47.09, 33.09999, 0.13131, 13, 42.64, 19.07, 0.26349, 14, 10.81, 18.31, 0.49745, 15, -17.93, 21.78, 0.10773, 4, 21, 46.45, 16.09, 0.21158, 12, 9.35999, 17.2, 0.10679, 13, 26.5, 24.56, 0.4495, 14, -4.85, 25, 0.2321, 3, 21, 46.8, 8.62, 0.4011, 12, 9.99, 9.75, 0.24543, 13, 19.24, 26.37, 0.35346, 3, 21, 39.7, 8.6, 0.5825, 12, 2.9, 9.47, 0.30791, 13, 21.25, 33.16999, 0.10958, 3, 20, 59.16, 5.88, 0.21954, 21, 22.27, 8.58, 0.57946, 12, -14.51, 8.79, 0.20099, 3, 19, 71.83, 0.47, 0.21583, 20, 34.96, 6.47, 0.32262, 21, -1.92, 7.62, 0.46154, 3, 19, 45.8, 3.95, 0.40553, 20, 8.7, 7.12, 0.38601, 21, -28.16, 6.61, 0.20844, 3, 18, 56.78, 2.13, 0.25409, 19, 19.83, 7.12, 0.53004, 20, -17.45, 7.46, 0.21584, 3, 17, 66.18, 3.45, 0.22413, 18, 29.22, 7.92, 0.34135, 19, -8.25, 9.24, 0.43451, 4, 16, 76.6, 4.5, 0.19364, 17, 39.78, 8.26, 0.28886, 18, 2.48, 10.18, 0.33579, 19, -35.05, 7.97, 0.1817, 4, 11, 82.87999, 7.08, 0.11658, 16, 46.17, 9.57, 0.35727, 17, 9.08, 11.32, 0.35745, 18, -28.35, 10.29, 0.16869, 3, 11, 54.45, 12.1, 0.35356, 16, 17.57, 13.46, 0.44494, 17, -19.70999, 13.31, 0.20148, 2, 11, 24.65, 16.69, 0.65438, 16, -12.39, 16.85, 0.34561, 2, 11, -8.38, 15.21, 0.8533, 16, -45.34, 14.04, 0.14669, 1, 11, -20.18, 4.56, 1, 2, 14, 35.88, 2.53, 0.40509, 15, 3.98, 1.86, 0.5949, 3, 13, 54.37, 5.91, 0.1392, 14, 21.51, 4.29, 0.54494, 15, -9.85, 6.11, 0.31584, 2, 13, 37.78, 7.63, 0.44938, 14, 5.1, 7.26, 0.55061, 3, 21, 65.37999, 20.69, 0.11857, 13, 20.59, 11.34, 0.75134, 14, -11.76, 12.27, 0.13007, 3, 21, 65.41, 1.81, 0.39679, 12, 24.3, 0.23, 0.28257, 13, 2.06, 14.97, 0.32062, 3, 21, 48, 0.07, 0.55395, 12, 6.93, -0.32, 0.33293, 13, 3.37, 30.47, 0.11311, 3, 20, 65.94999, -2.96, 0.19447, 21, 24.95, -1.57, 0.57382, 12, -15.99, -0.42, 0.2317 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], "hull": 36, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], "width": 100, @@ -201,7 +212,7 @@ "type": "path", "lengths": [ 137.82, 291.73, 641.11 ], "vertexCount": 9, - "vertices": [ 1, 23, -43.14, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.07, -0.18, 1, 2, 23, 72.07, 13.65, 0.5, 24, -69.11, -16.07, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.02, 0.5, 2, 23, 202.92, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.03, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.81, 1 ] + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] } }, "body": { @@ -209,7 +220,7 @@ "type": "mesh", "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], - "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.42, 12.41, 0.24858, 5, 22.32, 18.17, 0.75141, 2, 4, 39.47, 25.24, 0.44331, 5, -1.05999, 25.71, 0.55668, 3, 3, 48.02, 29.46, 0.3743, 4, 14.54, 26.45, 0.47619, 5, -25.57, 21.01, 0.1495, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.64611, 4, -8.99, 30.49, 0.24146, 3, 32, -45.21, -8.8, 0.10611, 2, 28.68, 30.39, 0.49532, 3, 2.88, 30.84, 0.39856, 3, 32, -28.91, -12.44, 0.25801, 2, 12.15, 32.79, 0.60893, 3, -12.28, 37.83, 0.13304, 3, 32, -18.5, -14.05, 0.28713, 2, 2.33999, 35.97, 0.51935, 26, -7.59, 18.95, 0.1935, 4, 32, -10.78, -18.35, 0.28478, 25, -42.03, 75.56, 0.10294, 2, -6.36, 37.31, 0.37493, 26, -10.2, 10.25, 0.23733, 3, 32, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.2, -0.66, 0.33772, 4, 32, 10.64, -16.31, 0.3269, 37, -24.05, -14.89, 0.16082, 2, -27.57, 33.66, 0.14432, 26, -6.36, -11.04, 0.36794, 4, 32, 28.49, -15.62, 0.24236, 37, -9.54, -15.11, 0.27028, 38, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 32, 41.59, -14.89, 0.2176, 37, 6.92, -15.34, 0.33285, 38, -26.85, -17.48, 0.20377, 26, -1.29999, -43.27, 0.24577, 3, 37, 33.82, -15.8, 0.47178, 38, 0, -15.85, 0.42626, 39, -31.79, -17.82, 0.10194, 3, 37, 63.38, -16.48, 0.2126, 38, 29.52, -14.21, 0.42737, 39, -2.42, -14.38, 0.36002, 3, 38, 49.78, -15.51, 0.30177, 39, 14.85, -13.08, 0.47126, 40, -21.14, -15.63, 0.22694, 3, 38, 61.09, -13.4, 0.15443, 39, 29.03, -11.64, 0.50848, 40, -3.26, -12.45, 0.33708, 2, 39, 41.23, -10.79, 0.28077, 40, 8.39999, -8.79, 0.71921, 2, 40, 36.23, -8.59, 0.56512, 41, -3.02, -8.83, 0.43487, 3, 40, 67.93, -10.06, 0.16322, 41, 28.68, -7.81, 0.53712, 42, -8.10999, -7.69, 0.29965, 3, 41, 47.76, -8.47, 0.402, 42, 10.97, -7.89, 0.4513, 33, -26.34, -6.21, 0.14668, 3, 41, 64.61, -8.06, 0.25016, 42, 27.8, -8.39999, 0.46039, 33, -12.76, -8.81, 0.28943, 4, 41, 79.12, -10.24, 0.11858, 42, 42.33, -8.03, 0.26981, 33, 4.53, -8.37, 0.48104, 34, -1.55, 35.59999, 0.13056, 2, 33, 20.84, -9.18999, 0.72799, 34, -5.37, 19.54999, 0.272, 1, 34, -11.5, -7.29, 1, 4, 33, 43.23, 16.27, 0.2746, 34, 15.1, -7.51, 0.48158, 35, -12.29, -5.54, 0.12942, 36, -41.75999, 0.94, 0.11439, 4, 33, 36.99, 33.93999, 0.18804, 34, 33.7, -4.57, 0.34252, 35, 6.53, -5.75, 0.18296, 36, -23.19, -2.18, 0.28646, 3, 34, 53.35, -1.58, 0.21646, 35, 26.4, -6.08, 0.26516, 36, -3.61, -5.59, 0.51836, 2, 35, 47.99, -1.76, 0.15752, 36, 18.37, -4.66, 0.84247, 1, 36, 33.16, -0.11, 1, 2, 35, 47.97, 10.84, 0.17387, 36, 20.31, 7.79, 0.82612, 4, 33, 9.83, 48.43, 0.17571, 34, 53.28, 18.69, 0.17038, 35, 29.73, 13.92, 0.136, 36, 2.76, 13.66, 0.5179, 4, 33, 11.45, 34.57, 0.26313, 34, 39.25999, 20.54999, 0.23037, 35, 16.20999, 18.09, 0.15679, 36, -9.93999, 19.87999, 0.3497, 4, 33, 12.4, 17.12999, 0.37056, 34, 22.1, 22.5, 0.30409, 35, -0.37, 22.87, 0.18235, 36, -25.59, 27.17, 0.14297, 3, 33, 12.34, 10.43, 0.44639, 34, 15.56, 23.91, 0.2976, 35, -6.59, 25.36, 0.256, 5, 41, 75.94999, 9.06, 0.10562, 42, 38.15, 11.08, 0.25494, 33, 1.65, 10.97, 0.33578, 34, 17.98, 34.75, 0.16322, 35, -2.38, 35.64, 0.14041, 3, 41, 62.61, 10.94, 0.26063, 42, 26.04, 10.62, 0.49791, 33, -15.14, 10.14, 0.24144, 3, 41, 47.27, 9.67, 0.40348, 42, 9.53, 10.18999, 0.4787, 33, -26.59, 11.93, 0.11781, 3, 40, 69.23, 6.97, 0.16043, 41, 28.63, 9.26, 0.53934, 42, -7.94, 9.38, 0.30019, 2, 40, 37.36, 8, 0.57647, 41, -3.21, 7.8, 0.42351, 2, 39, 45.48, 7.1, 0.29349, 40, 8.38, 9.60999, 0.7065, 3, 38, 62.84, 9, 0.15445, 39, 29.4, 10.82, 0.49324, 40, -8.12, 9.49, 0.35229, 3, 38, 52.14, 9.27, 0.30575, 39, 12.84, 11.73, 0.46742, 40, -26.12, 8.77, 0.22682, 3, 37, 66.66, 11.26, 0.21798, 38, 30.61, 13.69, 0.42844, 39, -3.05, 13.53, 0.35357, 3, 37, 37.7, 16.76, 0.48245, 38, 1.30999, 16.92, 0.41751, 39, -32.49, 14.97, 0.10002, 4, 32, 44.34, 22.11, 0.23459, 37, 11.91, 21.43, 0.43853, 38, -24.76, 19.56, 0.20679, 2, -58.28, -7.19, 0.12007, 4, 32, 28.54, 23.57, 0.31079, 37, -3.76, 23.83, 0.19157, 25, -76.76, 29.22, 0.2153, 2, -42.42, -7.45, 0.2823, 3, 32, 22.31, 41.64, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37848, 3, 32, 19.77, 51.42, 0.1392, 25, -59.84, 2.52, 0.47895, 2, -23.89, -35.16, 0.38184, 3, 32, 6.03, 61.53, 0.10543, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.16, -13.13, 0.67426, 2, -1.22, -50.82, 0.32573, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.49, 0.89018, 2, 37.39, -48.18, 0.10981, 3, 25, 30.4, 0.96, 0.43019, 2, 66.35, -36.72, 0.16237, 3, 19.96999, -44.2, 0.40743, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.21, 0.31834, 2, 3, 50.68, -30.61, 0.51066, 4, 0.38, -31.99, 0.48933, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.28, 0.12041, 3, 3, 69.4, -22.88, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.52, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.55, -19.37, 0.1738, 5, 26.05, -13.63, 0.82619, 5, 32, 20.79, 3.26, 0.38867, 37, -12.73, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10105, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.24, 0.13748, 4, 32, 2.68, 26.81, 0.26409, 25, -50.86, 29.21, 0.2337, 2, -16.39, -8.72999, 0.34628, 26, 35.78, -0.48, 0.15592, 3, 32, -15.65, 28.57, 0.15678, 25, -33.53, 28.78, 0.29159, 2, 2.02, -9.1, 0.55161, 1, 25, -28.17, 8.37, 1, 1, 25, -5.01, 10.99, 1, 3, 25, 24.12, 24.17, 0.12051, 2, 60.06, -13.51, 0.21384, 3, 20.53, -20.16, 0.66563, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.65, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58729, 5, -3.66, 7.65, 0.4127, 2, 3, 39.52, 3.1, 0.47136, 4, -0.95, 3.49, 0.52863, 1, 3, 17.87999, 2.56, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 32, -2.63, 46, 0.10032, 25, -45.41, 10.26, 0.52611, 2, -9.64, -27.46, 0.37355, 2, 35, 47.98, 4.75, 0.16597, 36, 19.37, 1.77, 0.83402, 4, 33, 19.54999, 50.48, 0.12624, 34, 53.3, 9.5, 0.16908, 35, 28.21, 4.85, 0.24846, 36, -0.13, 4.94, 0.4562, 4, 33, 26.31, 16.82, 0.32786, 34, 18.95999, 9.25, 0.38307, 35, -5.68, 10.34, 0.15879, 36, -32.77, 15.61, 0.13026, 2, 33, 16.95999, -0.03, 0.66864, 34, 4.23, 21.71, 0.33135, 3, 33, 28.1, 2.85, 0.4826, 34, 4.91, 10.14, 0.31302, 35, -19.37999, 13.57, 0.20437, 3, 41, 63.21, -0.58, 0.21068, 42, 25.96, 0.78, 0.49386, 33, -11.01, 1.48, 0.29543, 3, 32, -14.83, 8.08, 0.24448, 25, -33.34, 51.23, 0.16324, 2, 2.58999, 13.53, 0.59226, 4, 32, 3.37, 4.96, 0.28616, 25, -51.81, 51.13, 0.16476, 2, -15.86, 13.44, 0.31891, 26, 13.85, -0.52, 0.23015, 4, 32, 46.08, 3.58, 0.24089, 37, 9.06, 3.09, 0.41151, 38, -28.46, 0.64, 0.21862, 26, 17.5, -43.07, 0.12896, 3, 37, 37.22, 1.25, 0.47744, 38, -0.08, 1.25, 0.42162, 39, -36.25, -5.25, 0.10092, 4, 32, -5.23, 6.29, 0.25594, 25, -43.1, 51.32, 0.15578, 2, -7.16, 13.62, 0.42092, 26, 14.16, 8.17, 0.16734, 4, 32, 33.03, 3.37, 0.36684, 37, -3.96, 3.6, 0.31093, 2, -45.32, 9.82, 0.17306, 26, 15.75, -30.14, 0.14914, 4, 41, 77.5, -1.16, 0.11479, 42, 40.23, 0.95, 0.26888, 33, 3.05, 0.72, 0.44972, 34, 7.66, 35.32, 0.16659, 4, 33, 22.72, 34.66999, 0.2209, 34, 37.18, 9.38, 0.26955, 35, 12.29, 7.43, 0.20636, 36, -15.46, 9.95, 0.30317 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], "hull": 60, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], "width": 141, @@ -221,7 +232,7 @@ "type": "mesh", "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], - "vertices": [ 1, 47, 21.66, 6.07, 1, 2, 46, 18.12999, 3.37, 0.16553, 47, 3.91, 4.23, 0.83446, 3, 27, -6.12, -15.23, 0.20965, 46, -0.04, 8.85, 0.53629, 5, 43.44, 6.81, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.88821, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.57, -9.68999, 0.30995, 28, 12.31, -9.60999, 0.69004, 2, 28, 24.21, -9.37, 0.86562, 29, -13.42, -6.2, 0.13437, 2, 28, 32.12, -9.21, 0.73143, 29, -5.72, -8.02, 0.26856, 2, 28, 39.34999, -7.58, 0.54007, 29, 1.68, -8.24, 0.45992, 2, 28, 46.9, -5.88, 0.29036, 29, 9.41, -8.47999, 0.70963, 2, 29, 18.58, -8.76, 0.66539, 30, -15.75, -5.12, 0.3346, 1, 30, 6.03, -8.58, 1, 2, 30, 31.42, -5.97, 0.39256, 31, 0.49, -6.36, 0.60743, 1, 31, 23.79, -9.31, 1, 1, 31, 52.37, -11.28, 1, 1, 31, 62.39, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.48, 1, 1, 31, 25.99, 28.24, 1, 1, 31, 8.33, 5.63, 1, 2, 30, 28.81, 6.64, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.66, 11.07, 0.10767, 29, 18.26, 6.74, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.87, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.35, 9.85999, 0.40816, 2, 28, 23.72, 9.68999, 0.83035, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.2992, 28, 13.67, 9.97, 0.70079, 2, 27, 32.18, 12.59, 0.84686, 28, -6.23, 12.54, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47199, 4, 29.16, -0.35, 0.528, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.45, -29.43, 1, 2, 5, -8.22999, -31.56, 0.51928, 4, 19, -28.73, 0.4807, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.69, -14.54, 0.25481, 47, 2.13, -14.4, 0.32231, 5, 42.47, -19.81, 0.42286, 1, 47, 13.63, -8.89, 1, 1, 27, 3.55, 0.9, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.33, 0.49989, 1, 5, 25.66, -11.24, 1, 3, 46, 13.39, -4.64, 0.33234, 47, 0.86, -4.56, 0.48165, 5, 48.11, -11.65, 0.186 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], "hull": 38, "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], "width": 145, @@ -233,7 +244,7 @@ "type": "path", "lengths": [ 140.43, 297.34, 652.04 ], "vertexCount": 9, - "vertices": [ 1, 44, -40.7, -0.41, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.42, 0.33, 1, 2, 44, 82.92, 8.49, 0.5, 45, -58.75, -8.53, 0.5, 2, 44, 141.34, 0.52, 0.5, 45, 0.45, 0.71, 0.5, 2, 44, 208.26, -14.83, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.81, 1.41, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.76, 1 ] + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] } }, "head": { @@ -241,7 +252,7 @@ "type": "mesh", "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], - "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.33, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.14, 26.24, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.06, 1, 1, 47, 10.7, -8.62, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.7, -44.64, 1, 1, 48, 27.89, -48.41, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.91, -45.89, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.05, 1, 1, 48, 86.81, -25.91, 1, 1, 48, 92.45, -10.29, 1, 1, 48, 60.63, -22.97, 1, 1, 48, 49.77, -12.03, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.73, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.7, 1, 1, 48, 63.85, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.66, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.39, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.07, -38.41999, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], "hull": 19, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], "width": 87, @@ -260,11 +271,11 @@ { "time": 0.3333, "angle": -31.29 }, { "time": 0.5333, "angle": -44.75 }, { "time": 0.7333, "angle": -25.49 }, - { "time": 0.9, "angle": -9.45 }, + { "time": 0.8999, "angle": -9.45 }, { "time": 1.0666, "angle": 30.27 }, { "time": 1.2333, "angle": -10.1 }, { "time": 1.6333, "angle": -41.47 }, - { "time": 1.8, "angle": 30.27 } + { "time": 1.7999, "angle": 30.27 } ], "translate": [ { "time": 0, "x": -57.43, "y": -40.92 }, @@ -284,7 +295,7 @@ { "time": 0.4333, "x": 344.29, "y": -134.94 }, { "time": 0.5333, "x": 543.13, "y": -81.1 }, { "time": 0.7333, "x": 569.68, "y": -62.13 }, - { "time": 0.9, "x": 591.8, "y": -46.32 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, { "time": 1.0666, "x": 653.14, @@ -296,7 +307,7 @@ { "time": 1.3333, "x": 986.94, "y": -153.35 }, { "time": 1.4333, "x": 1178.19, "y": -111.88 }, { "time": 1.6333, "x": 1195.1, "y": -62.1 }, - { "time": 1.8, "x": 1246.53, "y": -40.92 } + { "time": 1.7999, "x": 1246.53, "y": -40.92 } ] }, "front leg IK target": { @@ -311,32 +322,32 @@ "curve": [ 0.532, 0, 0.75, 1 ] }, { "time": 0.7333, "x": 566.43, "y": 107.27 }, - { "time": 0.9, "x": 1215.89, "y": 68.21 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, { "time": 1.0666, "x": 1235.47, "y": 15.8 }, { "time": 1.2333, "x": 1235.47, "y": 0.97 }, { "time": 1.5666, "x": 1230.15, "y": 3.76 }, { "time": 1.7, "x": 1244, "y": 26.76 }, - { "time": 1.8, "x": 1253.53, "y": 44.61 } + { "time": 1.7999, "x": 1253.53, "y": 44.61 } ] }, "front foot 1": { "rotate": [ { "time": 0, "angle": -48.38, "curve": "stepped" }, { "time": 0.3333, "angle": -48.38 }, - { "time": 0.7, "angle": -121.34 }, + { "time": 0.6999, "angle": -121.34 }, { "time": 0.8, "angle": -80.19 }, - { "time": 0.9, "angle": 45.59 }, + { "time": 0.8999, "angle": 45.59 }, { "time": 1.0666, "angle": 2.1 }, { "time": 1.2333, "angle": 4.65 }, { "time": 1.5666, "angle": 5.66 }, - { "time": 1.8, "angle": -48.38 } + { "time": 1.7999, "angle": -48.38 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.6, "x": 1, "y": 1 }, { "time": 0.6333, "x": 0.954, "y": 1 }, { "time": 0.7666, "x": 0.82, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, { "time": 1.0666, "x": 0.851, "y": 1 }, { "time": 1.3666, "x": 1, "y": 1 } ] @@ -348,12 +359,12 @@ { "time": 0.5, "angle": 34.84 }, { "time": 0.5333, "angle": 30.32 }, { "time": 0.5666, "angle": 61.67 }, - { "time": 0.7, "angle": -19.47 }, - { "time": 0.9, "angle": -0.12 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, { "time": 1.0666, "angle": -7.21 }, { "time": 1.2333, "angle": -11.34 }, { "time": 1.5666, "angle": -11.23 }, - { "time": 1.8, "angle": 36.32 } + { "time": 1.7999, "angle": 36.32 } ] }, "back leg IK target": { @@ -361,15 +372,15 @@ { "time": 0, "x": 516.79, "y": 86.68 }, { "time": 0.1666, "x": 523.71, "y": 16.63 }, { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, - { "time": 0.7, "x": 523.03, "y": -5 }, - { "time": 0.9, "x": 551.31, "y": 41.86 }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, { "time": 1.0666, "x": 554.24, "y": 44.45 }, { "time": 1.1333, "x": 555.44, "y": 44.74 }, { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, { "time": 1.4333, "x": 556.6, "y": 46.19 }, { "time": 1.5, "x": 746.96, "y": 74.82 }, { "time": 1.6333, "x": 1127.68, "y": 103.61 }, - { "time": 1.8, "x": 1820.75, "y": 86.68 } + { "time": 1.7999, "x": 1820.75, "y": 86.68 } ] }, "back foot 1": { @@ -377,32 +388,32 @@ { "time": 0, "angle": 74.17 }, { "time": 0.1666, "angle": -17.01 }, { "time": 0.3333, "angle": 5.05 }, - { "time": 0.7, "angle": 3.74 }, - { "time": 0.9, "angle": -65.56 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, { "time": 1.6333, "angle": -92.52 }, - { "time": 1.8, "angle": 74.17 } + { "time": 1.7999, "angle": 74.17 } ], "scale": [ { "time": 0, "x": 0.824, "y": 1 }, { "time": 0.1666, "x": 0.754, "y": 1 }, { "time": 0.3333, "x": 0.589, "y": 1 }, { "time": 0.5666, "x": 0.909, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 1.4, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, { "time": 1.5, "x": 0.844, "y": 1 }, - { "time": 1.8, "x": 0.824, "y": 1 } + { "time": 1.7999, "x": 0.824, "y": 1 } ] }, "back foot 2": { "rotate": [ { "time": 0, "angle": 8.13 }, { "time": 0.1666, "angle": -3.21 }, - { "time": 0.7, "angle": -1.14 }, - { "time": 0.9, "angle": 34.12 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, { "time": 1.4333, "angle": 46.68 }, { "time": 1.5333, "angle": -15.6 }, { "time": 1.6333, "angle": -11.91 }, - { "time": 1.8, "angle": 8.13 } + { "time": 1.7999, "angle": 8.13 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -416,12 +427,12 @@ { "time": 0.1666, "angle": -37.29 }, { "time": 0.3333, "angle": 30.66 }, { - "time": 0.9, + "time": 0.8999, "angle": -53.28, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 36 }, - { "time": 1.8, "angle": -39.71 } + { "time": 1.7999, "angle": -39.71 } ] }, "neck 1": { @@ -434,7 +445,7 @@ { "time": 1.1666, "angle": 23.95 }, { "time": 1.2333, "angle": 36.37 }, { "time": 1.6333, "angle": 41.16 }, - { "time": 1.8, "angle": 21.95 } + { "time": 1.7999, "angle": 21.95 } ] }, "neck 2": { @@ -444,11 +455,11 @@ { "time": 0.2666, "angle": 8.84 }, { "time": 0.3333, "angle": 30.71 }, { "time": 0.7333, "angle": -3.36 }, - { "time": 0.9, "angle": -17.57 }, + { "time": 0.8999, "angle": -17.57 }, { "time": 1.1666, "angle": 2.19 }, { "time": 1.2333, "angle": 15.25 }, { "time": 1.6333, "angle": 4.41 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "head": { @@ -459,11 +470,11 @@ { "time": 0.3333, "angle": 13.1 }, { "time": 0.5, "angle": 13.1 }, { "time": 0.7333, "angle": -18.9 }, - { "time": 0.9, "angle": -41.77 }, + { "time": 0.8999, "angle": -41.77 }, { "time": 1.1666, "angle": -4 }, { "time": 1.2333, "angle": -2.35 }, { "time": 1.6333, "angle": -22.89 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "back arm 1": { @@ -472,11 +483,11 @@ { "time": 0.1666, "angle": -18.65 }, { "time": 0.3333, "angle": 324.98 }, { "time": 0.5666, "angle": -6.41 }, - { "time": 0.9, "angle": -14.83 }, + { "time": 0.8999, "angle": -14.83 }, { "time": 1.0666, "angle": -16.9 }, { "time": 1.2333, "angle": 1.49 }, - { "time": 1.4, "angle": 2.56 }, - { "time": 1.8, "angle": -17.23 } + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } ], "translate": [ { "time": 0, "x": -14.25, "y": -6.6 } @@ -494,7 +505,7 @@ { "time": 1.2333, "x": 0.956, "y": 1 }, { "time": 1.4333, "x": 2.315, "y": 1 }, { "time": 1.6333, "x": 0.774, "y": 1 }, - { "time": 1.8, "x": 2.186, "y": 1 } + { "time": 1.7999, "x": 2.186, "y": 1 } ] }, "front leg 1": { @@ -518,18 +529,18 @@ "y": 1, "curve": [ 0.532, 0, 0.75, 1 ] }, - { "time": 0.7, "x": 1, "y": 1 }, - { "time": 0.9, "x": 2.248, "y": 1 }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, { "time": 1.0666, "x": 2.002, "y": 1 }, { "time": 1.2333, "x": 1.495, "y": 1 }, { - "time": 1.3, + "time": 1.2999, "x": 1.047, "y": 1, "curve": [ 0.339, 0.58, 0.764, 1 ] }, { "time": 1.4333, "x": 0.779, "y": 0.762 }, - { "time": 1.8, "x": 1, "y": 1 } + { "time": 1.7999, "x": 1, "y": 1 } ] }, "front leg IK 2": { @@ -543,12 +554,12 @@ { "time": 0.1666, "angle": 17.37 }, { "time": 0.3333, "angle": 31.94 }, { - "time": 0.9, + "time": 0.8999, "angle": 4.76, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 39.96 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "spine 2": { @@ -561,7 +572,7 @@ { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -6.69 }, { "time": 1.6333, "angle": -2.5 }, - { "time": 1.8, "angle": -3.49 } + { "time": 1.7999, "angle": -3.49 } ] }, "spine 3": { @@ -571,11 +582,11 @@ { "time": 0.3333, "angle": -9.02 }, { "time": 0.5, "angle": -2.65 }, { "time": 0.7333, "angle": -10.53 }, - { "time": 0.9, "angle": -16.16 }, + { "time": 0.8999, "angle": -16.16 }, { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -9.02 }, { "time": 1.6333, "angle": -7.26 }, - { "time": 1.8, "angle": -20.41 } + { "time": 1.7999, "angle": -20.41 } ] }, "back arm 3": { @@ -584,22 +595,22 @@ { "time": 0.1666, "angle": 53.14 }, { "time": 0.3333, "angle": 116.25 }, { "time": 0.5666, "angle": 35.72 }, - { "time": 0.9, "angle": 39.32 }, + { "time": 0.8999, "angle": 39.32 }, { "time": 1.0666, "angle": 41.19 }, { "time": 1.2333, "angle": 78.09 }, - { "time": 1.4, "angle": 36.16 }, - { "time": 1.8, "angle": 26.23 } + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } ] }, "back foot 3": { "rotate": [ { "time": 0, "angle": 11.35 }, - { "time": 0.7, "angle": -4.24 }, - { "time": 0.9, "angle": 25.48, "curve": "stepped" }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, { "time": 1.4333, "angle": 25.48 }, { "time": 1.5333, "angle": -30.51 }, { "time": 1.6333, "angle": -20.54 }, - { "time": 1.8, "angle": 11.35 } + { "time": 1.7999, "angle": 11.35 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -614,11 +625,11 @@ { "time": 0.3333, "angle": -24.32 }, { "time": 0.5, "angle": -13.37 }, { "time": 0.7333, "angle": 21.61 }, - { "time": 0.9, "angle": 46.61 }, + { "time": 0.8999, "angle": 46.61 }, { "time": 1.1666, "angle": -28.69 }, { "time": 1.2333, "angle": -43.33 }, { "time": 1.6333, "angle": 24.89 }, - { "time": 1.8, "angle": 10.81 } + { "time": 1.7999, "angle": 10.81 } ] }, "spine 4": { @@ -628,11 +639,11 @@ { "time": 0.3333, "angle": -0.82 }, { "time": 0.5, "angle": 4.13 }, { "time": 0.7333, "angle": -3.74 }, - { "time": 0.9, "angle": -9.37 }, + { "time": 0.8999, "angle": -9.37 }, { "time": 1.1666, "angle": -9.02 }, { "time": 1.2333, "angle": -0.82 }, { "time": 1.6333, "angle": 3.81 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "front foot 2": { @@ -642,12 +653,12 @@ { "time": 0.3333, "angle": -0.2 }, { "time": 0.5, "angle": 22.72 }, { "time": 0.5333, "angle": 26.87 }, - { "time": 0.7, "angle": -39.25 }, - { "time": 0.9, "angle": 11.26 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, { "time": 1.0666, "angle": -18.17 }, { "time": 1.2333, "angle": -2.64 }, { "time": 1.5666, "angle": -5.84 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "belly": { @@ -660,7 +671,7 @@ { "time": 1.1, "x": -0.44, "y": -1.45 }, { "time": 1.2333, "x": 12.37, "y": 2.32 }, { "time": 1.3666, "x": 11.51, "y": 5.52 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "butt": { @@ -669,7 +680,7 @@ { "time": 0.7666, "x": 9.88, "y": -25.41 }, { "time": 0.8333, "x": 15.89, "y": -41.88 }, { "time": 1.2333, "x": -12.49, "y": -32.99 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] } }, @@ -688,7 +699,7 @@ { "time": 1.4333, "offset": 110, - "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56073, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] }, { "time": 1.5 } ] @@ -698,11 +709,11 @@ { "time": 1.4333 }, { "time": 1.5, - "vertices": [ 4.67718, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17206 ] + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] }, { "time": 1.5666, - "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62085, -280.84912 ] + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] }, { "time": 1.6666 } ] @@ -713,7 +724,7 @@ { "time": 0.3333, "offset": 164, - "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28855, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] }, { "time": 0.5333, @@ -746,11 +757,11 @@ { "time": 0.5666 }, { "time": 0.6333, - "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] }, { - "time": 0.7, - "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] }, { "time": 0.8 } ] diff --git a/examples/stretchyman/export/stretchyman.skel b/examples/stretchyman/export/stretchyman.skel index 446978f6bc7d53c027fd3a031fe0ae9683c6fe79..91f55d163573a8ab641870b04ea32b1b768fc56a 100644 GIT binary patch delta 4394 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 delta 4480 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 Iuzk9J1CFVrfdBvi diff --git a/examples/tank/export/tank.json b/examples/tank/export/tank.json index cab50642b..b483fe274 100644 --- a/examples/tank/export/tank.json +++ b/examples/tank/export/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/examples/tank/export/tank.skel b/examples/tank/export/tank.skel index 3946eb333eb1f33dcc4cf1b53b8f8a26dd9ec1c1..3183baafa36a3697a36a20f9831f49aa99a6d97d 100644 GIT binary patch delta 877 zcmZY6KWGzC90%}wcS-JY`L7h4T1pbItu{&1T>f-Ww7HO0w4$xl+JcanGc7gO8k35f zwg}px7~fg^H2}XkEzZKYx0UPNroC6SN4Yp zSH2KrtU{_oYA~pW3^2zD3+ znUDD}bA$IYtwKNZh!A6z(5C|XSM-YzVYV3#F^3F&Ox*zU5777MHrj3U+qiFPvMCk| zS~?r=psz*G|IOfjXxP2ajj+RpF~GE$z{BVqT0!5T+h~snGZW}7bX^SC@mUf+D?HE( zTkojC2md{7NP@c;&^7b}`Wy9|VRaf^L0_WZ(S0(krqB}l2>m3(`NbgT*v$qbFTyXDF@8l#r(zr z@9mcZ-e=GW`H~ZI1@lM9Rg=rlTh%2AII5Vqj!zKM}x{%X~gzRy0>_bfQ zwHZyj9LUV(B$7-dmKBBG^zOaqbJ4ulA`1M-$yA~S75&4$d9Tce4fL5eE*Z(`)Z6y^ zmDYF{G0`sHpd^xsvBY$%r3*ec;j4Fi**1P@uDTU>TlmcwmDLX7q6gG&es!IWsy%R7 PY+cq=H~UqsskzR-w9)Bq delta 890 zcmZ9~+iTNs6bJDB(x#U*P2zAH(`~jxotL)uUiYA-Yhlx(AgD~}OI*{eXyYs`t2b1n zua*+`A}WYOP;ffxLqTNI2gN@?#y~+=9l}7_gA9DB{hdP}w2*xA?K$U{@Jl`|l7~yg z-5<%9XH+eurX~u>O93TUKBvi!+b*leMCvX>!=6ZxAOPh%+!S&4g)s%mgSajGJOM z9-u^w5lSAJGtztOAB`ajXWB;zoAy&=6U^O4ULik_Zq_XjvX)4;EX9H%XQJD57YmPY zfrY7i$OqO#m)b;jnLQ#-Sz*c_bauvWnxXMI@)@yP;Lj06MP@DkE)wwX=`6B=9XqTr zb_}_KJVBNb*7n~bBficevJIxI$ZKRB>Eoa_hLn&;9PIWA2YV>kfdo=Uo*}FDAl;1~ z9yrQF=XD-l!3#{^G4(j0mU2MtDy9WYtC)HPsErHIc@5J%rY5GXBGitE(0N&eH@_gl zSMd$gb_vpP32GHc^@b!#ZX!5hHw*@{B`;4-YAn{I%kzukFqY;qw1CvdRIzaXYMxctxcNw)= z7-r9&J=u@R9LVKjvS(pf{aAT&7ZXU$4yKokT$3A_F%i0L7C; zs_pj{EOFYzDt}>!IVpPV?+2P;r}544e~jj#>(A1hxPkQjbs`7X*cKiV2P!o#SaL{&fx%JY>tPV> zqz6=g3g}*b+d`+a&(b!>avo!nTk*|tRp1-@1_lO3)ASoln3Zv zi=aaXHNHW4hF7W&wOIr~dFDX(inYo^dA2-f4>Ik5${jlJVTq$Smn}r@(AFJ62NwWC z4&v%n4Ur6oTpxNsxCbf%-#Ff=dI;g!-_iJX02lxep2I8K!h`={DxEeadN>)utZ>>h fbCzQ<%zCHe7vCIAUMI4-l6N~JBll)Q{-dk_rmy-O delta 680 zcmX|*Ur19?9LMjubFQwFJvba%ZNVPe+?aEBrU*B^=V+S`{n?(1ET9VLREz^O|&PM;mQ)^~Mqj5o2qpwA!ZeIfnsy?>+yOtt%I0H$L5 z^^vFAueMg}_ZGEcI|x)IqRDOGtRaQa;Ze%Z;ve!&fw ztVuXvm%5jSa&X@0D9o3_@MkeEpAY2`^>GVj930x3lzYWnwdZJtq{(n8Ofp#oZyq=f zoytmDy>WtN`8~l+lyVBzsrp%D<(FKX*wiRHlp|J(;+yPJRiRJKzco6bg^Rq@=A)z&#n5G$jn3oMf(0dQAk88{D-uF+v*$rX+i!|3Ts<%E*66UlGbVIsl*Sb X96A*hM!u{t;%NOM0F2mbd1L$w(O2>+ diff --git a/examples/vine/export/vine.json b/examples/vine/export/vine.json index 6fc78dc14..f4f48a1a2 100644 --- a/examples/vine/export/vine.json +++ b/examples/vine/export/vine.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "OTxn8PebJnSmjY8665bH7m360tk", "spine": "3.4.02", "width": 227.32, "height": 841.06, "images": "./images/" }, +"skeleton": { + "hash": "Lb8yfqsfTuFiRtjhPw5ZzTEPxik", + "spine": "3.5.03-beta", + "width": 227.32, + "height": 841.06, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "vine1", "parent": "root", "length": 74, "rotation": 90, "x": 339.09, "y": -467.15, "color": "f700ffff" }, @@ -27,6 +34,7 @@ "path": [ { "name": "vine-path", + "order": 0, "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], "target": "vine-path", "rotateMode": "chainScale" @@ -39,7 +47,7 @@ "type": "mesh", "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15384, 1, 0.1923, 1, 0.23076, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38461, 1, 0.42307, 1, 0.46153, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65384, 1, 0.6923, 1, 0.73076, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88461, 1, 0.92307, 1, 0.96153, 1, 1, 0.5, 1, 0, 1, 0, 0.96153, 0, 0.92307, 0, 0.88461, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73076, 0, 0.6923, 0, 0.65384, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46153, 0, 0.42307, 0, 0.38461, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23076, 0, 0.1923, 0, 0.15384, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15384, 0.5, 0.1923, 0.5, 0.23076, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38461, 0.5, 0.42307, 0.5, 0.46153, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65384, 0.5, 0.6923, 0.5, 0.73076, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88461, 0.5, 0.92307, 0.5, 0.96153 ], "triangles": [ 55, 0, 1, 56, 1, 2, 55, 1, 56, 56, 2, 3, 54, 55, 56, 57, 56, 3, 57, 3, 4, 53, 54, 57, 58, 57, 4, 53, 57, 58, 58, 4, 5, 52, 53, 58, 59, 58, 5, 54, 56, 57, 52, 58, 59, 59, 5, 6, 51, 52, 59, 60, 59, 6, 51, 59, 60, 60, 6, 7, 50, 51, 60, 61, 60, 7, 50, 60, 61, 61, 7, 8, 49, 50, 61, 62, 61, 8, 49, 61, 62, 62, 8, 9, 48, 49, 62, 63, 62, 9, 48, 62, 63, 63, 9, 10, 47, 48, 63, 64, 63, 10, 47, 63, 64, 64, 10, 11, 46, 47, 64, 65, 64, 11, 46, 64, 65, 65, 11, 12, 45, 46, 65, 66, 65, 12, 45, 65, 66, 66, 12, 13, 44, 45, 66, 67, 66, 13, 44, 66, 67, 67, 13, 14, 43, 44, 67, 68, 67, 14, 43, 67, 68, 68, 14, 15, 42, 43, 68, 69, 68, 15, 42, 68, 69, 69, 15, 16, 41, 42, 69, 70, 69, 16, 41, 69, 70, 70, 16, 17, 40, 41, 70, 71, 70, 17, 40, 70, 71, 71, 17, 18, 39, 40, 71, 72, 71, 18, 39, 71, 72, 72, 18, 19, 38, 39, 72, 73, 72, 19, 38, 72, 73, 73, 19, 20, 37, 38, 73, 74, 73, 20, 37, 73, 74, 74, 20, 21, 36, 37, 74, 75, 74, 21, 36, 74, 75, 75, 21, 22, 35, 36, 75, 76, 75, 22, 35, 75, 76, 76, 22, 23, 34, 35, 76, 77, 76, 23, 34, 76, 77, 77, 23, 24, 33, 77, 78, 78, 24, 25, 32, 33, 78, 79, 78, 25, 32, 78, 79, 33, 34, 77, 78, 77, 24, 31, 32, 79, 80, 79, 26, 31, 79, 80, 80, 26, 27, 30, 31, 80, 29, 80, 27, 30, 80, 29, 29, 27, 28, 79, 25, 26 ], - "vertices": [ 4, 10, 294, 33.89, 3.2E-4, 11, 220, 33.89, 0.01648, 12, 146, 33.89, 0.21526, 13, 72, 33.89, 0.76791, 3, 11, 220, -0.1, 0.00752, 12, 146, -0.1, 0.16869, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.2E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21526, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00195, 11, 183, -34.09999, 0.04739, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61714, 5, 9, 294, -34.09999, 2.4E-4, 10, 220, -34.09999, 0.01163, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.35531, 5, 9, 257, -34.09999, 0.00195, 10, 183, -34.09999, 0.04663, 11, 109, -34.09999, 0.31166, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.4E-4, 9, 220, -34.09999, 0.01163, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48685, 12, -1.99, -34.09999, 0.31174, 13, -75.99, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00195, 9, 183, -34.09999, 0.04663, 10, 109, -34.09999, 0.31166, 11, 35, -34.09999, 0.48685, 12, -38.99, -34.09999, 0.14101, 13, -112.99, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.4E-4, 8, 220, -34.09999, 0.01163, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48685, 11, -1.99, -34.09999, 0.31166, 12, -75.99, -34.09999, 0.04663, 13, -149.99, -34.09999, 0.00195, 7, 7, 257, -34.09999, 0.00195, 8, 183, -34.09999, 0.04663, 9, 109, -34.09999, 0.31166, 10, 35, -34.09999, 0.48685, 11, -38.99, -34.09999, 0.14101, 12, -112.99, -34.09999, 0.01163, 13, -186.99, -34.09999, 2.4E-4, 7, 6, 294, -34.09999, 2.4E-4, 7, 220, -34.09999, 0.01163, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48685, 10, -1.99, -34.09999, 0.31166, 11, -75.99, -34.09999, 0.04663, 12, -149.99, -34.09999, 0.00195, 7, 6, 257, -34.09999, 0.00195, 7, 183, -34.09999, 0.04663, 8, 109, -34.09999, 0.31166, 9, 35, -34.09999, 0.48685, 10, -38.99, -34.09999, 0.14101, 11, -112.99, -34.09999, 0.01163, 12, -186.99, -34.09999, 2.4E-4, 7, 5, 294, -34.09999, 2.4E-4, 6, 220, -34.09999, 0.01163, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48685, 9, -1.99, -34.09999, 0.31166, 10, -75.99, -34.09999, 0.04663, 11, -149.99, -34.09999, 0.00195, 7, 5, 257, -34.09999, 0.00195, 6, 183, -34.09999, 0.04663, 7, 109, -34.09999, 0.31166, 8, 35, -34.09999, 0.48685, 9, -38.99, -34.09999, 0.14101, 10, -112.99, -34.09999, 0.01163, 11, -186.99, -34.09999, 2.4E-4, 7, 4, 294, -34.09999, 2.4E-4, 5, 220, -34.09999, 0.01163, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48685, 8, -1.99, -34.09999, 0.31166, 9, -75.99, -34.09999, 0.04663, 10, -149.99, -34.09999, 0.00195, 7, 4, 257, -34.09999, 0.00195, 5, 183, -34.09999, 0.04663, 6, 109, -34.09999, 0.31166, 7, 35, -34.09999, 0.48685, 8, -38.99, -34.09999, 0.14101, 9, -112.99, -34.09999, 0.01163, 10, -186.99, -34.09999, 2.4E-4, 7, 3, 294, -34.09999, 2.4E-4, 4, 220, -34.09999, 0.01163, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48685, 7, -1.99, -34.09999, 0.31166, 8, -75.99, -34.09999, 0.04663, 9, -149.99, -34.09999, 0.00195, 7, 3, 257, -34.09999, 0.00195, 4, 183, -34.09999, 0.04663, 5, 109, -34.09999, 0.31166, 6, 35, -34.09999, 0.48685, 7, -38.99, -34.09999, 0.14101, 8, -112.99, -34.09999, 0.01163, 9, -186.99, -34.09999, 2.4E-4, 7, 2, 294, -34.09999, 2.4E-4, 3, 220, -34.09999, 0.01163, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48685, 6, -1.99, -34.09999, 0.31166, 7, -75.99, -34.09999, 0.04663, 8, -149.99, -34.09999, 0.00195, 7, 2, 257, -34.09999, 0.00195, 3, 183, -34.09999, 0.04663, 4, 109, -34.09999, 0.31166, 5, 35, -34.09999, 0.48685, 6, -38.99, -34.09999, 0.14101, 7, -112.99, -34.09999, 0.01163, 8, -186.99, -34.09999, 2.4E-4, 7, 1, 294, -34.09999, 2.4E-4, 2, 220, -34.09999, 0.01163, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48685, 5, -1.99, -34.09999, 0.31166, 6, -75.99, -34.09999, 0.04663, 7, -149.99, -34.09999, 0.00195, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31166, 4, 35, -34.09999, 0.48685, 5, -38.99, -34.09999, 0.14101, 6, -112.99, -34.09999, 0.01163, 7, -186.99, -34.09999, 2.4E-4, 6, 1, 220, -34.09999, 0.01033, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48685, 4, -1.99, -34.09999, 0.31166, 5, -75.99, -34.09999, 0.04663, 6, -149.99, -34.09999, 0.00195, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48685, 4, -38.99, -34.09999, 0.14101, 5, -112.99, -34.09999, 0.01163, 6, -186.99, -34.09999, 2.4E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51233, 3, -1.99, -34.09999, 0.31166, 4, -75.99, -34.09999, 0.04663, 5, -149.99, -34.09999, 0.00195, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54594, 3, -38.99, -34.09999, 0.14101, 4, -112.99, -34.09999, 0.01163, 5, -186.99, -34.09999, 2.4E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39738, 3, -75.99, -34.09999, 0.04663, 4, -149.99, -34.09999, 0.00195, 4, 1, 35, -34.09999, 0.77978, 2, -38.99, -34.09999, 0.20825, 3, -112.99, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.4E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.99, -34.09999, 0.10696, 3, -149.99, -34.09999, 0.00271, 3, 1, -1.99, -0.1, 0.9264, 2, -75.99, -0.1, 0.07272, 3, -149.99, -0.1, 8.6E-4, 3, 1, -1.99, 33.89, 0.89032, 2, -75.99, 33.89, 0.10696, 3, -149.99, 33.89, 0.00271, 4, 1, 35, 33.89, 0.77978, 2, -38.99, 33.89, 0.20825, 3, -112.99, 33.89, 0.01171, 4, -186.99, 33.89, 2.4E-4, 4, 1, 72, 33.89, 0.55403, 2, -1.99, 33.89, 0.39738, 3, -75.99, 33.89, 0.04663, 4, -149.99, 33.89, 0.00195, 5, 1, 109, 33.89, 0.30116, 2, 35, 33.89, 0.54594, 3, -38.99, 33.89, 0.14101, 4, -112.99, 33.89, 0.01163, 5, -186.99, 33.89, 2.4E-4, 5, 1, 146, 33.89, 0.1274, 2, 72, 33.89, 0.51233, 3, -1.99, 33.89, 0.31166, 4, -75.99, 33.89, 0.04663, 5, -149.99, 33.89, 0.00195, 6, 1, 183, 33.89, 0.04058, 2, 109, 33.89, 0.31966, 3, 35, 33.89, 0.48685, 4, -38.99, 33.89, 0.14101, 5, -112.99, 33.89, 0.01163, 6, -186.99, 33.89, 2.4E-4, 6, 1, 220, 33.89, 0.01033, 2, 146, 33.89, 0.14256, 3, 72, 33.89, 0.48685, 4, -1.99, 33.89, 0.31166, 5, -75.99, 33.89, 0.04663, 6, -149.99, 33.89, 0.00195, 7, 1, 257, 33.89, 0.0017, 2, 183, 33.89, 0.04687, 3, 109, 33.89, 0.31166, 4, 35, 33.89, 0.48685, 5, -38.99, 33.89, 0.14101, 6, -112.99, 33.89, 0.01163, 7, -186.99, 33.89, 2.4E-4, 7, 1, 294, 33.89, 2.4E-4, 2, 220, 33.89, 0.01163, 3, 146, 33.89, 0.14101, 4, 72, 33.89, 0.48685, 5, -1.99, 33.89, 0.31166, 6, -75.99, 33.89, 0.04663, 7, -149.99, 33.89, 0.00195, 7, 2, 257, 33.89, 0.00195, 3, 183, 33.89, 0.04663, 4, 109, 33.89, 0.31166, 5, 35, 33.89, 0.48685, 6, -38.99, 33.89, 0.14101, 7, -112.99, 33.89, 0.01163, 8, -186.99, 33.89, 2.4E-4, 7, 2, 294, 33.89, 2.4E-4, 3, 220, 33.89, 0.01163, 4, 146, 33.89, 0.14101, 5, 72, 33.89, 0.48685, 6, -1.99, 33.89, 0.31166, 7, -75.99, 33.89, 0.04663, 8, -149.99, 33.89, 0.00195, 7, 3, 257, 33.89, 0.00195, 4, 183, 33.89, 0.04663, 5, 109, 33.89, 0.31166, 6, 35, 33.89, 0.48685, 7, -38.99, 33.89, 0.14101, 8, -112.99, 33.89, 0.01163, 9, -186.99, 33.89, 2.4E-4, 7, 3, 294, 33.89, 2.4E-4, 4, 220, 33.89, 0.01163, 5, 146, 33.89, 0.14101, 6, 72, 33.89, 0.48685, 7, -1.99, 33.89, 0.31166, 8, -75.99, 33.89, 0.04663, 9, -149.99, 33.89, 0.00195, 7, 4, 257, 33.89, 0.00195, 5, 183, 33.89, 0.04663, 6, 109, 33.89, 0.31166, 7, 35, 33.89, 0.48685, 8, -38.99, 33.89, 0.14101, 9, -112.99, 33.89, 0.01163, 10, -186.99, 33.89, 2.4E-4, 7, 4, 294, 33.89, 2.4E-4, 5, 220, 33.89, 0.01163, 6, 146, 33.89, 0.14101, 7, 72, 33.89, 0.48685, 8, -1.99, 33.89, 0.31166, 9, -75.99, 33.89, 0.04663, 10, -149.99, 33.89, 0.00195, 7, 5, 257, 33.89, 0.00195, 6, 183, 33.89, 0.04663, 7, 109, 33.89, 0.31166, 8, 35, 33.89, 0.48685, 9, -38.99, 33.89, 0.14101, 10, -112.99, 33.89, 0.01163, 11, -186.99, 33.89, 2.4E-4, 7, 5, 294, 33.89, 2.4E-4, 6, 220, 33.89, 0.01163, 7, 146, 33.89, 0.14101, 8, 72, 33.89, 0.48685, 9, -1.99, 33.89, 0.31166, 10, -75.99, 33.89, 0.04663, 11, -149.99, 33.89, 0.00195, 7, 6, 257, 33.89, 0.00195, 7, 183, 33.89, 0.04663, 8, 109, 33.89, 0.31166, 9, 35, 33.89, 0.48685, 10, -38.99, 33.89, 0.14101, 11, -112.99, 33.89, 0.01163, 12, -186.99, 33.89, 2.4E-4, 7, 6, 294, 33.89, 2.4E-4, 7, 220, 33.89, 0.01163, 8, 146, 33.89, 0.14101, 9, 72, 33.89, 0.48685, 10, -1.99, 33.89, 0.31166, 11, -75.99, 33.89, 0.04663, 12, -149.99, 33.89, 0.00195, 7, 7, 257, 33.89, 0.00195, 8, 183, 33.89, 0.04663, 9, 109, 33.89, 0.31166, 10, 35, 33.89, 0.48685, 11, -38.99, 33.89, 0.14101, 12, -112.99, 33.89, 0.01163, 13, -186.99, 33.89, 2.4E-4, 7, 7, 294, 33.89, 2.4E-4, 8, 220, 33.89, 0.01163, 9, 146, 33.89, 0.14101, 10, 72, 33.89, 0.48685, 11, -1.99, 33.89, 0.31166, 12, -75.99, 33.89, 0.04663, 13, -149.99, 33.89, 0.00195, 6, 8, 257, 33.89, 0.00195, 9, 183, 33.89, 0.04663, 10, 109, 33.89, 0.31166, 11, 35, 33.89, 0.48685, 12, -38.99, 33.89, 0.14101, 13, -112.99, 33.89, 0.01188, 6, 8, 294, 33.89, 2.4E-4, 9, 220, 33.89, 0.01163, 10, 146, 33.89, 0.14101, 11, 72, 33.89, 0.48685, 12, -1.99, 33.89, 0.31174, 13, -75.99, 33.89, 0.0485, 5, 9, 257, 33.89, 0.00195, 10, 183, 33.89, 0.04663, 11, 109, 33.89, 0.31166, 12, 35, 33.89, 0.48761, 13, -38.99, 33.89, 0.15212, 5, 9, 294, 33.89, 2.4E-4, 10, 220, 33.89, 0.01163, 11, 146, 33.89, 0.14109, 12, 72, 33.89, 0.49171, 13, -1.99, 33.89, 0.35531, 4, 10, 257, 33.89, 0.00195, 11, 183, 33.89, 0.04739, 12, 109, 33.89, 0.33351, 13, 35, 33.89, 0.61714, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31658, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00542, 11, 146, -0.1, 0.11402, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33273, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03045, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00542, 10, 146, -0.1, 0.11402, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.99, -0.1, 0.0311, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03045, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11402, 13, -112.99, -0.1, 0.00542, 6, 8, 220, -0.1, 0.00542, 9, 146, -0.1, 0.11402, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.99, -0.1, 0.03045, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03045, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11402, 12, -112.99, -0.1, 0.00542, 6, 7, 220, -0.1, 0.00542, 8, 146, -0.1, 0.11402, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.99, -0.1, 0.03045, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03045, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11402, 11, -112.99, -0.1, 0.00542, 6, 6, 220, -0.1, 0.00542, 7, 146, -0.1, 0.11402, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.99, -0.1, 0.03045, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03045, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11402, 10, -112.99, -0.1, 0.00542, 6, 5, 220, -0.1, 0.00542, 6, 146, -0.1, 0.11402, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.99, -0.1, 0.03045, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03045, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11402, 9, -112.99, -0.1, 0.00542, 6, 4, 220, -0.1, 0.00542, 5, 146, -0.1, 0.11402, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.99, -0.1, 0.03045, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03045, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11402, 8, -112.99, -0.1, 0.00542, 6, 3, 220, -0.1, 0.00542, 4, 146, -0.1, 0.11402, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.99, -0.1, 0.03045, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03045, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11402, 7, -112.99, -0.1, 0.00542, 6, 2, 220, -0.1, 0.00542, 3, 146, -0.1, 0.11402, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.99, -0.1, 0.03045, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03045, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11402, 6, -112.99, -0.1, 0.00542, 6, 1, 220, -0.1, 0.00477, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.99, -0.1, 0.03045, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11402, 5, -112.99, -0.1, 0.00542, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.99, -0.1, 0.03045, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11402, 4, -112.99, -0.1, 0.00542, 4, 1, 72, -0.1, 0.55929, 2, -1.99, -0.1, 0.40959, 3, -75.99, -0.1, 0.03045, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81845, 2, -38.99, -0.1, 0.17611, 3, -112.99, -0.1, 0.00542 ], + "vertices": [ 4, 10, 294, 33.88999, 3.1E-4, 11, 220, 33.88999, 0.01648, 12, 146, 33.88999, 0.21525, 13, 72, 33.88999, 0.76791, 3, 11, 220, -0.1, 0.00751, 12, 146, -0.1, 0.16868, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.1E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21525, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00194, 11, 183, -34.09999, 0.04738, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61713, 5, 9, 294, -34.09999, 2.3E-4, 10, 220, -34.09999, 0.01162, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.3553, 5, 9, 257, -34.09999, 0.00194, 10, 183, -34.09999, 0.04662, 11, 109, -34.09999, 0.31165, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.3E-4, 9, 220, -34.09999, 0.01162, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48684, 12, -1.99, -34.09999, 0.31174, 13, -75.98999, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00194, 9, 183, -34.09999, 0.04662, 10, 109, -34.09999, 0.31165, 11, 35, -34.09999, 0.48684, 12, -38.99, -34.09999, 0.14101, 13, -112.98999, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.3E-4, 8, 220, -34.09999, 0.01162, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48684, 11, -1.99, -34.09999, 0.31165, 12, -75.98999, -34.09999, 0.04662, 13, -149.99, -34.09999, 0.00194, 7, 7, 257, -34.09999, 0.00194, 8, 183, -34.09999, 0.04662, 9, 109, -34.09999, 0.31165, 10, 35, -34.09999, 0.48684, 11, -38.99, -34.09999, 0.14101, 12, -112.98999, -34.09999, 0.01162, 13, -186.99, -34.09999, 2.3E-4, 7, 6, 294, -34.09999, 2.3E-4, 7, 220, -34.09999, 0.01162, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48684, 10, -1.99, -34.09999, 0.31165, 11, -75.98999, -34.09999, 0.04662, 12, -149.99, -34.09999, 0.00194, 7, 6, 257, -34.09999, 0.00194, 7, 183, -34.09999, 0.04662, 8, 109, -34.09999, 0.31165, 9, 35, -34.09999, 0.48684, 10, -38.99, -34.09999, 0.14101, 11, -112.98999, -34.09999, 0.01162, 12, -186.99, -34.09999, 2.3E-4, 7, 5, 294, -34.09999, 2.3E-4, 6, 220, -34.09999, 0.01162, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48684, 9, -1.99, -34.09999, 0.31165, 10, -75.98999, -34.09999, 0.04662, 11, -149.99, -34.09999, 0.00194, 7, 5, 257, -34.09999, 0.00194, 6, 183, -34.09999, 0.04662, 7, 109, -34.09999, 0.31165, 8, 35, -34.09999, 0.48684, 9, -38.99, -34.09999, 0.14101, 10, -112.98999, -34.09999, 0.01162, 11, -186.99, -34.09999, 2.3E-4, 7, 4, 294, -34.09999, 2.3E-4, 5, 220, -34.09999, 0.01162, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48684, 8, -1.99, -34.09999, 0.31165, 9, -75.98999, -34.09999, 0.04662, 10, -149.99, -34.09999, 0.00194, 7, 4, 257, -34.09999, 0.00194, 5, 183, -34.09999, 0.04662, 6, 109, -34.09999, 0.31165, 7, 35, -34.09999, 0.48684, 8, -38.99, -34.09999, 0.14101, 9, -112.98999, -34.09999, 0.01162, 10, -186.99, -34.09999, 2.3E-4, 7, 3, 294, -34.09999, 2.3E-4, 4, 220, -34.09999, 0.01162, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48684, 7, -1.99, -34.09999, 0.31165, 8, -75.98999, -34.09999, 0.04662, 9, -149.99, -34.09999, 0.00194, 7, 3, 257, -34.09999, 0.00194, 4, 183, -34.09999, 0.04662, 5, 109, -34.09999, 0.31165, 6, 35, -34.09999, 0.48684, 7, -38.99, -34.09999, 0.14101, 8, -112.98999, -34.09999, 0.01162, 9, -186.99, -34.09999, 2.3E-4, 7, 2, 294, -34.09999, 2.3E-4, 3, 220, -34.09999, 0.01162, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48684, 6, -1.99, -34.09999, 0.31165, 7, -75.98999, -34.09999, 0.04662, 8, -149.99, -34.09999, 0.00194, 7, 2, 257, -34.09999, 0.00194, 3, 183, -34.09999, 0.04662, 4, 109, -34.09999, 0.31165, 5, 35, -34.09999, 0.48684, 6, -38.99, -34.09999, 0.14101, 7, -112.98999, -34.09999, 0.01162, 8, -186.99, -34.09999, 2.3E-4, 7, 1, 294, -34.09999, 2.3E-4, 2, 220, -34.09999, 0.01162, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48684, 5, -1.99, -34.09999, 0.31165, 6, -75.98999, -34.09999, 0.04662, 7, -149.99, -34.09999, 0.00194, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31165, 4, 35, -34.09999, 0.48684, 5, -38.99, -34.09999, 0.14101, 6, -112.98999, -34.09999, 0.01162, 7, -186.99, -34.09999, 2.3E-4, 6, 1, 220, -34.09999, 0.01032, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48684, 4, -1.99, -34.09999, 0.31165, 5, -75.98999, -34.09999, 0.04662, 6, -149.99, -34.09999, 0.00194, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48684, 4, -38.99, -34.09999, 0.14101, 5, -112.98999, -34.09999, 0.01162, 6, -186.99, -34.09999, 2.3E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51232, 3, -1.99, -34.09999, 0.31165, 4, -75.98999, -34.09999, 0.04662, 5, -149.99, -34.09999, 0.00194, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54593, 3, -38.99, -34.09999, 0.14101, 4, -112.98999, -34.09999, 0.01162, 5, -186.99, -34.09999, 2.3E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39737, 3, -75.98999, -34.09999, 0.04662, 4, -149.99, -34.09999, 0.00194, 4, 1, 35, -34.09999, 0.77977, 2, -38.99, -34.09999, 0.20825, 3, -112.98999, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.3E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.98999, -34.09999, 0.10695, 3, -149.99, -34.09999, 0.0027, 3, 1, -1.99, -0.1, 0.9264, 2, -75.98999, -0.1, 0.07271, 3, -149.99, -0.1, 8.5E-4, 3, 1, -1.99, 33.88999, 0.89032, 2, -75.98999, 33.88999, 0.10695, 3, -149.99, 33.88999, 0.0027, 4, 1, 35, 33.88999, 0.77977, 2, -38.99, 33.88999, 0.20825, 3, -112.98999, 33.88999, 0.01171, 4, -186.99, 33.88999, 2.3E-4, 4, 1, 72, 33.88999, 0.55403, 2, -1.99, 33.88999, 0.39737, 3, -75.98999, 33.88999, 0.04662, 4, -149.99, 33.88999, 0.00194, 5, 1, 109, 33.88999, 0.30116, 2, 35, 33.88999, 0.54593, 3, -38.99, 33.88999, 0.14101, 4, -112.98999, 33.88999, 0.01162, 5, -186.99, 33.88999, 2.3E-4, 5, 1, 146, 33.88999, 0.1274, 2, 72, 33.88999, 0.51232, 3, -1.99, 33.88999, 0.31165, 4, -75.98999, 33.88999, 0.04662, 5, -149.99, 33.88999, 0.00194, 6, 1, 183, 33.88999, 0.04058, 2, 109, 33.88999, 0.31966, 3, 35, 33.88999, 0.48684, 4, -38.99, 33.88999, 0.14101, 5, -112.98999, 33.88999, 0.01162, 6, -186.99, 33.88999, 2.3E-4, 6, 1, 220, 33.88999, 0.01032, 2, 146, 33.88999, 0.14256, 3, 72, 33.88999, 0.48684, 4, -1.99, 33.88999, 0.31165, 5, -75.98999, 33.88999, 0.04662, 6, -149.99, 33.88999, 0.00194, 7, 1, 257, 33.88999, 0.0017, 2, 183, 33.88999, 0.04687, 3, 109, 33.88999, 0.31165, 4, 35, 33.88999, 0.48684, 5, -38.99, 33.88999, 0.14101, 6, -112.98999, 33.88999, 0.01162, 7, -186.99, 33.88999, 2.3E-4, 7, 1, 294, 33.88999, 2.3E-4, 2, 220, 33.88999, 0.01162, 3, 146, 33.88999, 0.14101, 4, 72, 33.88999, 0.48684, 5, -1.99, 33.88999, 0.31165, 6, -75.98999, 33.88999, 0.04662, 7, -149.99, 33.88999, 0.00194, 7, 2, 257, 33.88999, 0.00194, 3, 183, 33.88999, 0.04662, 4, 109, 33.88999, 0.31165, 5, 35, 33.88999, 0.48684, 6, -38.99, 33.88999, 0.14101, 7, -112.98999, 33.88999, 0.01162, 8, -186.99, 33.88999, 2.3E-4, 7, 2, 294, 33.88999, 2.3E-4, 3, 220, 33.88999, 0.01162, 4, 146, 33.88999, 0.14101, 5, 72, 33.88999, 0.48684, 6, -1.99, 33.88999, 0.31165, 7, -75.98999, 33.88999, 0.04662, 8, -149.99, 33.88999, 0.00194, 7, 3, 257, 33.88999, 0.00194, 4, 183, 33.88999, 0.04662, 5, 109, 33.88999, 0.31165, 6, 35, 33.88999, 0.48684, 7, -38.99, 33.88999, 0.14101, 8, -112.98999, 33.88999, 0.01162, 9, -186.99, 33.88999, 2.3E-4, 7, 3, 294, 33.88999, 2.3E-4, 4, 220, 33.88999, 0.01162, 5, 146, 33.88999, 0.14101, 6, 72, 33.88999, 0.48684, 7, -1.99, 33.88999, 0.31165, 8, -75.98999, 33.88999, 0.04662, 9, -149.99, 33.88999, 0.00194, 7, 4, 257, 33.88999, 0.00194, 5, 183, 33.88999, 0.04662, 6, 109, 33.88999, 0.31165, 7, 35, 33.88999, 0.48684, 8, -38.99, 33.88999, 0.14101, 9, -112.98999, 33.88999, 0.01162, 10, -186.99, 33.88999, 2.3E-4, 7, 4, 294, 33.88999, 2.3E-4, 5, 220, 33.88999, 0.01162, 6, 146, 33.88999, 0.14101, 7, 72, 33.88999, 0.48684, 8, -1.99, 33.88999, 0.31165, 9, -75.98999, 33.88999, 0.04662, 10, -149.99, 33.88999, 0.00194, 7, 5, 257, 33.88999, 0.00194, 6, 183, 33.88999, 0.04662, 7, 109, 33.88999, 0.31165, 8, 35, 33.88999, 0.48684, 9, -38.99, 33.88999, 0.14101, 10, -112.98999, 33.88999, 0.01162, 11, -186.99, 33.88999, 2.3E-4, 7, 5, 294, 33.88999, 2.3E-4, 6, 220, 33.88999, 0.01162, 7, 146, 33.88999, 0.14101, 8, 72, 33.88999, 0.48684, 9, -1.99, 33.88999, 0.31165, 10, -75.98999, 33.88999, 0.04662, 11, -149.99, 33.88999, 0.00194, 7, 6, 257, 33.88999, 0.00194, 7, 183, 33.88999, 0.04662, 8, 109, 33.88999, 0.31165, 9, 35, 33.88999, 0.48684, 10, -38.99, 33.88999, 0.14101, 11, -112.98999, 33.88999, 0.01162, 12, -186.99, 33.88999, 2.3E-4, 7, 6, 294, 33.88999, 2.3E-4, 7, 220, 33.88999, 0.01162, 8, 146, 33.88999, 0.14101, 9, 72, 33.88999, 0.48684, 10, -1.99, 33.88999, 0.31165, 11, -75.98999, 33.88999, 0.04662, 12, -149.99, 33.88999, 0.00194, 7, 7, 257, 33.88999, 0.00194, 8, 183, 33.88999, 0.04662, 9, 109, 33.88999, 0.31165, 10, 35, 33.88999, 0.48684, 11, -38.99, 33.88999, 0.14101, 12, -112.98999, 33.88999, 0.01162, 13, -186.99, 33.88999, 2.3E-4, 7, 7, 294, 33.88999, 2.3E-4, 8, 220, 33.88999, 0.01162, 9, 146, 33.88999, 0.14101, 10, 72, 33.88999, 0.48684, 11, -1.99, 33.88999, 0.31165, 12, -75.98999, 33.88999, 0.04662, 13, -149.99, 33.88999, 0.00194, 6, 8, 257, 33.88999, 0.00194, 9, 183, 33.88999, 0.04662, 10, 109, 33.88999, 0.31165, 11, 35, 33.88999, 0.48684, 12, -38.99, 33.88999, 0.14101, 13, -112.98999, 33.88999, 0.01188, 6, 8, 294, 33.88999, 2.3E-4, 9, 220, 33.88999, 0.01162, 10, 146, 33.88999, 0.14101, 11, 72, 33.88999, 0.48684, 12, -1.99, 33.88999, 0.31174, 13, -75.98999, 33.88999, 0.0485, 5, 9, 257, 33.88999, 0.00194, 10, 183, 33.88999, 0.04662, 11, 109, 33.88999, 0.31165, 12, 35, 33.88999, 0.48761, 13, -38.99, 33.88999, 0.15212, 5, 9, 294, 33.88999, 2.3E-4, 10, 220, 33.88999, 0.01162, 11, 146, 33.88999, 0.14109, 12, 72, 33.88999, 0.49171, 13, -1.99, 33.88999, 0.3553, 4, 10, 257, 33.88999, 0.00194, 11, 183, 33.88999, 0.04738, 12, 109, 33.88999, 0.33351, 13, 35, 33.88999, 0.61713, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31657, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00541, 11, 146, -0.1, 0.11401, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33272, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03044, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00541, 10, 146, -0.1, 0.11401, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.98999, -0.1, 0.03109, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03044, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11401, 13, -112.98999, -0.1, 0.00541, 6, 8, 220, -0.1, 0.00541, 9, 146, -0.1, 0.11401, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.98999, -0.1, 0.03044, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03044, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11401, 12, -112.98999, -0.1, 0.00541, 6, 7, 220, -0.1, 0.00541, 8, 146, -0.1, 0.11401, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.98999, -0.1, 0.03044, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03044, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11401, 11, -112.98999, -0.1, 0.00541, 6, 6, 220, -0.1, 0.00541, 7, 146, -0.1, 0.11401, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.98999, -0.1, 0.03044, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03044, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11401, 10, -112.98999, -0.1, 0.00541, 6, 5, 220, -0.1, 0.00541, 6, 146, -0.1, 0.11401, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.98999, -0.1, 0.03044, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03044, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11401, 9, -112.98999, -0.1, 0.00541, 6, 4, 220, -0.1, 0.00541, 5, 146, -0.1, 0.11401, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.98999, -0.1, 0.03044, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03044, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11401, 8, -112.98999, -0.1, 0.00541, 6, 3, 220, -0.1, 0.00541, 4, 146, -0.1, 0.11401, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.98999, -0.1, 0.03044, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03044, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11401, 7, -112.98999, -0.1, 0.00541, 6, 2, 220, -0.1, 0.00541, 3, 146, -0.1, 0.11401, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.98999, -0.1, 0.03044, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03044, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11401, 6, -112.98999, -0.1, 0.00541, 6, 1, 220, -0.1, 0.00476, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.98999, -0.1, 0.03044, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11401, 5, -112.98999, -0.1, 0.00541, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.98999, -0.1, 0.03044, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11401, 4, -112.98999, -0.1, 0.00541, 4, 1, 72, -0.1, 0.55928, 2, -1.99, -0.1, 0.40959, 3, -75.98999, -0.1, 0.03044, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81844, 2, -38.99, -0.1, 0.1761, 3, -112.98999, -0.1, 0.00541 ], "hull": 56, "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], "width": 68, @@ -51,7 +59,7 @@ "type": "path", "lengths": [ 223.68, 474.79, 780.31, 992.69, 1196.43, 2277.75 ], "vertexCount": 18, - "vertices": [ 1, 14, -31.64, 22.49, 1, 1, 14, -2.73, -6.56, 1, 1, 14, 56.89, -69, 1, 1, 14, 115.57, 75.01, 1, 1, 14, 198.6, 53.37, 1, 2, 14, 332.76, 19.74, 0.8, 15, 36.41, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.232, 15, -21.1, -68.01999, 0.76799, 1, 15, 96.09, -93.88, 1, 2, 15, 229.75, -122.63, 0.664, 16, -63.18, -122.45, 0.33599, 2, 15, 242.53, 29.31, 0.52, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.42, 47.85, 0.80799, 17, -63.65, 48.41, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.56, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.81, 6.41, 0.784, 1, 17, 138.78, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.02, 1 ] + "vertices": [ 1, 14, -31.63999, 22.48999, 1, 1, 14, -2.73, -6.55999, 1, 1, 14, 56.88999, -69, 1, 1, 14, 115.56999, 75.01, 1, 1, 14, 198.6, 53.36999, 1, 2, 14, 332.76, 19.73999, 0.8, 15, 36.40999, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.23199, 15, -21.1, -68.01999, 0.76798, 1, 15, 96.08999, -93.87999, 1, 2, 15, 229.75, -122.62999, 0.66399, 16, -63.18, -122.44999, 0.33599, 2, 15, 242.52998, 29.30999, 0.51999, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.41998, 47.84999, 0.80799, 17, -63.65, 48.40999, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.55999, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.80999, 6.40999, 0.78399, 1, 17, 138.77998, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.01999, 1 ] } } } @@ -110,7 +118,7 @@ "angle": 5.65, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": 1.35 } + { "time": 7.5999, "angle": 1.35 } ], "scale": [ { @@ -126,7 +134,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.568, 0.99 ] @@ -151,7 +159,7 @@ "angle": -8.18, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.96 } + { "time": 7.5999, "angle": -0.96 } ], "scale": [ { @@ -167,7 +175,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -197,7 +205,7 @@ "angle": -15.24, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.16 } + { "time": 7.5999, "angle": -0.16 } ], "scale": [ { @@ -213,7 +221,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -243,7 +251,7 @@ "angle": 15.02, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.5 } + { "time": 7.5999, "angle": -0.5 } ], "scale": [ { @@ -259,7 +267,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] diff --git a/examples/vine/export/vine.skel b/examples/vine/export/vine.skel index 18d4e53dc59943e2cb81792ae04cf77d5ba2ef7c..db374aa4330f0928b7e5d512f825ad3f023fa439 100644 GIT binary patch delta 172 zcmZ1yFekuN#wW?5GOe&UEu_>fGpHmhBcR+gsw%`apdvGy$5_u)&%jtWDYYcgIXNWE zCCJ5z(eVQV!$cheMuv%T+CZWkMCWKf3_^Wk)B&lKX980`5ULVFEn_kU X$=!lbe9T~;6ND;bw%NRyIa37yb5$rT diff --git a/spine-as3/spine-as3-example/lib/spine-as3.swc b/spine-as3/spine-as3-example/lib/spine-as3.swc index a7714771ffd0066196c623adfacc5eba2f51ae66..00486d2a27d5195154c44c4c2011278dcfe1823d 100644 GIT binary patch literal 86016 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У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 literal 74419 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 0) sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritScale) break; - parent = parent.parent; - } while (parent != null); - _a = pa * la + pb * lc; - _b = pa * lb + pb * ld; - _c = pc * la + pd * lc; - _d = pc * lb + pd * ld; + return; + } + case TransformMode.onlyTranslation: { + rotationY = rotation + 90 + shearY; + _a = MathUtils.cosDeg(rotation + shearX) * scaleX; + _b = MathUtils.cosDeg(rotationY) * scaleY; + _c = MathUtils.sinDeg(rotation + shearX) * scaleX; + _d = MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case TransformMode.noRotationOrReflection: { + s = pa * pa + pc * pc; + var prx:Number = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * MathUtils.radDeg; } else { - _a = la; - _b = lb; - _c = lc; - _d = ld; + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg; } - if (_skeleton.flipX) { - _a = -_a; + var rx:Number = rotation + shearX - prx; + var ry:Number = rotation + shearY - prx + 90; + la = MathUtils.cosDeg(rx) * scaleX; + lb = MathUtils.cosDeg(ry) * scaleY; + lc = MathUtils.sinDeg(rx) * scaleX; + ld = MathUtils.sinDeg(ry) * scaleY; + _a = pa * la - pb * lc; + _b = pa * lb - pb * ld; + _c = pc * la + pd * lc; + _d = pc * lb + pd * ld; + break; + } + case TransformMode.noScale: + case TransformMode.noScaleOrReflection: { + cos = MathUtils.cosDeg(rotation); + sin = MathUtils.sinDeg(rotation); + var za:Number = pa * cos + pb * sin; + var zc:Number = pc * cos + pd * sin; + 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:Number = Math.PI / 2 + Math.atan2(zc, za); + var zb:Number = Math.cos(r) * s; + var zd:Number = Math.sin(r) * s; + la = MathUtils.cosDeg(shearX) * scaleX; + lb = MathUtils.cosDeg(90 + shearY) * scaleY; + lc = MathUtils.sinDeg(shearX) * scaleX; + ld = MathUtils.sinDeg(90 + shearY) * scaleY; + _a = za * la + zb * lc; + _b = za * lb + zb * ld; + _c = zc * la + zd * lc; + _d = zc * lb + zd * ld; + if (_data.transformMode != TransformMode.noScaleOrReflection ? pa * pd - pb * pc < 0 : skeleton.flipX != skeleton.flipY) { _b = -_b; - } - if (_skeleton.flipY != yDown) { - _c = -_c; _d = -_d; } + return; + } + } + if (_skeleton.flipX) { + _a = -_a; + _b = -_b; + } + if (_skeleton.flipY != yDown) { + _c = -_c; + _d = -_d; } } @@ -240,14 +263,6 @@ public class Bone implements Updatable { return _worldY; } - public function get worldSignX () : Number { - return _worldSignX; - } - - public function get worldSignY () : Number { - return _worldSignY; - } - public function get worldRotationX () : Number { return Math.atan2(_c, _a) * MathUtils.radDeg; } @@ -257,23 +272,23 @@ public class Bone implements Updatable { } public function get worldScaleX () : Number { - return Math.sqrt(_a * _a + _b * _b) * _worldSignX; + return Math.sqrt(_a * _a + _c * _c); } public function get worldScaleY () : Number { - return Math.sqrt(_c * _c + _d * _d) * _worldSignY; + return Math.sqrt(_b * _b + _d * _d); } public function worldToLocalRotationX () : Number { var parent:Bone = _parent; - if (parent == null) return rotation; + if (parent == null) return arotation; var pa:Number = parent.a, pb:Number = parent.b, pc:Number = parent.c, pd:Number = parent.d, a:Number = this.a, c:Number = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * MathUtils.radDeg; } public function worldToLocalRotationY () : Number { var parent:Bone = _parent; - if (parent == null) return rotation; + if (parent == null) return arotation; var pa:Number = parent.a, pb:Number = parent.b, pc:Number = parent.c, pd:Number = parent.d, b:Number = this.b, d:Number = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * MathUtils.radDeg; } @@ -285,31 +300,31 @@ public class Bone implements Updatable { this._b = cos * b - sin * d; this._c = sin * a + cos * c; this._d = sin * b + cos * d; + this.appliedValid = false; } - /** Computes the local transform from the world transform. This can be useful to perform processing on the local transform - * after the world transform has been modified directly (eg, by a constraint). + /** Computes the individual applied transform values from the world transform. This can be useful to perform processing using + * the applied transform after the world transform has been modified directly (eg, by a constraint). *

- * Some redundant information is lost by the world transform, such as -1,-1 scale versus 180 rotation. The computed local - * transform values may differ from the original values but are functionally the same. */ - public function updateLocalTransform () : void { + * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. */ + internal function updateAppliedTransform () : void { + appliedValid = true; var parent:Bone = this.parent; if (parent == null) { - x = worldX; - y = worldY; - rotation = Math.atan2(c, a) * MathUtils.radDeg; - scaleX = Math.sqrt(a * a + c * c); - scaleY = Math.sqrt(b * b + d * d); - var det:Number = a * d - b * c; - shearX = 0; - shearY = Math.atan2(a * b + c * d, det) * MathUtils.radDeg; + ax = worldX; + ay = worldY; + arotation = Math.atan2(c, a) * MathUtils.radDeg; + ascaleX = Math.sqrt(a * a + c * c); + ascaleY = Math.sqrt(b * b + d * d); + ashearX = 0; + ashearY = Math.atan2(a * b + c * d, a * d - b * c) * MathUtils.radDeg; return; } var pa:Number = parent.a, pb:Number = parent.b, pc:Number = parent.c, pd:Number = parent.d; var pid:Number = 1 / (pa * pd - pb * pc); var dx:Number = worldX - parent.worldX, dy:Number = worldY - parent.worldY; - x = (dx * pd * pid - dy * pb * pid); - y = (dy * pa * pid - dx * pc * pid); + ax = (dx * pd * pid - dy * pb * pid); + ay = (dy * pa * pid - dx * pc * pid); var ia:Number = pid * pd; var id:Number = pid * pa; var ib:Number = pid * pb; @@ -318,20 +333,19 @@ public class Bone implements Updatable { var rb:Number = ia * b - ib * d; var rc:Number = id * c - ic * a; var rd:Number = id * d - ic * b; - shearX = 0; - scaleX = Math.sqrt(ra * ra + rc * rc); + ashearX = 0; + ascaleX = Math.sqrt(ra * ra + rc * rc); if (scaleX > 0.0001) { - det = ra * rd - rb * rc; - scaleY = det / scaleX; - shearY = Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; - rotation = Math.atan2(rc, ra) * MathUtils.radDeg; + var det:Number = ra * rd - rb * rc; + ascaleY = det /ascaleX; + ashearY = Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; + arotation = Math.atan2(rc, ra) * MathUtils.radDeg; } else { - scaleX = 0; - scaleY = Math.sqrt(rb * rb + rd * rd); - shearY = 0; - rotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; - } - appliedRotation = rotation; + ascaleX = 0; + ascaleY = Math.sqrt(rb * rb + rd * rd); + ashearY = 0; + arotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; + } } public function worldToLocal (world:Vector.) : void { diff --git a/spine-as3/spine-as3/src/spine/BoneData.as b/spine-as3/spine-as3/src/spine/BoneData.as index 71bffeae7..c188fc339 100644 --- a/spine-as3/spine-as3/src/spine/BoneData.as +++ b/spine-as3/spine-as3/src/spine/BoneData.as @@ -42,8 +42,7 @@ public class BoneData { public var scaleY:Number = 1; public var shearX:Number; public var shearY:Number; - public var inheritRotation:Boolean = true; - public var inheritScale:Boolean = true; + public var transformMode:TransformMode = TransformMode.normal; /** @param parent May be null. */ public function BoneData (index:int, name:String, parent:BoneData) { diff --git a/spine-as3/spine-as3/src/spine/Constraint.as b/spine-as3/spine-as3/src/spine/Constraint.as new file mode 100644 index 000000000..14a2995af --- /dev/null +++ b/spine-as3/spine-as3/src/spine/Constraint.as @@ -0,0 +1,37 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine { + +public interface Constraint extends Updatable { + function getOrder () : Number; +} + +} diff --git a/spine-as3/spine-as3/src/spine/IkConstraint.as b/spine-as3/spine-as3/src/spine/IkConstraint.as index cdfb52611..b5d9cdf5e 100644 --- a/spine-as3/spine-as3/src/spine/IkConstraint.as +++ b/spine-as3/spine-as3/src/spine/IkConstraint.as @@ -30,14 +30,12 @@ package spine { -public class IkConstraint implements Updatable { +public class IkConstraint implements Constraint { internal var _data:IkConstraintData; public var bones:Vector.; public var target:Bone; public var mix:Number; public var bendDirection:int; - - public var level:int; public function IkConstraint (data:IkConstraintData, skeleton:Skeleton) { if (data == null) throw new ArgumentError("data cannot be null."); @@ -66,6 +64,10 @@ public class IkConstraint implements Updatable { break; } } + + public function getOrder() : Number { + return _data.order; + } public function get data () : IkConstraintData { return _data; @@ -78,17 +80,18 @@ public class IkConstraint implements Updatable { /** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world * coordinate system. */ static public function apply1 (bone:Bone, targetX:Number, targetY:Number, alpha:Number) : void { - var pp:Bone = bone.parent; - var id:Number = 1 / (pp.a * pp.d - pp.b * pp.c); - var x:Number = targetX - pp.worldX, y:Number = targetY - pp.worldY; - var tx:Number = (x * pp.d - y * pp.b) * id - bone.x, ty:Number = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK:Number = Math.atan2(ty, tx) * MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) rotationIK += 180; + if (!bone.appliedValid) bone.updateAppliedTransform(); + var p:Bone = bone.parent; + var id:Number = 1 / (p.a * p.d - p.b * p.c); + var x:Number = targetX - p.worldX, y:Number = targetY - p.worldY; + var tx:Number = (x * p.d - y * p.b) * id - bone.ax, ty:Number = (y * p.a - x * p.c) * id - bone.ay; + var rotationIK:Number = Math.atan2(ty, tx) * 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, - bone.shearY); + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, + bone.ashearY); } /** Adjusts the parent and child bone rotations so the tip of the child is as close to the target position as possible. The @@ -99,7 +102,9 @@ public class IkConstraint implements Updatable { child.updateWorldTransform(); return; } - var px:Number = parent.x, py:Number = parent.y, psx:Number = parent.scaleX, psy:Number = parent.scaleY, csx:Number = child.scaleX;; + if (!parent.appliedValid) parent.updateAppliedTransform(); + if (!child.appliedValid) child.updateAppliedTransform(); + var px:Number = parent.ax, py:Number = parent.ay, psx:Number = parent.ascaleX, psy:Number = parent.ascaleY, csx:Number = child.ascaleX; var os1:int, os2:int, s2:int; if (psx < 0) { psx = -psx; @@ -118,14 +123,14 @@ public class IkConstraint implements Updatable { os2 = 180; } else os2 = 0; - var cx:Number = child.x, cy:Number, cwx:Number, cwy:Number, a:Number = parent.a, b:Number = parent.b, c:Number = parent.c, d:Number = parent.d; + var cx:Number = child.ax, cy:Number, cwx:Number, cwy:Number, a:Number = parent.a, b:Number = parent.b, c:Number = parent.c, d:Number = parent.d; var u:Boolean = Math.abs(psx - psy) <= 0.0001; if (!u) { cy = 0; cwx = a * cx + parent.worldX; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -212,18 +217,18 @@ public class IkConstraint implements Updatable { } } var os:Number = Math.atan2(cy, cx) * s2; - var rotation:Number = parent.rotation; + var rotation:Number = parent.arotation; a1 = (a1 - os) * MathUtils.radDeg + os1 - rotation; if (a1 > 180) a1 -= 360; else if (a1 < -180) a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); } } diff --git a/spine-as3/spine-as3/src/spine/IkConstraintData.as b/spine-as3/spine-as3/src/spine/IkConstraintData.as index 92dfcdf3b..63ed31361 100644 --- a/spine-as3/spine-as3/src/spine/IkConstraintData.as +++ b/spine-as3/spine-as3/src/spine/IkConstraintData.as @@ -32,6 +32,7 @@ package spine { public class IkConstraintData { internal var _name:String; + public var order:Number; public var bones:Vector. = new Vector.(); public var target:BoneData; public var bendDirection:int = 1; diff --git a/spine-as3/spine-as3/src/spine/MathUtils.as b/spine-as3/spine-as3/src/spine/MathUtils.as index eea1da167..bf05ba406 100644 --- a/spine-as3/spine-as3/src/spine/MathUtils.as +++ b/spine-as3/spine-as3/src/spine/MathUtils.as @@ -47,6 +47,10 @@ public class MathUtils { if (value > max) return max; return value; } + + static public function signum (value: Number):Number { + return value > 0 ? 1 : value < 0 ? -1 : 0; + } } } diff --git a/spine-as3/spine-as3/src/spine/PathConstraint.as b/spine-as3/spine-as3/src/spine/PathConstraint.as index e68ae6e9e..61f84a3b8 100644 --- a/spine-as3/spine-as3/src/spine/PathConstraint.as +++ b/spine-as3/spine-as3/src/spine/PathConstraint.as @@ -31,7 +31,7 @@ package spine { import spine.attachments.PathAttachment; -public class PathConstraint implements Updatable { +public class PathConstraint implements Constraint { private static const NONE:int = -1, BEFORE:int = -2, AFTER:int = -3; internal var _data:PathConstraintData; @@ -100,16 +100,21 @@ public class PathConstraint implements Updatable { } var positions:Vector. = computeWorldPositions(attachment, spacesCount, tangents, - data.positionMode == PositionMode.percent, spacingMode == SpacingMode.percent); - var skeleton:Skeleton = target.skeleton; - var skeletonX:Number = skeleton.x, skeletonY:Number = skeleton.y; + data.positionMode == PositionMode.percent, spacingMode == SpacingMode.percent); var boneX:Number = positions[0], boneY:Number = positions[1], offsetRotation:Number = data.offsetRotation; - var tip:Boolean = rotateMode == RotateMode.chain && offsetRotation == 0; + var tip:Boolean = false; + if (offsetRotation == 0) + tip = rotateMode == RotateMode.chain; + else { + tip = false; + var pa:Bone = target.bone; + offsetRotation *= pa.a * pa.d - pa.b * pa.c > 0 ? MathUtils.degRad : -MathUtils.degRad; + } var p:Number; for (i = 0, p = 3; i < boneCount; i++, p += 3) { bone = bones[i]; - bone._worldX += (boneX - skeletonX - bone.worldX) * translateMix; - bone._worldY += (boneY - skeletonY - bone.worldY) * translateMix; + bone._worldX += (boneX - bone.worldX) * translateMix; + bone._worldY += (boneY - bone.worldY) * translateMix; x = positions[p]; y = positions[p + 1]; var dx:Number = x - boneX, dy:Number = y - boneY; if (scale) { length = lengths[i]; @@ -129,13 +134,15 @@ public class PathConstraint implements Updatable { r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); length = bone.data.length; boneX += (length * (cos * a - sin * c) - dx) * rotateMix; boneY += (length * (sin * a + cos * c) - dy) * rotateMix; + } else { + r += offsetRotation; } if (r > Math.PI) r -= (Math.PI * 2); @@ -149,6 +156,7 @@ public class PathConstraint implements Updatable { bone._c = sin * a + cos * c; bone._d = sin * b + cos * d; } + bone.appliedValid = false; } } @@ -394,7 +402,7 @@ public class PathConstraint implements Updatable { private function addCurvePosition (p:Number, x1:Number, y1:Number, cx1:Number, cy1:Number, cx2:Number, cy2:Number, x2:Number, y2:Number, out:Vector., o:int, tangents:Boolean) : void { - if (p == 0) p = 0.0001; + if (p == 0 || isNaN(p)) p = 0.0001; var tt:Number = p * p, ttt:Number = tt * p, u:Number = 1 - p, uu:Number = u * u, uuu:Number = uu * u; var ut:Number = u * p, ut3:Number = ut * 3, uut3:Number = u * ut3, utt3:Number = ut3 * p; var x:Number = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y:Number = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; @@ -410,6 +418,10 @@ public class PathConstraint implements Updatable { public function get data () : PathConstraintData { return _data; } + + public function getOrder () : Number { + return _data.order; + } public function toString () : String { return _data.name; diff --git a/spine-as3/spine-as3/src/spine/PathConstraintData.as b/spine-as3/spine-as3/src/spine/PathConstraintData.as index 5c9c0f049..a1d29cbdf 100644 --- a/spine-as3/spine-as3/src/spine/PathConstraintData.as +++ b/spine-as3/spine-as3/src/spine/PathConstraintData.as @@ -32,6 +32,7 @@ package spine { public dynamic class PathConstraintData { internal var _name:String; + public var order:Number; internal var _bones:Vector. = new Vector.(); public var target:SlotData; public var positionMode:PositionMode; diff --git a/spine-unity/Assets/spine-unity/SkeletonUtility/Editor/SkeletonUtilitySubmeshRendererInspector.cs b/spine-as3/spine-as3/src/spine/Pool.as similarity index 71% rename from spine-unity/Assets/spine-unity/SkeletonUtility/Editor/SkeletonUtilitySubmeshRendererInspector.cs rename to spine-as3/spine-as3/src/spine/Pool.as index 979e62455..8ac2af62f 100644 --- a/spine-unity/Assets/spine-unity/SkeletonUtility/Editor/SkeletonUtilitySubmeshRendererInspector.cs +++ b/spine-as3/spine-as3/src/spine/Pool.as @@ -1,49 +1,60 @@ -/****************************************************************************** - * 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.Editor; - -namespace Spine.Unity.Modules { - [CustomEditor(typeof(SkeletonUtilitySubmeshRenderer))] - public class SkeletonUtilitySubmeshRendererInspector : UnityEditor.Editor { - public SpineInspectorUtility.SerializedSortingProperties sorting; - - void OnEnable () { - sorting = new SpineInspectorUtility.SerializedSortingProperties((target as Component).GetComponent()); - } - - public override void OnInspectorGUI () { - EditorGUILayout.HelpBox("SkeletonUtilitySubmeshRenderer is now obsolete. We recommend using SkeletonRenderSeparator.", MessageType.Info); - SpineInspectorUtility.SortingPropertyFields(sorting, true); - } - } -} +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine { + +public class Pool { + internal var items:Vector. = new Vector.(); + internal var instantiator:Function; + + public function Pool(instantiator:Function) { + this.instantiator = instantiator; + } + + public function obtain (): Object { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + } + + public function free (item:Object):void { + if (item is Poolable) Poolable(item).reset(); + items.push(item); + } + + public function freeAll (items:Vector):void { + for (var i:int = 0; i < items.length; i++) { + free(items[i]); + } + } + + public function clear ():void { + items.length = 0; + } +} +} \ No newline at end of file diff --git a/spine-as3/spine-as3/src/spine/Poolable.as b/spine-as3/spine-as3/src/spine/Poolable.as new file mode 100644 index 000000000..9abbb3325 --- /dev/null +++ b/spine-as3/spine-as3/src/spine/Poolable.as @@ -0,0 +1,5 @@ +package spine { +public interface Poolable { + function reset ():void; +} +} \ No newline at end of file diff --git a/spine-as3/spine-as3/src/spine/Skeleton.as b/spine-as3/spine-as3/src/spine/Skeleton.as index dd755a8b0..61478f883 100644 --- a/spine-as3/spine-as3/src/spine/Skeleton.as +++ b/spine-as3/spine-as3/src/spine/Skeleton.as @@ -38,10 +38,11 @@ public class Skeleton { public var bones:Vector.; public var slots:Vector.; public var drawOrder:Vector.; - public var ikConstraints:Vector., ikConstraintsSorted:Vector.; + public var ikConstraints:Vector.; public var transformConstraints:Vector.; public var pathConstraints:Vector.; private var _updateCache:Vector. = new Vector.(); + private var _updateCacheReset:Vector. = new Vector.(); private var _skin:Skin; public var r:Number = 1, g:Number = 1, b:Number = 1, a:Number = 1; public var time:Number = 0; @@ -75,8 +76,7 @@ public class Skeleton { drawOrder[drawOrder.length] = slot; } - ikConstraints = new Vector.(); - ikConstraintsSorted = new Vector.(); + ikConstraints = new Vector.(); for each (var ikConstraintData:IkConstraintData in data.ikConstraints) ikConstraints.push(new IkConstraint(ikConstraintData, this)); @@ -98,103 +98,112 @@ public class Skeleton { updateCache.length = 0; var bones:Vector. = this.bones; - for (var i:int = 0, n:int = bones.length; i < n; i++) + var i:Number = 0; + var n:Number = 0; + for (i = 0, n = bones.length; i < n; i++) bones[i]._sorted = false; // IK first, lowest hierarchy depth first. - var ikConstraints:Vector. = this.ikConstraintsSorted; - ikConstraints.length = 0; - for each (var c:IkConstraint in this.ikConstraints) - ikConstraints.push(c); - var ikCount:int = ikConstraints.length; - var level:int; - for (i = 0, n = ikCount; i < n; i++) { - var ik:IkConstraint = ikConstraints[i]; - var bone:Bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - var ii:int; - for (i = 1; i < ikCount; i++) { - ik = ikConstraints[i]; - level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other:IkConstraint = ikConstraints[ii]; - if (other.level < level) break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint:IkConstraint = ikConstraints[i]; - var target:Bone = ikConstraint.target; - sortBone(target); - - var constrained:Vector. = ikConstraint.bones; - var parent:Bone = constrained[0]; - sortBone(parent); - - updateCache.push(ikConstraint); - - sortReset(parent.children); - constrained[constrained.length - 1]._sorted = true; - } - - var pathConstraints:Vector. = this.pathConstraints; - for (i = 0, n = pathConstraints.length; i < n; i++) { - var pathConstraint:PathConstraint = pathConstraints[i]; - - var slot:Slot = pathConstraint.target; - var slotIndex:int = slot.data.index; - var slotBone:Bone = slot.bone; - if (skin != null) sortPathConstraintAttachment(skin, slotIndex, slotBone); - if (_data.defaultSkin != null && _data.defaultSkin != skin) - sortPathConstraintAttachment(_data.defaultSkin, slotIndex, slotBone); - - var nn:int; - for (ii = 0, nn = _data.skins.length; ii < nn; ii++) - sortPathConstraintAttachment(_data.skins[ii], slotIndex, slotBone); - - var attachment:PathAttachment = slot.attachment as PathAttachment; - if (attachment != null) sortPathConstraintAttachment2(attachment, slotBone); - - constrained = pathConstraint.bones; - var boneCount:int = constrained.length; - for (ii = 0; ii < boneCount; ii++) - sortBone(constrained[ii]); - - updateCache.push(pathConstraint); - - for (ii = 0; ii < boneCount; ii++) - sortReset(constrained[ii].children); - for (ii = 0; ii < boneCount; ii++) - constrained[ii]._sorted = true; - } - + var ikConstraints:Vector. = this.ikConstraints; var transformConstraints:Vector. = this.transformConstraints; - for (i = 0, n = transformConstraints.length; i < n; i++) { - var transformConstraint:TransformConstraint = transformConstraints[i]; - - sortBone(transformConstraint.target); - - constrained = transformConstraint.bones; - boneCount = constrained.length; - for (ii = 0; ii < boneCount; ii++) - sortBone(constrained[ii]); - - updateCache.push(transformConstraint); - - for (ii = 0; ii < boneCount; ii++) - sortReset(constrained[ii].children); - for (ii = 0; ii < boneCount; ii++) - constrained[ii]._sorted = true; + var pathConstraints:Vector. = this.pathConstraints; + var ikCount:Number = ikConstraints.length, transformCount:Number = transformConstraints.length, pathCount:Number = pathConstraints.length; + var constraintCount:Number = ikCount + transformCount + pathCount; + + outer: + for (i = 0; i < constraintCount; i++) { + var ii:Number = 0; + for (ii = 0; ii < ikCount; ii++) { + var ikConstraint:IkConstraint = ikConstraints[ii]; + if (ikConstraint.data.order == i) { + sortIkConstraint(ikConstraint); + continue outer; + } + } + for (ii = 0; ii < transformCount; ii++) { + var transformConstraint:TransformConstraint = transformConstraints[ii]; + if (transformConstraint.data.order == i) { + sortTransformConstraint(transformConstraint); + continue outer; + } + } + for (ii = 0; ii < pathCount; ii++) { + var pathConstraint:PathConstraint = pathConstraints[ii]; + if (pathConstraint.data.order == i) { + sortPathConstraint(pathConstraint); + continue outer; + } + } } - + for (i = 0, n = bones.length; i < n; i++) sortBone(bones[i]); } + private function sortIkConstraint (constraint:IkConstraint): void { + var target:Bone = constraint.target; + sortBone(target); + + var constrained:Vector. = constraint.bones; + var parent:Bone = constrained[0]; + sortBone(parent); + + if (constrained.length > 1) { + var child:Bone = constrained[constrained.length - 1]; + if (!(_updateCache.indexOf(child) > -1)) _updateCacheReset.push(child); + } + + _updateCache.push(constraint); + + sortReset(parent.children); + constrained[constrained.length - 1]._sorted = true; + } + + private function sortPathConstraint (constraint:PathConstraint): void { + var slot:Slot = constraint.target; + var slotIndex:Number = slot.data.index; + var slotBone:Bone = slot.bone; + if (skin != null) sortPathConstraintAttachment(skin, slotIndex, slotBone); + if (data.defaultSkin != null && data.defaultSkin != skin) + sortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); + var ii:Number = 0; + var nn:Number = 0; + for (ii = 0, nn = data.skins.length; ii < nn; ii++) + sortPathConstraintAttachment(data.skins[ii], slotIndex, slotBone); + + var attachment:Attachment = slot.attachment; + if (attachment is PathAttachment) sortPathConstraintAttachment2(attachment, slotBone); + + var constrained:Vector. = constraint.bones; + var boneCount:Number = constrained.length; + for (ii = 0; ii < boneCount; ii++) + sortBone(constrained[ii]); + + _updateCache.push(constraint); + + for (ii = 0; ii < boneCount; ii++) + sortReset(constrained[ii].children); + for (ii = 0; ii < boneCount; ii++) + constrained[ii]._sorted = true; + } + + private function sortTransformConstraint (constraint:TransformConstraint): void { + sortBone(constraint.target); + + var constrained:Vector. = constraint.bones; + var boneCount:Number = constrained.length; + var ii:Number = 0; + for (ii = 0; ii < boneCount; ii++) + sortBone(constrained[ii]); + + _updateCache.push(constraint); + + for (ii = 0; ii < boneCount; ii++) + sortReset(constrained[ii].children); + for (ii = 0; ii < boneCount; ii++) + constrained[ii]._sorted = true; + } + private function sortPathConstraintAttachment (skin:Skin, slotIndex:int, slotBone:Bone) : void { var dict:Dictionary = skin.attachments[slotIndex]; if (!dict) return; @@ -240,6 +249,17 @@ public class Skeleton { /** Updates the world transform for each bone and applies constraints. */ public function updateWorldTransform () : void { + var updateCacheReset:Vector. = this._updateCacheReset; + for each (var bone:Bone in updateCacheReset) { + 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; + } for each (var updatable:Updatable in _updateCache) updatable.update(); } diff --git a/spine-as3/spine-as3/src/spine/SkeletonBounds.as b/spine-as3/spine-as3/src/spine/SkeletonBounds.as index 33cc00938..663b44335 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonBounds.as +++ b/spine-as3/spine-as3/src/spine/SkeletonBounds.as @@ -68,7 +68,14 @@ public class SkeletonBounds { boundingBox.computeWorldVertices(slot, polygon.vertices); } - if (updateAabb) aabbCompute(); + if (updateAabb) + aabbCompute(); + else { + minX = Number.MIN_VALUE; + minY = Number.MIN_VALUE; + maxX = Number.MAX_VALUE; + maxY = Number.MAX_VALUE; + } } private function aabbCompute () : void { diff --git a/spine-as3/spine-as3/src/spine/SkeletonData.as b/spine-as3/spine-as3/src/spine/SkeletonData.as index af7e85d0f..152397393 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonData.as +++ b/spine-as3/spine-as3/src/spine/SkeletonData.as @@ -46,6 +46,9 @@ public class SkeletonData { public var width:Number, height:Number; public var version:String, hash:String; + public var fps:Number; + public var imagesPath:String; + public function SkeletonData () { } diff --git a/spine-as3/spine-as3/src/spine/SkeletonJson.as b/spine-as3/spine-as3/src/spine/SkeletonJson.as index 56683ea3d..a91b965b5 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonJson.as +++ b/spine-as3/spine-as3/src/spine/SkeletonJson.as @@ -89,7 +89,9 @@ public class SkeletonJson { skeletonData.hash = skeletonMap["hash"]; skeletonData.version = skeletonMap["spine"]; skeletonData.width = skeletonMap["width"] || 0; - skeletonData.height = skeletonMap["height"] || 0; + skeletonData.height = skeletonMap["height"] || 0; + skeletonData.fps = skeletonMap["fps"] || 0; + skeletonData.imagesPath = skeletonMap["images"]; } // Bones. @@ -110,8 +112,7 @@ public class SkeletonJson { boneData.scaleY = boneMap.hasOwnProperty("scaleY") ? boneMap["scaleY"] : 1; boneData.shearX = Number(boneMap["shearX"] || 0); boneData.shearY = Number(boneMap["shearY"] || 0); - boneData.inheritRotation = boneMap.hasOwnProperty("inheritRotation") ? Boolean(boneMap["inheritRotation"]) : true; - boneData.inheritScale = boneMap.hasOwnProperty("inheritScale") ? Boolean(boneMap["inheritScale"]) : true; + boneData.transformMode = TransformMode[boneMap["transform"] || "normal"]; skeletonData.bones.push(boneData); } @@ -139,6 +140,7 @@ public class SkeletonJson { // IK constraints. for each (var constraintMap:Object in root["ik"]) { var ikConstraintData:IkConstraintData = new IkConstraintData(constraintMap["name"]); + ikConstraintData.order = constraintMap["order"] || 0; for each (boneName in constraintMap["bones"]) { var bone:BoneData = skeletonData.findBone(boneName); @@ -158,6 +160,7 @@ public class SkeletonJson { // Transform constraints. for each (constraintMap in root["transform"]) { var transformConstraintData:TransformConstraintData = new TransformConstraintData(constraintMap["name"]); + transformConstraintData.order = constraintMap["order"] || 0; for each (boneName in constraintMap["bones"]) { bone = skeletonData.findBone(boneName); @@ -186,6 +189,7 @@ public class SkeletonJson { // Path constraints. for each (constraintMap in root["path"]) { var pathConstraintData:PathConstraintData = new PathConstraintData(constraintMap["name"]); + pathConstraintData.order = constraintMap["order"] || 0; for each (boneName in constraintMap["bones"]) { bone = skeletonData.findBone(boneName); @@ -249,7 +253,7 @@ public class SkeletonJson { var eventData:EventData = new EventData(eventName); eventData.intValue = eventMap["int"] || 0; eventData.floatValue = eventMap["float"] || 0; - eventData.stringValue = eventMap["string"] || null; + eventData.stringValue = eventMap["string"] || ""; skeletonData.events.push(eventData); } } diff --git a/spine-as3/spine-as3/src/spine/TransformConstraint.as b/spine-as3/spine-as3/src/spine/TransformConstraint.as index 0819358af..cff6571ff 100644 --- a/spine-as3/spine-as3/src/spine/TransformConstraint.as +++ b/spine-as3/spine-as3/src/spine/TransformConstraint.as @@ -30,7 +30,7 @@ package spine { -public class TransformConstraint implements Updatable { +public class TransformConstraint implements Constraint { internal var _data:TransformConstraintData; internal var _bones:Vector.; public var target:Bone; @@ -62,13 +62,17 @@ public class TransformConstraint implements Updatable { var rotateMix:Number = this.rotateMix, translateMix:Number = this.translateMix, scaleMix:Number = this.scaleMix, shearMix:Number = this.shearMix; var target:Bone = this.target; var ta:Number = target.a, tb:Number = target.b, tc:Number = target.c, td:Number = target.d; + var degRadReflect:Number = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + var offsetRotation:Number = data.offsetRotation * degRadReflect; + var offsetShearY:Number = data.offsetShearY * degRadReflect; var bones:Vector. = this._bones; for (var i:int = 0, n:int = bones.length; i < n; i++) { var bone:Bone = bones[i]; + var modified:Boolean = false; - if (rotateMix > 0) { + if (rotateMix != 0) { var a:Number = bone.a, b:Number = bone.b, c:Number = bone.c, d:Number = bone.d; - var r:Number = Math.atan2(tc, ta) - Math.atan2(c, a) + data.offsetRotation * MathUtils.degRad; + var r:Number = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; if (r > Math.PI) r -= Math.PI * 2; else if (r < -Math.PI) r += Math.PI * 2; @@ -78,27 +82,30 @@ public class TransformConstraint implements Updatable { bone._b = cos * b - sin * d; bone._c = sin * a + cos * c; bone._d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + if (translateMix != 0) { _temp[0] = data.offsetX; _temp[1] = data.offsetY; target.localToWorld(_temp); bone._worldX += (_temp[0] - bone.worldX) * translateMix; bone._worldY += (_temp[1] - bone.worldY) * translateMix; + modified = true; } if (scaleMix > 0) { - var bs:Number = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s:Number = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts:Number = Math.sqrt(ta * ta + tc * tc); - var s:Number = bs > 0.00001 ? (bs + (ts - bs + data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) s = (s + (ts - s + data.offsetScaleX) * scaleMix) / s; bone._a *= s; bone._c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + data.offsetScaleY) * scaleMix) / bs : 0; + if (s > 0.00001) s = (s + (ts - s + data.offsetScaleY) * scaleMix) / s; bone._b *= s; bone._d *= s; + modified = true; } if (shearMix > 0) { @@ -108,13 +115,20 @@ public class TransformConstraint implements Updatable { if (r > Math.PI) r -= Math.PI * 2; else if (r < -Math.PI) r += Math.PI * 2; - r = by + (r + data.offsetShearY * MathUtils.degRad) * shearMix; + r = by + (r + offsetShearY) * shearMix; 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; } } + + public function getOrder () : Number { + return _data.order; + } public function get data () : TransformConstraintData { return _data; diff --git a/spine-as3/spine-as3/src/spine/TransformConstraintData.as b/spine-as3/spine-as3/src/spine/TransformConstraintData.as index a9f36fd5f..52fdb9d2b 100644 --- a/spine-as3/spine-as3/src/spine/TransformConstraintData.as +++ b/spine-as3/spine-as3/src/spine/TransformConstraintData.as @@ -32,6 +32,7 @@ package spine { public class TransformConstraintData { internal var _name:String; + public var order:Number; internal var _bones:Vector. = new Vector.(); public var target:BoneData; public var rotateMix:Number; diff --git a/spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtilitySubmeshRenderer.cs b/spine-as3/spine-as3/src/spine/TransformMode.as similarity index 62% rename from spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtilitySubmeshRenderer.cs rename to spine-as3/spine-as3/src/spine/TransformMode.as index 5dec4d2a7..55a098015 100644 --- a/spine-unity/Assets/spine-unity/SkeletonUtility/SkeletonUtilitySubmeshRenderer.cs +++ b/spine-as3/spine-as3/src/spine/TransformMode.as @@ -28,44 +28,14 @@ * POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ -using UnityEngine; +package spine { -namespace Spine.Unity.Modules { - [ExecuteInEditMode] - public class SkeletonUtilitySubmeshRenderer : MonoBehaviour { - [System.NonSerialized] - public Mesh mesh; - public int submeshIndex = 0; - public Material hiddenPassMaterial; - Renderer cachedRenderer; - MeshFilter filter; - Material[] sharedMaterials; - - void Awake () { - cachedRenderer = GetComponent(); - filter = GetComponent(); - sharedMaterials = new Material[0]; - } - - public void SetMesh (Renderer parentRenderer, Mesh mesh, Material mat) { - if (cachedRenderer == null) - return; - - cachedRenderer.enabled = true; - filter.sharedMesh = mesh; - if (cachedRenderer.sharedMaterials.Length != parentRenderer.sharedMaterials.Length) { - sharedMaterials = parentRenderer.sharedMaterials; - } - - for (int i = 0; i < sharedMaterials.Length; i++) { - if (i == submeshIndex) - sharedMaterials[i] = mat; - else - sharedMaterials[i] = hiddenPassMaterial; - } - - cachedRenderer.sharedMaterials = sharedMaterials; - } - } +public class TransformMode { + public static const normal:TransformMode = new TransformMode(); + public static const onlyTranslation:TransformMode = new TransformMode(); + public static const noRotationOrReflection:TransformMode = new TransformMode(); + public static const noScale:TransformMode = new TransformMode(); + public static const noScaleOrReflection:TransformMode = new TransformMode(); +} } diff --git a/spine-as3/spine-as3/src/spine/animation/Animation.as b/spine-as3/spine-as3/src/spine/animation/Animation.as index 03bbe806c..db3d7cd98 100644 --- a/spine-as3/spine-as3/src/spine/animation/Animation.as +++ b/spine-as3/spine-as3/src/spine/animation/Animation.as @@ -34,7 +34,7 @@ import spine.Skeleton; public class Animation { internal var _name:String; - private var _timelines:Vector.; + public var _timelines:Vector.; public var duration:Number; public function Animation (name:String, timelines:Vector., duration:Number) { @@ -50,7 +50,7 @@ public class Animation { } /** Poses the skeleton at the specified time for this animation. */ - public function apply (skeleton:Skeleton, lastTime:Number, time:Number, loop:Boolean, events:Vector.) : void { + public function apply (skeleton:Skeleton, lastTime:Number, time:Number, loop:Boolean, events:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { if (skeleton == null) throw new ArgumentError("skeleton cannot be null."); if (loop && duration != 0) { @@ -59,21 +59,7 @@ public class Animation { } for (var i:int = 0, n:int = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - } - - /** Poses the skeleton at the specified time for this animation mixed with the current pose. - * @param alpha The amount of this animation that affects the current pose. */ - public function mix (skeleton:Skeleton, lastTime:Number, time:Number, loop:Boolean, events:Vector., alpha:Number) : void { - if (skeleton == null) throw new ArgumentError("skeleton cannot be null."); - - if (loop && duration != 0) { - time %= duration; - if (lastTime > 0) lastTime %= duration; - } - - for (var i:int = 0, n:int = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); } public function get name () : String { diff --git a/spine-as3/spine-as3/src/spine/animation/AnimationState.as b/spine-as3/spine-as3/src/spine/animation/AnimationState.as index bf8996056..4ed0e2075 100644 --- a/spine-as3/spine-as3/src/spine/animation/AnimationState.as +++ b/spine-as3/spine-as3/src/spine/animation/AnimationState.as @@ -29,213 +29,559 @@ *****************************************************************************/ package spine.animation { - +import spine.MathUtils; +import spine.Bone; +import spine.Pool; +import flash.utils.Dictionary; import spine.Event; import spine.Skeleton; public class AnimationState { - private var _data:AnimationStateData; - private var _tracks:Vector. = new Vector.(); - private var _events:Vector. = new Vector.(); + internal static var emptyAnimation:Animation = new Animation("", new Vector.(), 0); + + public var data:AnimationStateData; + public var tracks:Vector. = new Vector.(); + internal var events:Vector. = new Vector.(); public var onStart:Listeners = new Listeners(); + public var onInterrupt:Listeners = new Listeners(); public var onEnd:Listeners = new Listeners(); + public var onDispose:Listeners = new Listeners(); public var onComplete:Listeners = new Listeners(); public var onEvent:Listeners = new Listeners(); + internal var queue:EventQueue; + internal var propertyIDs:Dictionary = new Dictionary(); + internal var animationsChanged:Boolean; public var timeScale:Number = 1; - - public function AnimationState (data:AnimationStateData) { - if (!data) throw new ArgumentError("data cannot be null."); - _data = data; + internal var trackEntryPool:Pool; + + public function AnimationState(data:AnimationStateData) { + if (data == null) throw new ArgumentError("data can not be null"); + this.data = data; + this.queue = new EventQueue(this); + this.trackEntryPool = new Pool(function():Object { + return new TrackEntry(); + }); } - - public function update (delta:Number) : void { + + public function update (delta:Number):void { delta *= timeScale; - for (var i:int = 0; i < _tracks.length; i++) { - var current:TrackEntry = _tracks[i]; - if (!current) continue; + for (var i:int = 0, n:int = tracks.length; i < n; i++) { + var current:TrackEntry = tracks[i]; + if (current == null) continue; - current.time += delta * current.timeScale; - if (current.previous) { - var previousDelta:Number = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + + var currentDelta:Number = delta * current.timeScale; + + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) continue; + currentDelta = -current.delay; + current.delay = 0; } var next:TrackEntry = current.next; - if (next) { - next.time = current.lastTime - next.delay; - if (next.time >= 0) setCurrent(i, next); - } else { - // End non-looping animation when it reaches its end time and there is no next entry. - if (!current.loop && current.lastTime >= current.endTime) clearTrack(i); - } - } - } - - public function apply (skeleton:Skeleton) : void { - for (var i:int = 0; i < _tracks.length; i++) { - var current:TrackEntry = _tracks[i]; - if (!current) continue; - - _events.length = 0; - - var time:Number = current.time; - var lastTime:Number = current.lastTime; - var endTime:Number = current.endTime; - var loop:Boolean = current.loop; - if (!loop && time > endTime) time = endTime; - - var previous:TrackEntry = current.previous; - if (!previous) { - if (current.mix == 1) - current.animation.apply(skeleton, current.lastTime, time, loop, _events); - else - current.animation.mix(skeleton, current.lastTime, time, loop, _events, current.mix); - } else { - var previousTime:Number = previous.time; - if (!previous.loop && previousTime > previous.endTime) previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - - var alpha:Number = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + if (next != null) { + // When the next entry's delay is passed, change to the next entry, preserving leftover time. + var nextTime:Number = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; + setCurrent(i, next); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + updateMixingFrom(current, delta, true); + } else { + updateMixingFrom(current, delta, true); + // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + queue.end(current); + disposeNext(current); + continue; } - current.animation.mix(skeleton, current.lastTime, time, loop, _events, alpha); } - for each (var event:Event in _events) { - if (current.onEvent != null) current.onEvent(i, event); - onEvent.invoke(i, event); - } - - // Check if completed the animation or a loop iteration. - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count:int = (int)(time / endTime); - if (current.onComplete != null) current.onComplete(i, count); - onComplete.invoke(i, count); - } - - current.lastTime = current.time; + current.trackTime += currentDelta; } - } - public function clearTracks () : void { - for (var i:int = 0, n:int = _tracks.length; i < n; i++) + queue.drain(); + } + + private function updateMixingFrom (entry:TrackEntry, delta:Number, canEnd:Boolean):void { + var from:TrackEntry = entry.mixingFrom; + if (from == null) return; + + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + queue.end(from); + var newFrom:TrackEntry = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta:Number = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + + updateMixingFrom(from, delta, canEnd && from.alpha == 1); + } + + public function apply (skeleton:Skeleton):void { + if (skeleton == null) throw new ArgumentError("skeleton cannot be null."); + if (animationsChanged) _animationsChanged(); + + var events:Vector. = this.events; + + for (var i:int = 0, n:int = tracks.length; i < n; i++) { + var current:TrackEntry = tracks[i]; + if (current == null || current.delay > 0) continue; + + // Apply mixing from entries first. + var mix:Number = current.alpha; + if (current.mixingFrom != null) mix *= applyMixingFrom(current, skeleton); + + // Apply current entry. + var animationLast:Number = current.animationLast, animationTime:Number = current.getAnimationTime(); + var timelineCount:int = current.animation.timelines.length; + var timelines:Vector. = current.animation.timelines; + var ii:int = 0; + if (mix == 1) { + for (ii = 0; ii < timelineCount; ii++) + Timeline(timelines[ii]).apply(skeleton, animationLast, animationTime, events, 1, true, false); + } else { + var firstFrame:Boolean = current.timelinesRotation.length == 0; + if (firstFrame) current.timelinesRotation.length = timelineCount << 1; + var timelinesRotation:Vector. = current.timelinesRotation; + + var timelinesFirst:Vector. = current.timelinesFirst; + for (ii = 0; ii < timelineCount; ii++) { + var timeline:Timeline = timelines[ii]; + if (timeline is RotateTimeline) { + applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, + firstFrame); + } else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); + } + } + queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + + queue.drain(); + } + + private function applyMixingFrom (entry:TrackEntry, skeleton:Skeleton):Number { + var from:TrackEntry = entry.mixingFrom; + if (from.mixingFrom != null) applyMixingFrom(from, skeleton); + + var mix:Number = 0; + if (entry.mixDuration == 0) // Single frame mix to undo mixingFrom changes. + mix = 1; + else { + mix = entry.mixTime / entry.mixDuration; + if (mix > 1) mix = 1; + } + + var events:Vector. = mix < from.eventThreshold ? this.events : null; + var attachments:Boolean = mix < from.attachmentThreshold, drawOrder:Boolean = mix < from.drawOrderThreshold; + var animationLast:Number = from.animationLast, animationTime:Number = from.getAnimationTime(); + var timelineCount:int = from.animation.timelines.length; + var timelines:Vector. = from.animation.timelines; + var timelinesFirst:Vector. = from.timelinesFirst; + var alpha:Number = from.alpha * entry.mixAlpha * (1 - mix); + + var firstFrame:Boolean = from.timelinesRotation.length == 0; + if (firstFrame) from.timelinesRotation.length = timelineCount << 1; + var timelinesRotation:Vector. = from.timelinesRotation; + + for (var i:int = 0; i < timelineCount; i++) { + var timeline:Timeline = timelines[i]; + var setupPose:Boolean = timelinesFirst[i]; + if (timeline is RotateTimeline) + applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline is AttachmentTimeline) continue; + if (!drawOrder && timeline is DrawOrderTimeline) continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + + queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + + return mix; + } + + private function applyRotateTimeline (timeline:Timeline, skeleton:Skeleton, time:Number, alpha:Number, setupPose:Boolean, + timelinesRotation:Vector., i:int, firstFrame:Boolean):void { + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + + var rotateTimeline:RotateTimeline = RotateTimeline(timeline); + var frames:Vector. = rotateTimeline.frames; + var bone:Bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } + + var r2:Number; + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) // Time is after last frame. + r2 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION]; + else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation:Number = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime:Number = frames[frame]; + var percent:Number = rotateTimeline.getCurvePercent((frame >> 1) - 1, + 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + + r2 = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - int((16384.499999999996 - r2 / 360))) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - int((16384.499999999996 - r2 / 360))) * 360; + } + + // Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. + var r1:Number = setupPose ? bone.data.rotation : bone.rotation; + var total:Number, diff:Number = r2 - r1; + if (diff == 0) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } else + total = timelinesRotation[i]; + } else { + diff -= (16384 - int((16384.499999999996 - diff / 360))) * 360; + var lastTotal:Number, lastDiff:Number; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; // Angle and direction of mix, including loops. + lastDiff = timelinesRotation[i + 1]; // Difference between bones. + } + var current:Boolean = diff > 0, dir:Boolean = lastTotal >= 0; + // Detect cross at 0 (not 180). + if (MathUtils.signum(lastDiff) != MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + // A cross after a 360 rotation is a loop. + if (Math.abs(lastTotal) > 180) lastTotal += 360 * MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; // Store loops as part of lastTotal. + if (dir != current) total += 360 * MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - int((16384.499999999996 - r1 / 360))) * 360; + } + + private function queueEvents (entry:TrackEntry, animationTime:Number):void { + var animationStart:Number = entry.animationStart, animationEnd:Number = entry.animationEnd; + var duration:Number = animationEnd - animationStart; + var trackLastWrapped:Number = entry.trackLast % duration; + + // Queue events before complete. + var events:Vector. = this.events; + var event:Event; + var i:int = 0, n:int = events.length; + for (; i < n; i++) { + event = events[i]; + if (event.time < trackLastWrapped) break; + if (event.time > animationEnd) continue; // Discard events outside animation start/end. + queue.event(entry, event); + } + + // Queue complete if completed a loop iteration or the animation. + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + queue.complete(entry); + } + + // Queue events after complete. + for (; i < n; i++) { + event = events[i]; + if (event.time < animationStart) continue; // Discard events outside animation start/end. + queue.event(entry, events[i]); + } + events.length = 0; + } + + public function clearTracks ():void { + queue.drainDisabled = true; + for (var i:int = 0, n:int = tracks.length; i < n; i++) clearTrack(i); - _tracks.length = 0; + tracks.length = 0; + queue.drainDisabled = false; + queue.drain(); } + + public function clearTrack (trackIndex:int):void { + if (trackIndex >= tracks.length) return; + var current:TrackEntry = tracks[trackIndex]; + if (current == null) return; - public function clearTrack (trackIndex:int) : void { - if (trackIndex >= _tracks.length) return; - var current:TrackEntry = _tracks[trackIndex]; - if (!current) return; + queue.end(current); - if (current.onEnd != null) current.onEnd(trackIndex); - onEnd.invoke(trackIndex); + disposeNext(current); - _tracks[trackIndex] = null; - } - - private function expandToIndex (index:int) : TrackEntry { - if (index < _tracks.length) return _tracks[index]; - while (index >= _tracks.length) - _tracks[_tracks.length] = null; - return null; - } - - private function setCurrent (index:int, entry:TrackEntry) : void { - var current:TrackEntry = expandToIndex(index); - if (current) { - var previous:TrackEntry = current.previous; - current.previous = null; - - if (current.onEnd != null) current.onEnd(index); - onEnd.invoke(index); - - entry.mixDuration = _data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - // If a mix is in progress, mix from the closest animation. - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } else - entry.previous = current; - } + var entry:TrackEntry = current; + while (true) { + var from:TrackEntry = entry.mixingFrom; + if (from == null) break; + queue.end(from); + entry.mixingFrom = null; + entry = from; } - _tracks[index] = entry; + tracks[current.trackIndex] = null; - if (entry.onStart != null) entry.onStart(index); - onStart.invoke(index); + queue.drain(); } + + + private function setCurrent (index:int, current:TrackEntry):void { + var from:TrackEntry = expandToIndex(index); + tracks[index] = current; - public function setAnimationByName (trackIndex:int, animationName:String, loop:Boolean) : TrackEntry { - var animation:Animation = _data._skeletonData.findAnimation(animationName); - if (!animation) throw new ArgumentError("Animation not found: " + animationName); + if (from != null) { + queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + + from.timelinesRotation.length = 0; + + // If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. + if (from.mixingFrom != null) current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); + } + + queue.start(current); + } + + public function setAnimationByName (trackIndex:int, animationName:String, loop:Boolean):TrackEntry { + var animation:Animation = data.skeletonData.findAnimation(animationName); + if (animation == null) throw new ArgumentError("Animation not found: " + animationName); return setAnimation(trackIndex, animation, loop); } - - /** Set the current animation. Any queued animations are cleared. */ - public function setAnimation (trackIndex:int, animation:Animation, loop:Boolean) : TrackEntry { - var entry:TrackEntry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + + public function setAnimation (trackIndex:int, animation:Animation, loop:Boolean):TrackEntry { + if (animation == null) throw new ArgumentError("animation cannot be null."); + var current:TrackEntry = expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + // Don't mix from an entry that was never applied. + tracks[trackIndex] = null; + queue.interrupt(current); + queue.end(current); + disposeNext(current); + current = null; + } else + disposeNext(current); + } + var entry:TrackEntry = trackEntry(trackIndex, animation, loop, current); setCurrent(trackIndex, entry); + queue.drain(); return entry; } - - public function addAnimationByName (trackIndex:int, animationName:String, loop:Boolean, delay:Number) : TrackEntry { - var animation:Animation = _data._skeletonData.findAnimation(animationName); - if (!animation) throw new ArgumentError("Animation not found: " + animationName); + + public function addAnimationByName (trackIndex:int, animationName:String, loop:Boolean, delay:Number):TrackEntry { + var animation:Animation = data.skeletonData.findAnimation(animationName); + if (animation == null) throw new ArgumentError("Animation not found: " + animationName); return addAnimation(trackIndex, animation, loop, delay); } - - /** Adds an animation to be played delay seconds after the current or last queued animation. - * @param delay May be <= 0 to use duration of previous animation minus any mix duration plus the negative delay. */ - public function addAnimation (trackIndex:int, animation:Animation, loop:Boolean, delay:Number) : TrackEntry { - var entry:TrackEntry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + + public function addAnimation (trackIndex:int, animation:Animation, loop:Boolean, delay:Number):TrackEntry { + if (animation == null) throw new ArgumentError("animation cannot be null."); var last:TrackEntry = expandToIndex(trackIndex); - if (last) { - while (last.next) + if (last != null) { + while (last.next != null) last = last.next; - last.next = entry; - } else - _tracks[trackIndex] = entry; - - if (delay <= 0) { - if (last) - delay += last.endTime - _data.getMix(last.animation, animation); - else - delay = 0; } - entry.delay = delay; + var entry:TrackEntry = trackEntry(trackIndex, animation, loop, last); + + if (last == null) { + setCurrent(trackIndex, entry); + queue.drain(); + } else { + last.next = entry; + if (delay <= 0) { + var duration:Number = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + (int)(last.trackTime / duration)) - data.getMix(last.animation, animation); + else + delay = 0; + } + } + + entry.delay = delay; return entry; } - - /** May be null. */ - public function getCurrent (trackIndex:int) : TrackEntry { - if (trackIndex >= _tracks.length) return null; - return _tracks[trackIndex]; + + public function setEmptyAnimation (trackIndex:int, mixDuration:Number):TrackEntry { + var entry:TrackEntry = setAnimation(trackIndex, emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; } - - public function toString () : String { - var buffer:String = ""; - for each (var entry:TrackEntry in _tracks) { - if (!entry) continue; - if (buffer.length > 0) buffer += ", "; - buffer += entry.toString(); + + public function addEmptyAnimation (trackIndex:int, mixDuration:Number, delay:Number):TrackEntry { + if (delay <= 0) delay -= mixDuration; + var entry:TrackEntry = addAnimation(trackIndex, emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + public function setEmptyAnimations (mixDuration:Number):void { + queue.drainDisabled = true; + for (var i:int = 0, n:int = tracks.length; i < n; i++) { + var current:TrackEntry = tracks[i]; + if (current != null) setEmptyAnimation(current.trackIndex, mixDuration); } - if (buffer.length == 0) return ""; - return buffer; + queue.drainDisabled = false; + queue.drain(); + } + + private function expandToIndex (index:int):TrackEntry { + if (index < tracks.length) return tracks[index]; + tracks.length = index + 1; + return null; + } + + private function trackEntry (trackIndex:int, animation:Animation, loop:Boolean, last:TrackEntry):TrackEntry { + var entry:TrackEntry = TrackEntry(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 = loop ? int.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + + entry.alpha = 1; + entry.mixAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : data.getMix(last.animation, animation); + return entry; + } + + private function disposeNext (entry:TrackEntry):void{ + var next:TrackEntry = entry.next; + while (next != null) { + queue.dispose(next); + next = next.next; + } + entry.next = null; + } + + private function _animationsChanged ():void { + animationsChanged = false; + + var propertyIDs:Dictionary = this.propertyIDs = new Dictionary(); + + // Compute timelinesFirst from lowest to highest track entries. + var i:int = 0, n:int = tracks.length; + for (var key:String in propertyIDs) { + delete propertyIDs[key]; + } + var entry:TrackEntry; + for (; i < n; i++) { // Find first non-null entry. + entry = tracks[i]; + if (entry == null) continue; + setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { // Rest of entries. + entry = tracks[i]; + if (entry != null) checkTimelinesFirst(entry); + } + } + + private function setTimelinesFirst (entry:TrackEntry):void { + if (entry.mixingFrom != null) { + setTimelinesFirst(entry.mixingFrom); + checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs:Dictionary = this.propertyIDs; + var timelines:Vector. = entry.animation.timelines; + var n:int = timelines.length; + var usage:Vector. = entry.timelinesFirst; + usage.length = n; + for (var i:int = 0; i < n; i++) { + var id:String = timelines[i].getPropertyId().toString(); + propertyIDs[id] = id; + usage[i] = true; + } + } + + private function checkTimelinesFirst (entry:TrackEntry):void { + if (entry.mixingFrom != null) checkTimelinesFirst(entry.mixingFrom); + checkTimelinesUsage(entry, entry.timelinesFirst); + } + + private function checkTimelinesUsage (entry:TrackEntry, usageArray:Vector.):void { + var propertyIDs:Dictionary = this.propertyIDs; + var timelines:Vector. = entry.animation.timelines; + var n:int = timelines.length; + var usage:Vector. = usageArray; + usageArray.length = n; + for (var i:int = 0; i < n; i++) { + var id:String = timelines[i].getPropertyId().toString(); + usage[i] = !propertyIDs.hasOwnProperty(id); + propertyIDs[id] = id; + } + } + + public function getCurrent (trackIndex:int):TrackEntry { + if (trackIndex >= tracks.length) return null; + return tracks[trackIndex]; + } + + public function clearListeners ():void { + onStart.listeners.length = 0; + onInterrupt.listeners.length = 0; + onEnd.listeners.length = 0; + onDispose.listeners.length = 0; + onComplete.listeners.length = 0; + onEvent.listeners.length = 0; + } + + public function clearListenerNotifications ():void { + queue.clear(); } } - } diff --git a/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as b/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as index c1bcba8c2..48b760134 100644 --- a/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as @@ -29,6 +29,7 @@ *****************************************************************************/ package spine.animation { +import spine.Slot; import spine.Event; import spine.Skeleton; @@ -45,6 +46,10 @@ public class AttachmentTimeline implements Timeline { public function get frameCount () : int { return frames.length; } + + public function getPropertyId () : int { + return (TimelineType.attachment.ordinal << 24) + slotIndex; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, attachmentName:String) : void { @@ -52,9 +57,22 @@ public class AttachmentTimeline implements Timeline { attachmentNames[frameIndex] = attachmentName; } - public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { + public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var attachmentName:String; + var slot:Slot = skeleton.slots[slotIndex]; + if (mixingOut && setupPose) { + attachmentName = slot.data.attachmentName; + slot.attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slotIndex, attachmentName); + return; + } var frames:Vector. = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) { + attachmentName = slot.data.attachmentName; + slot.attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slotIndex, attachmentName); + } + return; + } var frameIndex:int; if (time >= frames[frames.length - 1]) // Time is after last frame. @@ -62,7 +80,7 @@ public class AttachmentTimeline implements Timeline { else frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName:String = attachmentNames[frameIndex]; + attachmentName = attachmentNames[frameIndex]; skeleton.slots[slotIndex].attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slotIndex, attachmentName); } } diff --git a/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as b/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as index 5f791933f..b3c09efcb 100644 --- a/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as @@ -45,6 +45,10 @@ public class ColorTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * 5, true); } + + override public function getPropertyId () : int { + return (TimelineType.color.ordinal << 24) + slotIndex; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, r:Number, g:Number, b:Number, a:Number) : void { @@ -56,45 +60,59 @@ public class ColorTimeline extends CurveTimeline { frames[int(frameIndex + A)] = a; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) - return; // Time is before first frame. + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; + var slot:Slot = skeleton.slots[slotIndex]; + + if (time < frames[0]) { + if (setupPose) { + slot.r = slot.data.r; + slot.g = slot.data.g; + slot.b = slot.data.b; + slot.a = slot.data.a; + } + return; + } var r:Number, g:Number, b:Number, a:Number; - if (time >= frames[int(frames.length - ENTRIES)]) { - // Time is after last frame. + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. var i:int = frames.length; - r = frames[int(i + PREV_R)]; - g = frames[int(i + PREV_G)]; - b = frames[int(i + PREV_B)]; - a = frames[int(i + PREV_A)]; + r = frames[i + PREV_R]; + g = frames[i + PREV_G]; + b = frames[i + PREV_B]; + a = frames[i + PREV_A]; } else { // Interpolate between the previous frame and the current frame. var frame:int = Animation.binarySearch(frames, time, ENTRIES); - r = frames[int(frame + PREV_R)]; - g = frames[int(frame + PREV_G)]; - b = frames[int(frame + PREV_B)]; - a = frames[int(frame + PREV_A)]; + r = frames[frame + PREV_R]; + g = frames[frame + PREV_G]; + b = frames[frame + PREV_B]; + a = frames[frame + PREV_A]; var frameTime:Number = frames[frame]; var percent:Number = getCurvePercent(frame / ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); r += (frames[frame + R] - r) * percent; g += (frames[frame + G] - g) * percent; b += (frames[frame + B] - b) * percent; a += (frames[frame + A] - a) * percent; - } - var slot:Slot = skeleton.slots[slotIndex]; - if (alpha < 1) { - slot.r += (r - slot.r) * alpha; - slot.g += (g - slot.g) * alpha; - slot.b += (b - slot.b) * alpha; - slot.a += (a - slot.a) * alpha; - } else { + } + if (alpha == 1) { slot.r = r; slot.g = g; slot.b = b; slot.a = a; + } else { + if (setupPose) { + slot.r = slot.data.r; + slot.g = slot.data.g; + slot.b = slot.data.b; + slot.a = slot.data.a; + } + slot.r += (r - slot.r) * alpha; + slot.g += (g - slot.g) * alpha; + slot.b += (b - slot.b) * alpha; + slot.a += (a - slot.a) * alpha; } } } diff --git a/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as b/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as index cfbef3434..13968ba0e 100644 --- a/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as @@ -46,7 +46,11 @@ public class CurveTimeline implements Timeline { curves = new Vector.((frameCount - 1) * BEZIER_SIZE, true); } - public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { + public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + } + + public function getPropertyId () : int { + return 0; } public function get frameCount () : int { diff --git a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as index d1dfa49e5..ebebe0346 100644 --- a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as @@ -29,6 +29,7 @@ *****************************************************************************/ package spine.animation { +import spine.attachments.Attachment; import spine.attachments.VertexAttachment; import spine.Event; import spine.Skeleton; @@ -45,6 +46,10 @@ public class DeformTimeline extends CurveTimeline { frames = new Vector.(frameCount, true); frameVertices = new Vector.>(frameCount, true); } + + override public function getPropertyId () : int { + return (TimelineType.deform.ordinal << 24) + slotIndex; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, vertices:Vector.) : void { @@ -52,52 +57,93 @@ public class DeformTimeline extends CurveTimeline { frameVertices[frameIndex] = vertices; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { var slot:Slot = skeleton.slots[slotIndex]; - var slotAttachment:VertexAttachment = slot.attachment as VertexAttachment; - if (!slotAttachment || !slotAttachment.applyDeform(attachment)) return; + var slotAttachment:Attachment = slot.attachment; + if (!(slotAttachment is VertexAttachment) || !(VertexAttachment(slotAttachment)).applyDeform(attachment)) return; var frames:Vector. = this.frames; - if (time < frames[0]) return; // Time is before first frame. + var verticesArray:Vector. = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) verticesArray.length = 0; + return; + } var frameVertices:Vector.> = this.frameVertices; var vertexCount:int = frameVertices[0].length; + + if (verticesArray.length != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. + verticesArray.length = vertexCount; + var vertices:Vector. = verticesArray; - var vertices:Vector. = slot.attachmentVertices; - if (vertices.length != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. - vertices.length = vertexCount; - - var i:int; + var i:int, n:int; + var vertexAttachment:VertexAttachment; + var setupVertices:Vector.; + var setup:Number, prev:Number; if (time >= frames[frames.length - 1]) { // Time is after last frame. - var lastVertices:Vector. = frameVertices[int(frames.length - 1)]; - if (alpha < 1) { + var lastVertices:Vector. = frameVertices[frames.length - 1]; + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. + for (i = 0, n = vertexCount; i < n; i++) + vertices[i] = lastVertices[i]; + } else if (setupPose) { + vertexAttachment = VertexAttachment(slotAttachment); + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i = 0; i < vertexCount; i++) { + setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } else { + // Vertex positions or deform offsets, with alpha. for (i = 0; i < vertexCount; i++) vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } else { - for (i = 0; i < vertexCount; i++) - vertices[i] = lastVertices[i]; } return; } // Interpolate between the previous frame and the current frame. var frame:int = Animation.binarySearch1(frames, time); - var prevVertices:Vector. = frameVertices[int(frame - 1)]; + var prevVertices:Vector. = frameVertices[frame - 1]; var nextVertices:Vector. = frameVertices[frame]; var frameTime:Number = frames[frame]; var percent:Number = getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - var prev:Number; - if (alpha < 1) { - for (i = 0; i < vertexCount; i++) { - prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } else { + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. for (i = 0; i < vertexCount; i++) { prev = prevVertices[i]; vertices[i] = prev + (nextVertices[i] - prev) * percent; } + } else if (setupPose) { + vertexAttachment = VertexAttachment(slotAttachment); + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i = 0; i < vertexCount; i++) { + prev = prevVertices[i]; + setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i = 0; i < vertexCount; i++) { + prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } else { + // Vertex positions or deform offsets, with alpha. + for (i = 0; i < vertexCount; i++) { + prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } } } } diff --git a/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as b/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as index 50414ed7c..a0c20e55c 100644 --- a/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as @@ -45,6 +45,10 @@ public class DrawOrderTimeline implements Timeline { public function get frameCount () : int { return frames.length; } + + public function getPropertyId () : int { + return TimelineType.drawOrder.ordinal << 24; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, drawOrder:Vector.) : void { @@ -52,9 +56,24 @@ public class DrawOrderTimeline implements Timeline { drawOrders[frameIndex] = drawOrder; } - public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) - return; // Time is before first frame. + public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + if (mixingOut && setupPose) { + for (var ii:int = 0, n:int = skeleton.slots.length; ii < n; ii++) + skeleton.drawOrder[ii] = skeleton.slots[ii]; + return; + } + + var drawOrder:Vector. = skeleton.drawOrder; + var slots:Vector. = skeleton.slots; + var slot:Slot; + var i:int = 0; + if (time < frames[0]) { + if (setupPose) { + for each (slot in slots) + drawOrder[i++] = slot; + } + return; + } var frameIndex:int; if (time >= frames[int(frames.length - 1)]) // Time is after last frame. @@ -62,12 +81,10 @@ public class DrawOrderTimeline implements Timeline { else frameIndex = Animation.binarySearch1(frames, time) - 1; - var drawOrder:Vector. = skeleton.drawOrder; - var slots:Vector. = skeleton.slots; var drawOrderToSetupIndex:Vector. = drawOrders[frameIndex]; - var i:int = 0; + i = 0; if (!drawOrderToSetupIndex) { - for each (var slot:Slot in slots) + for each (slot in slots) drawOrder[i++] = slot; } else { for each (var setupIndex:int in drawOrderToSetupIndex) diff --git a/spine-as3/spine-as3/src/spine/animation/EventQueue.as b/spine-as3/spine-as3/src/spine/animation/EventQueue.as new file mode 100644 index 000000000..30288a6b9 --- /dev/null +++ b/spine-as3/spine-as3/src/spine/animation/EventQueue.as @@ -0,0 +1,122 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine.animation { +import spine.Event; + +public class EventQueue { + internal var objects:Vector. = new Vector.(); + internal var animationState:AnimationState; + public var drainDisabled:Boolean; + + public function EventQueue(animationState:AnimationState) { + this.animationState = animationState; + } + + public function start (entry:TrackEntry):void { + objects.push(EventType.start); + objects.push(entry); + animationState.animationsChanged = true; + } + + public function interrupt (entry:TrackEntry):void { + objects.push(EventType.interrupt); + objects.push(entry); + } + + public function end (entry:TrackEntry):void { + objects.push(EventType.end); + objects.push(entry); + animationState.animationsChanged = true; + } + + public function dispose (entry:TrackEntry):void { + objects.push(EventType.dispose); + objects.push(entry); + } + + public function complete (entry:TrackEntry):void { + objects.push(EventType.complete); + objects.push(entry); + } + + public function event (entry:TrackEntry, event:Event):void { + objects.push(EventType.event); + objects.push(entry); + objects.push(event); + } + + public function drain ():void { + if (drainDisabled) return; // Not reentrant. + drainDisabled = true; + + var objects:Vector. = this.objects; + for (var i:int = 0; i < objects.length; i += 2) { + var type:EventType = EventType(objects[i]); + var entry:TrackEntry = TrackEntry(objects[i + 1]); + switch (type) { + case EventType.start: + entry.onStart.invoke(entry); + animationState.onStart.invoke(entry); + break; + case EventType.interrupt: + entry.onInterrupt.invoke(entry); + animationState.onInterrupt.invoke(entry); + break; + case EventType.end: + entry.onEnd.invoke(entry); + animationState.onEnd.invoke(entry); + // Fall through. + case EventType.dispose: + entry.onDispose.invoke(entry); + animationState.onDispose.invoke(entry); + animationState.trackEntryPool.free(entry); + break; + case EventType.complete: + entry.onComplete.invoke(entry); + animationState.onComplete.invoke(entry); + break; + case EventType.event: + var event:Event = Event(objects[i++ + 2]); + entry.onEvent.invoke(entry, event); + animationState.onEvent.invoke(entry, event); + break; + } + } + clear(); + + drainDisabled = false; + } + + public function clear ():void { + objects.length = 0; + } +} +} diff --git a/spine-as3/spine-as3/src/spine/animation/EventTimeline.as b/spine-as3/spine-as3/src/spine/animation/EventTimeline.as index 9a6d6b629..9b86336d5 100644 --- a/spine-as3/spine-as3/src/spine/animation/EventTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/EventTimeline.as @@ -44,6 +44,10 @@ public class EventTimeline implements Timeline { public function get frameCount () : int { return frames.length; } + + public function getPropertyId () : int { + return TimelineType.event.ordinal << 24; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, event:Event) : void { @@ -52,11 +56,11 @@ public class EventTimeline implements Timeline { } /** Fires events for frames > lastTime and <= time. */ - public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { + public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { if (!firedEvents) return; if (lastTime > time) { // Fire events after last time for looped animations. - apply(skeleton, lastTime, int.MAX_VALUE, firedEvents, alpha); + apply(skeleton, lastTime, int.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[int(frameCount - 1)]) // Last time is after last frame. return; diff --git a/spine-as3/spine-as3/src/spine/animation/EventType.as b/spine-as3/spine-as3/src/spine/animation/EventType.as new file mode 100644 index 000000000..02a95a61c --- /dev/null +++ b/spine-as3/spine-as3/src/spine/animation/EventType.as @@ -0,0 +1,41 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine.animation { + +public class EventType { + public static const start:EventType = new EventType(); + public static const interrupt:EventType = new EventType(); + public static const end:EventType = new EventType(); + public static const dispose:EventType = new EventType(); + public static const complete:EventType = new EventType(); + public static const event:EventType = new EventType(); +} +} diff --git a/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as b/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as index 9e48b02ad..9d38b0d76 100644 --- a/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as @@ -45,6 +45,10 @@ public class IkConstraintTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * ENTRIES, true); } + + override public function getPropertyId () : int { + return (TimelineType.ikConstraint.ordinal << 24) + ikConstraintIndex; + } /** Sets the time, mix and bend direction of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, mix:Number, bendDirection:int) : void { @@ -54,14 +58,25 @@ public class IkConstraintTimeline extends CurveTimeline { frames[int(frameIndex + BEND_DIRECTION)] = bendDirection; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { var constraint:IkConstraint = skeleton.ikConstraints[ikConstraintIndex]; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } if (time >= frames[int(frames.length - ENTRIES)]) { // Time is after last frame. - constraint.mix += (frames[int(frames.length + PREV_MIX)] - constraint.mix) * alpha; - constraint.bendDirection = int(frames[int(frames.length + PREV_BEND_DIRECTION)]); + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : int(frames[frames.length + PREV_BEND_DIRECTION]); + } else { + constraint.mix += (frames[frames.length + PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = int(frames[frames.length + PREV_BEND_DIRECTION]); + } return; } @@ -71,8 +86,13 @@ public class IkConstraintTimeline extends CurveTimeline { var frameTime:Number = frames[frame]; var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = int(frames[frame + PREV_BEND_DIRECTION]); + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : int(frames[frame + PREV_BEND_DIRECTION]); + } else { + constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = int(frames[frame + PREV_BEND_DIRECTION]); + } } } diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as index 020b00daf..a275e8139 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as @@ -46,6 +46,10 @@ public class PathConstraintMixTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * ENTRIES, true); } + + override public function getPropertyId () : int { + return (TimelineType.pathConstraintMix.ordinal << 24) + pathConstraintIndex; + } /** Sets the time and mixes of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, rotateMix:Number, translateMix:Number) : void { @@ -55,28 +59,40 @@ public class PathConstraintMixTimeline extends CurveTimeline { frames[frameIndex + TRANSLATE] = translateMix; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - var i:int = frames.length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var rotate:Number = frames[frame + PREV_ROTATE]; - var translate:Number = frames[frame + PREV_TRANSLATE]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var rotate:Number, translate:Number; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + rotate = frames[frames.length + PREV_ROTATE]; + translate = frames[frames.length + PREV_TRANSLATE]; + } else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + 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; + } } } } diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as index d6c99331b..783d44ff6 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as @@ -46,6 +46,10 @@ public class PathConstraintPositionTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * ENTRIES, true); } + + override public function getPropertyId () : int { + return (TimelineType.pathConstraintPosition.ordinal << 24) + pathConstraintIndex; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, value:Number) : void { @@ -54,24 +58,30 @@ public class PathConstraintPositionTimeline extends CurveTimeline { frames[frameIndex + VALUE] = value; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - var i:int = frames.length; - constraint.position += (frames[i + PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) constraint.position = constraint.data.position; return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var position:Number = frames[frame + PREV_VALUE]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var position:Number; + if (time >= frames[frames.length - ENTRIES]) // Time is after last frame. + position = frames[frames.length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + position = frames[frame + PREV_VALUE]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.position += (position + (frames[frame + VALUE] - position) * percent - constraint.position) * alpha; + position += (frames[frame + VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; } } } diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as index 76193c83e..5a7132b92 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as @@ -37,25 +37,36 @@ public class PathConstraintSpacingTimeline extends PathConstraintPositionTimelin public function PathConstraintSpacingTimeline (frameCount:int) { super(frameCount); } + + override public function getPropertyId () : int { + return (TimelineType.pathConstraintSpacing.ordinal << 24) + pathConstraintIndex; + } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - var i:int = frames.length; - constraint.spacing += (frames[i + PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) constraint.spacing = constraint.data.spacing; return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var spacing:Number = frames[frame + PREV_VALUE]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var spacing:Number; + if (time >= frames[frames.length - ENTRIES]) // Time is after last frame. + spacing = frames[frames.length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + spacing = frames[frame + PREV_VALUE]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.spacing += (spacing + (frames[frame + VALUE] - spacing) * percent - constraint.spacing) * alpha; + spacing += (frames[frame + VALUE] - spacing) * percent; + } + + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; } } } diff --git a/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as b/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as index f1bc55bcc..2cb5b5523 100644 --- a/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as @@ -35,8 +35,8 @@ import spine.Skeleton; public class RotateTimeline extends CurveTimeline { static public const ENTRIES:int = 2; - static private const PREV_TIME:int = -2, PREV_ROTATION:int = -1; - static private const ROTATION:int = 1; + static public const PREV_TIME:int = -2, PREV_ROTATION:int = -1; + static public const ROTATION:int = 1; public var boneIndex:int; public var frames:Vector.; // time, value, ... @@ -45,6 +45,10 @@ public class RotateTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * 2, true); } + + override public function getPropertyId () : int { + return (TimelineType.rotate.ordinal << 24) + boneIndex; + } /** Sets the time and angle of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, degrees:Number) : void { @@ -52,40 +56,45 @@ public class RotateTimeline extends CurveTimeline { frames[frameIndex] = time; frames[int(frameIndex + ROTATION)] = degrees; } - - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) - return; // Time is before first frame. + + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; var bone:Bone = skeleton.bones[boneIndex]; + var r:Number; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } - if (time >= frames[int(frames.length - 2)]) { // Time is after last frame. - var amount:Number = bone.data.rotation + frames[int(frames.length + PREV_ROTATION)] - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + PREV_ROTATION] * alpha; + else { + r = bone.data.rotation + frames[frames.length + PREV_ROTATION] - bone.rotation; + r -= (16384 - int((16384.499999999996 - r / 360))) * 360; // Wrap within -180 and 180. + bone.rotation += r * alpha; + } return; } // Interpolate between the previous frame and the current frame. var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var prevRotation:Number = frames[int(frame + PREV_ROTATION)]; + var prevRotation:Number = frames[frame + PREV_ROTATION]; var frameTime:Number = frames[frame]; var percent:Number = getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - amount = frames[int(frame + ROTATION)] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + r = frames[frame + ROTATION] - prevRotation; + r -= (16384 - int((16384.499999999996 - r / 360))) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - int((16384.499999999996 - r / 360))) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - int((16384.499999999996 - r / 360))) * 360; + bone.rotation += r * alpha; + } } } diff --git a/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as b/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as index f65cedca6..065e730c9 100644 --- a/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as @@ -29,6 +29,7 @@ *****************************************************************************/ package spine.animation { +import spine.MathUtils; import spine.Bone; import spine.Event; import spine.Skeleton; @@ -37,27 +38,62 @@ public class ScaleTimeline extends TranslateTimeline { public function ScaleTimeline (frameCount:int) { super(frameCount); } + + override public function getPropertyId () : int { + return (TimelineType.scale.ordinal << 24) + boneIndex; + } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) - return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; var bone:Bone = skeleton.bones[boneIndex]; - if (time >= frames[int(frames.length - ENTRIES)]) { // Time is after last frame. - bone.scaleX += (bone.data.scaleX * frames[int(frames.length + PREV_X)] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[int(frames.length + PREV_Y)] - bone.scaleY) * alpha; + + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var prevX:Number = frames[frame + PREV_X]; - var prevY:Number = frames[frame + PREV_Y]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var x:Number, y:Number; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X] * bone.data.scaleX; + y = frames[frames.length + PREV_Y] * bone.data.scaleY; + } else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + Y] - prevY) * percent) - bone.scaleY) * alpha; + x = (x + (frames[frame + X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } else { + var bx:Number, by:Number; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } else { + bx = bone.scaleX; + by = bone.scaleY; + } + // Mixing out uses sign of setup or current pose, else use sign of key. + if (mixingOut) { + x = Math.abs(x) * MathUtils.signum(bx); + y = Math.abs(y) * MathUtils.signum(by); + } else { + bx = Math.abs(bx) * MathUtils.signum(x); + by = Math.abs(by) * MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } } } diff --git a/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as b/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as index 7321eb746..1efbb0c79 100644 --- a/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as @@ -29,35 +29,54 @@ *****************************************************************************/ package spine.animation { - import spine.Event; - import spine.Skeleton; - import spine.Bone; +import spine.Event; +import spine.Skeleton; +import spine.Bone; public class ShearTimeline extends TranslateTimeline { public function ShearTimeline (frameCount:int) { super(frameCount); } + + override public function getPropertyId () : int { + return (TimelineType.shear.ordinal << 24) + boneIndex; + } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - var frames:Vector. = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; var bone:Bone = skeleton.bones[boneIndex]; - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - bone.shearX += (bone.data.shearX + frames[frames.length + PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + PREV_Y] - bone.shearY) * alpha; + + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var prevX:Number = frames[frame + PREV_X]; - var prevY:Number = frames[frame + PREV_Y]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var x:Number, y:Number; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X]; + y = frames[frames.length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + Y] - prevY) * percent) - bone.shearY) * alpha; + x = x + (frames[frame + X] - x) * percent; + y = y + (frames[frame + 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; + } } } diff --git a/spine-as3/spine-as3/src/spine/animation/Timeline.as b/spine-as3/spine-as3/src/spine/animation/Timeline.as index 87a680dd4..d9aaf4520 100644 --- a/spine-as3/spine-as3/src/spine/animation/Timeline.as +++ b/spine-as3/spine-as3/src/spine/animation/Timeline.as @@ -34,7 +34,9 @@ import spine.Skeleton; public interface Timeline { /** Sets the value(s) for the specified time. */ - function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void; + function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void; + + function getPropertyId() : int; } } diff --git a/spine-as3/spine-as3/src/spine/animation/TimelineType.as b/spine-as3/spine-as3/src/spine/animation/TimelineType.as new file mode 100644 index 000000000..e20010027 --- /dev/null +++ b/spine-as3/spine-as3/src/spine/animation/TimelineType.as @@ -0,0 +1,56 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine.animation { + +public class TimelineType { + public var ordinal:int; + + public function TimelineType(order:int) { + this.ordinal = order; + } + + public static const rotate:TimelineType = new TimelineType(0); + public static const translate:TimelineType = new TimelineType(1); + public static const scale:TimelineType = new TimelineType(2); + public static const shear:TimelineType = new TimelineType(3); + public static const attachment:TimelineType = new TimelineType(4); + public static const color:TimelineType = new TimelineType(5); + public static const deform:TimelineType = new TimelineType(6); + public static const event:TimelineType = new TimelineType(7); + public static const drawOrder:TimelineType = new TimelineType(8); + public static const ikConstraint:TimelineType = new TimelineType(9); + public static const transformConstraint:TimelineType = new TimelineType(10); + public static const pathConstraintPosition:TimelineType = new TimelineType(11); + public static const pathConstraintSpacing:TimelineType = new TimelineType(12); + public static const pathConstraintMix:TimelineType = new TimelineType(13); +} + +} diff --git a/spine-as3/spine-as3/src/spine/animation/TrackEntry.as b/spine-as3/spine-as3/src/spine/animation/TrackEntry.as index 9daae7f09..e7ecb9d78 100644 --- a/spine-as3/spine-as3/src/spine/animation/TrackEntry.as +++ b/spine-as3/spine-as3/src/spine/animation/TrackEntry.as @@ -29,22 +29,54 @@ *****************************************************************************/ package spine.animation { +import spine.Poolable; -public class TrackEntry { - public var next:TrackEntry; - internal var previous:TrackEntry; +public class TrackEntry implements Poolable { public var animation:Animation; + public var next:TrackEntry, mixingFrom:TrackEntry; + public var onStart:Listeners = new Listeners(); + public var onInterrupt:Listeners = new Listeners(); + public var onEnd:Listeners = new Listeners(); + public var onDispose:Listeners = new Listeners(); + public var onComplete:Listeners = new Listeners(); + public var onEvent:Listeners = new Listeners(); + public var trackIndex:int; public var loop:Boolean; - public var delay:Number, time:Number = 0, lastTime:Number = -1, endTime:Number, timeScale:Number = 1; - internal var mixTime:Number, mixDuration:Number, mix:Number = 1; - public var onStart:Function, onEnd:Function, onComplete:Function, onEvent:Function; - - public function TrackEntry () { + public var eventThreshold:Number, attachmentThreshold:Number, drawOrderThreshold:Number; + public var animationStart:Number, animationEnd:Number, animationLast:Number, nextAnimationLast:Number; + public var delay:Number, trackTime:Number, trackLast:Number, nextTrackLast:Number, trackEnd:Number, timeScale:Number; + public var alpha:Number, mixTime:Number, mixDuration:Number, mixAlpha:Number; + public var timelinesFirst:Vector. = new Vector.(); + public var timelinesRotation:Vector. = new Vector.(); + + public function TrackEntry () { } - - public function toString () : String { - return animation == null ? "" : animation.name; + + public function getAnimationTime():Number { + if (loop) { + var duration:Number = animationEnd - animationStart; + if (duration == 0) return animationStart; + return (trackTime % duration) + animationStart; + } + return Math.min(trackTime + animationStart, animationEnd); + } + + public function reset ():void { + next = null; + mixingFrom = null; + animation = null; + onStart.listeners.length = 0; + onInterrupt.listeners.length = 0; + onEnd.listeners.length = 0; + onDispose.listeners.length = 0; + onComplete.listeners.length = 0; + onEvent.listeners.length = 0; + timelinesFirst.length = 0; + timelinesRotation.length = 0; + } + + public function resetRotationDirection ():void { + timelinesRotation.length = 0; } } - } diff --git a/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as b/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as index 9f605f764..40ab5bb96 100644 --- a/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as @@ -29,6 +29,7 @@ *****************************************************************************/ package spine.animation { +import spine.TransformConstraintData; import spine.Event; import spine.Skeleton; import spine.TransformConstraint; @@ -45,6 +46,10 @@ public class TransformConstraintTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * ENTRIES, true); } + + override public function getPropertyId () : int { + return (TimelineType.transformConstraint.ordinal << 24) + transformConstraintIndex; + } /** Sets the time and mixes of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, rotateMix:Number, translateMix:Number, scaleMix:Number, shearMix:Number) : void { @@ -56,34 +61,57 @@ public class TransformConstraintTimeline extends CurveTimeline { frames[frameIndex + SHEAR] = shearMix; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) return; // Time is before first frame. + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; - var constraint:TransformConstraint = skeleton.transformConstraints[transformConstraintIndex]; - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - var i:int = frames.length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + PREV_SHEAR] - constraint.shearMix) * alpha; + var constraint:TransformConstraint = skeleton.transformConstraints[transformConstraintIndex]; + var data:TransformConstraintData; + if (time < frames[0]) { + if (setupPose) { + data = constraint.data; + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + constraint.scaleMix = constraint.data.scaleMix; + constraint.shearMix = constraint.data.shearMix; + } return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var rotate:Number, translate:Number, scale:Number, shear:Number; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + var i:int = frames.length; + rotate = frames[i + PREV_ROTATE]; + translate = frames[i + PREV_TRANSLATE]; + scale = frames[i + PREV_SCALE]; + shear = frames[i + PREV_SHEAR]; + } else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + scale = frames[frame + PREV_SCALE]; + shear = frames[frame + PREV_SHEAR]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - var rotate:Number = frames[frame + PREV_ROTATE]; - var translate:Number = frames[frame + PREV_TRANSLATE]; - var scale:Number = frames[frame + PREV_SCALE]; - var shear:Number = frames[frame + PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + SHEAR] - shear) * percent - constraint.shearMix) * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + TRANSLATE] - translate) * percent; + scale += (frames[frame + SCALE] - scale) * percent; + shear += (frames[frame + SHEAR] - shear) * percent; + } + if (setupPose) { + 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; + } } } } diff --git a/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as b/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as index 71cabb36b..685e576ac 100644 --- a/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as @@ -45,6 +45,10 @@ public class TranslateTimeline extends CurveTimeline { super(frameCount); frames = new Vector.(frameCount * ENTRIES, true); } + + override public function getPropertyId () : int { + return (TimelineType.translate.ordinal << 24) + boneIndex; + } /** Sets the time and value of the specified keyframe. */ public function setFrame (frameIndex:int, time:Number, x:Number, y:Number) : void { @@ -54,27 +58,41 @@ public class TranslateTimeline extends CurveTimeline { frames[int(frameIndex + Y)] = y; } - override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number) : void { - if (time < frames[0]) - return; // Time is before first frame. + override public function apply (skeleton:Skeleton, lastTime:Number, time:Number, firedEvents:Vector., alpha:Number, setupPose:Boolean, mixingOut:Boolean) : void { + var frames:Vector. = this.frames; var bone:Bone = skeleton.bones[boneIndex]; - - if (time >= frames[int(frames.length - ENTRIES)]) { // Time is after last frame. - bone.x += (bone.data.x + frames[int(frames.length + PREV_X)] - bone.x) * alpha; - bone.y += (bone.data.y + frames[int(frames.length + PREV_Y)] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - // Interpolate between the previous frame and the current frame. - var frame:int = Animation.binarySearch(frames, time, ENTRIES); - var prevX:Number = frames[frame + PREV_X]; - var prevY:Number = frames[frame + PREV_Y]; - var frameTime:Number = frames[frame]; - var percent:Number = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + var x:Number, y:Number; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X]; + y = frames[frames.length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + var frame:int = Animation.binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + var frameTime:Number = frames[frame]; + var percent:Number = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.x += (bone.data.x + prevX + (frames[frame + X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + Y] - prevY) * percent - bone.y) * alpha; + x += (frames[frame + X] - x) * percent; + y += (frames[frame + 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; + } } } diff --git a/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as b/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as index 01c879e4c..2193558d8 100644 --- a/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as @@ -53,8 +53,7 @@ public dynamic class VertexAttachment extends Attachment { * @param offset The worldVertices index to begin writing values. */ public function computeWorldVertices2 (slot:Slot, start:int, count:int, worldVertices:Vector., offset:int): void { count += offset; - var skeleton:Skeleton = slot.skeleton; - var x:Number = skeleton.x, y:Number = skeleton.y; + var skeleton:Skeleton = slot.skeleton; var deformArray:Vector. = slot.attachmentVertices; var vertices:Vector. = this.vertices; var bones:Vector. = this.bones; @@ -68,8 +67,8 @@ public dynamic class VertexAttachment extends Attachment { if (bones == null) { if (deformArray.length > 0) vertices = deformArray; bone = slot.bone; - x += bone.worldX; - y += bone.worldY; + var x:Number = bone.worldX; + var y:Number = bone.worldY; var a:Number = bone.a, bb:Number = bone.b, c:Number = bone.c, d:Number = bone.d; for (v = start, w = offset; w < count; v += 2, w += 2) { vx = vertices[v], vy = vertices[v + 1]; @@ -87,7 +86,7 @@ public dynamic class VertexAttachment extends Attachment { var skeletonBones:Vector. = skeleton.bones; if (deformArray.length == 0) { for (w = offset, b = skip * 3; w < count; w += 2) { - wx = x, wy = y; + wx = 0, wy = 0; n = bones[v++]; n += v; for (; v < n; v++, b += 3) { @@ -102,7 +101,7 @@ public dynamic class VertexAttachment extends Attachment { } else { deform = deformArray; for (w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) { - wx = x; wy = y; + wx = 0; wy = 0; n = bones[v++]; n += v; for (; v < n; v++, b += 3, f += 2) { diff --git a/spine-c/include/spine/Animation.h b/spine-c/include/spine/Animation.h index da1cf2252..1a432529a 100644 --- a/spine-c/include/spine/Animation.h +++ b/spine-c/include/spine/Animation.h @@ -65,35 +65,27 @@ void spAnimation_dispose (spAnimation* self); * @param lastTime The last time the animation was applied. * @param events Any triggered events are added. May be null.*/ void spAnimation_apply (const spAnimation* self, struct spSkeleton* skeleton, float lastTime, float time, int loop, - spEvent** events, int* eventsCount); - -/** Poses the skeleton at the specified time for this animation mixed with the current pose. - * @param lastTime The last time the animation was applied. - * @param events Any triggered events are added. May be null. - * @param alpha The amount of this animation that affects the current pose. */ -void spAnimation_mix (const spAnimation* self, struct spSkeleton* skeleton, float lastTime, float time, int loop, - spEvent** events, int* eventsCount, float alpha); + spEvent** events, int* eventsCount, float alpha, int /*boolean*/ setupPose, int /*boolean*/ mixingOut); #ifdef SPINE_SHORT_NAMES typedef spAnimation Animation; #define Animation_create(...) spAnimation_create(__VA_ARGS__) #define Animation_dispose(...) spAnimation_dispose(__VA_ARGS__) #define Animation_apply(...) spAnimation_apply(__VA_ARGS__) -#define Animation_mix(...) spAnimation_mix(__VA_ARGS__) #endif /**/ typedef enum { - SP_TIMELINE_SCALE, SP_TIMELINE_ROTATE, SP_TIMELINE_TRANSLATE, + SP_TIMELINE_SCALE, SP_TIMELINE_SHEAR, - SP_TIMELINE_COLOR, SP_TIMELINE_ATTACHMENT, + SP_TIMELINE_COLOR, + SP_TIMELINE_DEFORM, SP_TIMELINE_EVENT, SP_TIMELINE_DRAWORDER, - SP_TIMELINE_DEFORM, SP_TIMELINE_IKCONSTRAINT, SP_TIMELINE_TRANSFORMCONSTRAINT, SP_TIMELINE_PATHCONSTRAINTPOSITION, @@ -115,7 +107,8 @@ struct spTimeline { void spTimeline_dispose (spTimeline* self); void spTimeline_apply (const spTimeline* self, struct spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha); + int* eventsCount, float alpha, int /*boolean*/ setupPose, int /*boolean*/ mixingOut); +int spTimeline_getPropertyId (const spTimeline* self); #ifdef SPINE_SHORT_NAMES typedef spTimeline Timeline; @@ -181,6 +174,8 @@ typedef struct spBaseTimeline { /**/ +static const int ROTATE_PREV_TIME = -2, ROTATE_PREV_ROTATION = -1; +static const int ROTATE_ROTATION = 1; static const int ROTATE_ENTRIES = 2; typedef struct spBaseTimeline spRotateTimeline; diff --git a/spine-c/include/spine/AnimationState.h b/spine-c/include/spine/AnimationState.h index 46f51d7a4..f12d52dde 100644 --- a/spine-c/include/spine/AnimationState.h +++ b/spine-c/include/spine/AnimationState.h @@ -40,60 +40,69 @@ extern "C" { #endif typedef enum { - SP_ANIMATION_START, SP_ANIMATION_END, SP_ANIMATION_COMPLETE, SP_ANIMATION_EVENT + SP_ANIMATION_START, SP_ANIMATION_INTERRUPT, SP_ANIMATION_END, SP_ANIMATION_COMPLETE, SP_ANIMATION_DISPOSE, SP_ANIMATION_EVENT } spEventType; typedef struct spAnimationState spAnimationState; - -typedef void (*spAnimationStateListener) (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, - int loopCount); - typedef struct spTrackEntry spTrackEntry; -struct spTrackEntry { - spAnimationState* const state; - spTrackEntry* next; - spTrackEntry* previous; - spAnimation* animation; - int/*bool*/loop; - float delay, time, lastTime, endTime, timeScale; - spAnimationStateListener listener; - float mixTime, mixDuration, mix; +typedef void (*spAnimationStateListener) (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event); + +struct spTrackEntry { + spAnimation* animation; + spTrackEntry* next; + spTrackEntry* mixingFrom; + spAnimationStateListener listener; + int trackIndex; + int /*boolean*/ loop; + float eventThreshold, attachmentThreshold, drawOrderThreshold; + float animationStart, animationEnd, animationLast, nextAnimationLast; + float delay, trackTime, trackLast, nextTrackLast, trackEnd, timeScale; + float alpha, mixTime, mixDuration, mixAlpha; + int* /*boolean*/ timelinesFirst; + int timelinesFirstCount; + float* timelinesRotation; + int timelinesRotationCount; void* rendererObject; #ifdef __cplusplus spTrackEntry() : - state(0), - next(0), - previous(0), animation(0), - loop(0), - delay(0), time(0), lastTime(0), endTime(0), timeScale(0), + next(0), mixingFrom(0), listener(0), - mixTime(0), mixDuration(0), mix(0), - rendererObject(0) { + trackIndex(0), + loop(0), + eventThreshold(0), attachmentThreshold(0), drawOrderThreshold(0), + animationStart(0), animationEnd(0), animationLast(0), nextAnimationLast(0), + delay(0), trackTime(0), trackLast(0), nextTrackLast(0), trackEnd(0), timeScale(0), + alpha(0), mixTime(0), mixDuration(0), mixAlpha(0), + timelinesFirst(0), + timelinesFirstCount(0), + timelinesRotation(0), + timelinesRotationCount(0) { } #endif }; struct spAnimationState { spAnimationStateData* const data; - float timeScale; - spAnimationStateListener listener; int tracksCount; spTrackEntry** tracks; + spAnimationStateListener listener; + + float timeScale; + void* rendererObject; #ifdef __cplusplus spAnimationState() : data(0), - timeScale(0), - listener(0), tracksCount(0), tracks(0), - rendererObject(0) { + listener(0), + timeScale(0) { } #endif }; @@ -119,14 +128,23 @@ spTrackEntry* spAnimationState_addAnimationByName (spAnimationState* self, int t int/*bool*/loop, float delay); spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIndex, spAnimation* animation, int/*bool*/loop, float delay); +spTrackEntry* spAnimationState_setEmptyAnimation(spAnimationState* self, int trackIndex, float mixDuration); +spTrackEntry* spAnimationState_addEmptyAnimation(spAnimationState* self, int trackIndex, float mixDuration, float delay); +void spAnimationState_setEmptyAnimations(spAnimationState* self, float mixDuration); spTrackEntry* spAnimationState_getCurrent (spAnimationState* self, int trackIndex); +void spAnimationState_clearListenerNotifications(spAnimationState* self); + +float spTrackEntry_getAnimationTime (spTrackEntry* entry); + #ifdef SPINE_SHORT_NAMES typedef spEventType EventType; #define ANIMATION_START SP_ANIMATION_START +#define ANIMATION_INTERRUPT SP_ANIMATION_INTERRUPT #define ANIMATION_END SP_ANIMATION_END #define ANIMATION_COMPLETE SP_ANIMATION_COMPLETE +#define ANIMATION_DISPOSE SP_ANIMATION_DISPOSE #define ANIMATION_EVENT SP_ANIMATION_EVENT typedef spAnimationStateListener AnimationStateListener; typedef spTrackEntry TrackEntry; @@ -141,7 +159,11 @@ typedef spAnimationState AnimationState; #define AnimationState_setAnimation(...) spAnimationState_setAnimation(__VA_ARGS__) #define AnimationState_addAnimationByName(...) spAnimationState_addAnimationByName(__VA_ARGS__) #define AnimationState_addAnimation(...) spAnimationState_addAnimation(__VA_ARGS__) +#define AnimationState_setEmptyAnimation(...) spAnimatinState_setEmptyAnimation(__VA_ARGS__) +#define AnimationState_addEmptyAnimation(...) spAnimatinState_addEmptyAnimation(__VA_ARGS__) +#define AnimationState_setEmptyAnimations(...) spAnimatinState_setEmptyAnimations(__VA_ARGS__) #define AnimationState_getCurrent(...) spAnimationState_getCurrent(__VA_ARGS__) +#define AnimationState_clearListenerNotifications(...) spAnimatinState_clearListenerNotifications(__VA_ARGS__) #endif #ifdef __cplusplus diff --git a/spine-c/include/spine/Bone.h b/spine-c/include/spine/Bone.h index 3aa022d4c..4ecf9d24c 100644 --- a/spine-c/include/spine/Bone.h +++ b/spine-c/include/spine/Bone.h @@ -47,11 +47,11 @@ struct spBone { int childrenCount; spBone** const children; float x, y, rotation, scaleX, scaleY, shearX, shearY; - float appliedRotation; + float ax, ay, arotation, ascaleX, ascaleY, ashearX, ashearY; + int /*bool*/ appliedValid; float const a, b, worldX; float const c, d, worldY; - float const worldSignX, worldSignY; int/*bool*/ sorted; @@ -62,11 +62,11 @@ struct spBone { parent(0), childrenCount(0), children(0), x(0), y(0), rotation(0), scaleX(0), scaleY(0), - appliedRotation(0), + ax(0), ay(0), arotation(0), ascaleX(0), ascaleY(0), ashearX(0), ashearY(0), + appliedValid(0), a(0), b(0), worldX(0), c(0), d(0), worldY(0), - worldSignX(0), worldSignY(0), sorted(0) { } @@ -93,7 +93,7 @@ float spBone_getWorldScaleY (spBone* self); float spBone_worldToLocalRotationX (spBone* self); float spBone_worldToLocalRotationY (spBone* self); void spBone_rotateWorld (spBone* self, float degrees); -void spBone_updateLocalTransform (spBone* self); +void spBone_updateAppliedTransform (spBone* self); void spBone_worldToLocal (spBone* self, float worldX, float worldY, float* localX, float* localY); void spBone_localToWorld (spBone* self, float localX, float localY, float* worldX, float* worldY); @@ -114,7 +114,7 @@ typedef spBone Bone; #define Bone_worldToLocalRotationX(...) spBone_worldToLocalRotationX(__VA_ARGS__) #define Bone_worldToLocalRotationY(...) spBone_worldToLocalRotationY(__VA_ARGS__) #define Bone_rotateWorld(...) spBone_rotateWorld(__VA_ARGS__) -#define Bone_updateLocalTransform(...) spBone_updateLocalTransform(__VA_ARGS__) +#define Bone_updateAppliedTransform(...) spBone_updateAppliedTransform(__VA_ARGS__) #define Bone_worldToLocal(...) spBone_worldToLocal(__VA_ARGS__) #define Bone_localToWorld(...) spBone_localToWorld(__VA_ARGS__) #endif diff --git a/spine-c/include/spine/BoneData.h b/spine-c/include/spine/BoneData.h index 36cab745c..244a50e0d 100644 --- a/spine-c/include/spine/BoneData.h +++ b/spine-c/include/spine/BoneData.h @@ -35,6 +35,14 @@ extern "C" { #endif +typedef enum { + SP_TRANSFORMMODE_NORMAL, + SP_TRANSFORMMODE_ONLYTRANSLATION, + SP_TRANSFORMMODE_NOROTATIONORREFLECTION, + SP_TRANSFORMMODE_NOSCALE, + SP_TRANSFORMMODE_NOSCALEORREFLECTION +} spTransformMode; + typedef struct spBoneData spBoneData; struct spBoneData { const int index; @@ -42,7 +50,7 @@ struct spBoneData { spBoneData* const parent; float length; float x, y, rotation, scaleX, scaleY, shearX, shearY; - int/*bool*/inheritRotation, inheritScale; + spTransformMode transformMode; #ifdef __cplusplus spBoneData() : @@ -54,7 +62,7 @@ struct spBoneData { rotation(0), scaleX(0), scaleY(0), shearX(0), shearY(0), - inheritRotation(0), inheritScale(0) { + transformMode(SP_TRANSFORMMODE_NORMAL) { } #endif }; diff --git a/spine-c/include/spine/IkConstraint.h b/spine-c/include/spine/IkConstraint.h index 784f24efa..aef3c26a8 100644 --- a/spine-c/include/spine/IkConstraint.h +++ b/spine-c/include/spine/IkConstraint.h @@ -50,8 +50,6 @@ typedef struct spIkConstraint { int bendDirection; float mix; - int level; - #ifdef __cplusplus spIkConstraint() : data(0), @@ -59,8 +57,7 @@ typedef struct spIkConstraint { bones(0), target(0), bendDirection(0), - mix(0), - level(0) { + mix(0) { } #endif } spIkConstraint; diff --git a/spine-c/include/spine/IkConstraintData.h b/spine-c/include/spine/IkConstraintData.h index f1dfe68ca..65c2f08b7 100644 --- a/spine-c/include/spine/IkConstraintData.h +++ b/spine-c/include/spine/IkConstraintData.h @@ -39,7 +39,7 @@ extern "C" { typedef struct spIkConstraintData { const char* const name; - + int order; int bonesCount; spBoneData** bones; diff --git a/spine-c/include/spine/PathConstraintData.h b/spine-c/include/spine/PathConstraintData.h index 983b1e087..31c9fad20 100644 --- a/spine-c/include/spine/PathConstraintData.h +++ b/spine-c/include/spine/PathConstraintData.h @@ -52,6 +52,7 @@ typedef enum { typedef struct spPathConstraintData { const char* const name; + int order; int bonesCount; spBoneData** const bones; spSlotData* target; diff --git a/spine-c/include/spine/Skeleton.h b/spine-c/include/spine/Skeleton.h index 58297f15e..c8c1c005c 100644 --- a/spine-c/include/spine/Skeleton.h +++ b/spine-c/include/spine/Skeleton.h @@ -55,7 +55,6 @@ typedef struct spSkeleton { int ikConstraintsCount; spIkConstraint** ikConstraints; - spIkConstraint** ikConstraintsSorted; int transformConstraintsCount; spTransformConstraint** transformConstraints; @@ -81,7 +80,6 @@ typedef struct spSkeleton { ikConstraintsCount(0), ikConstraints(0), - ikConstraintsSorted(0), transformConstraintsCount(0), transformConstraints(0), diff --git a/spine-c/include/spine/TransformConstraintData.h b/spine-c/include/spine/TransformConstraintData.h index 4c4c4ce58..f7b8f211f 100644 --- a/spine-c/include/spine/TransformConstraintData.h +++ b/spine-c/include/spine/TransformConstraintData.h @@ -39,6 +39,7 @@ extern "C" { typedef struct spTransformConstraintData { const char* const name; + int order; int bonesCount; spBoneData** const bones; spBoneData* target; diff --git a/spine-c/include/spine/extension.h b/spine-c/include/spine/extension.h index 60e4d047e..e51bec4b6 100644 --- a/spine-c/include/spine/extension.h +++ b/spine-c/include/spine/extension.h @@ -93,6 +93,7 @@ #define RAD_DEG (180 / PI) #define ABS(A) ((A) < 0? -(A): (A)) +#define SIGNUM(A) ((A) < 0? -1: (A) > 0 ? 1 : 0) #ifdef __STDC_VERSION__ #define FMOD(A,B) fmodf(A, B) @@ -170,25 +171,60 @@ char* _readFile (const char* path, int* length); /**/ -typedef struct _spAnimationState { +typedef union _spEventQueueItem { + int type; + spTrackEntry* entry; + spEvent* event; +} _spEventQueueItem; + +typedef struct _spAnimationState _spAnimationState; + +typedef struct _spEventQueue { + _spAnimationState* state; + _spEventQueueItem* objects; + int objectsCount; + int objectsCapacity; + int /*boolean*/ drainDisabled; + +#ifdef __cplusplus + _spEventQueue() : + state(0), + objects(0), + objectsCount(0), + objectsCapacity(0), + drainDisabled(0) { + } +#endif +} _spEventQueue; + +struct _spAnimationState { spAnimationState super; + + int eventsCount; spEvent** events; - spTrackEntry* (*createTrackEntry) (spAnimationState* self); - void (*disposeTrackEntry) (spTrackEntry* entry); + _spEventQueue* queue; + + int* propertyIDs; + int propertyIDsCount; + int propertyIDsCapacity; + + int /*boolean*/ animationsChanged; #ifdef __cplusplus _spAnimationState() : super(), + eventsCount(0), events(0), - createTrackEntry(0), - disposeTrackEntry(0) { + queue(0), + propertyIDs(0), + propertyIDsCount(0), + propertyIDsCapacity(0), + animationsChanged(0) { } #endif -} _spAnimationState; +}; -spTrackEntry* _spTrackEntry_create (spAnimationState* self); -void _spTrackEntry_dispose (spTrackEntry* self); /**/ @@ -230,7 +266,8 @@ void _spVertexAttachment_deinit (spVertexAttachment* self); void _spTimeline_init (spTimeline* self, spTimelineType type, void (*dispose) (spTimeline* self), void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha)); + int* eventsCount, float alpha, int setupPose, int mixingOut), + int (*getPropertyId) (const spTimeline* self)); void _spTimeline_deinit (spTimeline* self); #ifdef SPINE_SHORT_NAMES @@ -242,13 +279,15 @@ void _spTimeline_deinit (spTimeline* self); void _spCurveTimeline_init (spCurveTimeline* self, spTimelineType type, int framesCount, void (*dispose) (spTimeline* self), - void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha)); + void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut), + int (*getPropertyId) (const spTimeline* self)); void _spCurveTimeline_deinit (spCurveTimeline* self); +int _spCurveTimeline_binarySearch (float *values, int valuesLength, float target, int step); #ifdef SPINE_SHORT_NAMES #define _CurveTimeline_init(...) _spCurveTimeline_init(__VA_ARGS__) #define _CurveTimeline_deinit(...) _spCurveTimeline_deinit(__VA_ARGS__) +#define _CurveTimeline_binarySearch(...) _spCurveTimeline_binarySearch(__VA_ARGS__) #endif #ifdef __cplusplus diff --git a/spine-c/src/spine/Animation.c b/spine-c/src/spine/Animation.c index 45d39b9c4..3cbb7721a 100644 --- a/spine-c/src/spine/Animation.c +++ b/spine-c/src/spine/Animation.c @@ -51,7 +51,7 @@ void spAnimation_dispose (spAnimation* self) { } void spAnimation_apply (const spAnimation* self, spSkeleton* skeleton, float lastTime, float time, int loop, spEvent** events, - int* eventsCount) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { int i, n = self->timelinesCount; if (loop && self->duration) { @@ -60,38 +60,27 @@ void spAnimation_apply (const spAnimation* self, spSkeleton* skeleton, float las } for (i = 0; i < n; ++i) - spTimeline_apply(self->timelines[i], skeleton, lastTime, time, events, eventsCount, 1); -} - -void spAnimation_mix (const spAnimation* self, spSkeleton* skeleton, float lastTime, float time, int loop, spEvent** events, - int* eventsCount, float alpha) { - int i, n = self->timelinesCount; - - if (loop && self->duration) { - time = FMOD(time, self->duration); - if (lastTime > 0) lastTime = FMOD(lastTime, self->duration); - } - - for (i = 0; i < n; ++i) - spTimeline_apply(self->timelines[i], skeleton, lastTime, time, events, eventsCount, alpha); + spTimeline_apply(self->timelines[i], skeleton, lastTime, time, events, eventsCount, alpha, setupPose, mixingOut); } /**/ typedef struct _spTimelineVtable { void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha); + int* eventsCount, float alpha, int setupPose, int mixingOut); + int (*getPropertyId) (const spTimeline* self); void (*dispose) (spTimeline* self); } _spTimelineVtable; void _spTimeline_init (spTimeline* self, spTimelineType type, /**/ -void (*dispose) (spTimeline* self), /**/ - void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha)) { + void (*dispose) (spTimeline* self), /**/ + void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut), + int (*getPropertyId) (const spTimeline* self)) { CONST_CAST(spTimelineType, self->type) = type; CONST_CAST(_spTimelineVtable*, self->vtable) = NEW(_spTimelineVtable); VTABLE(spTimeline, self)->dispose = dispose; VTABLE(spTimeline, self)->apply = apply; + VTABLE(spTimeline, self)->getPropertyId = getPropertyId; } void _spTimeline_deinit (spTimeline* self) { @@ -103,8 +92,12 @@ void spTimeline_dispose (spTimeline* self) { } void spTimeline_apply (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { - VTABLE(spTimeline, self)->apply(self, skeleton, lastTime, time, firedEvents, eventsCount, alpha); + int* eventsCount, float alpha, int /*boolean*/ setupPose, int /*boolean*/ mixingOut) { + VTABLE(spTimeline, self)->apply(self, skeleton, lastTime, time, firedEvents, eventsCount, alpha, setupPose, mixingOut); +} + +int spTimeline_getPropertyId (const spTimeline* self) { + return VTABLE(spTimeline, self)->getPropertyId(self); } /**/ @@ -113,10 +106,10 @@ static const float CURVE_LINEAR = 0, CURVE_STEPPED = 1, CURVE_BEZIER = 2; static const int BEZIER_SIZE = 10 * 2 - 1; void _spCurveTimeline_init (spCurveTimeline* self, spTimelineType type, int framesCount, /**/ -void (*dispose) (spTimeline* self), /**/ - void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha)) { - _spTimeline_init(SUPER(self), type, dispose, apply); + void (*dispose) (spTimeline* self), /**/ + void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut), + int (*getPropertyId)(const spTimeline* self)) { + _spTimeline_init(SUPER(self), type, dispose, apply, getPropertyId); self->curves = CALLOC(float, (framesCount - 1) * BEZIER_SIZE); } @@ -199,6 +192,10 @@ static int binarySearch (float *values, int valuesLength, float target, int step return 0; } +int _spCurveTimeline_binarySearch (float *values, int valuesLength, float target, int step) { + return binarySearch(values, valuesLength, target, step); +} + /* @param target After the first and before the last entry. */ static int binarySearch1 (float *values, int valuesLength, float target) { int low = 0, current; @@ -228,9 +225,10 @@ void _spBaseTimeline_dispose (spTimeline* timeline) { /* Many timelines have structure identical to struct spBaseTimeline and extend spCurveTimeline. **/ struct spBaseTimeline* _spBaseTimeline_create (int framesCount, spTimelineType type, int frameSize, /**/ void (*apply) (const spTimeline* self, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha)) { + int* eventsCount, float alpha, int setupPose, int mixingOut), + int (*getPropertyId) (const spTimeline* self)) { struct spBaseTimeline* self = NEW(struct spBaseTimeline); - _spCurveTimeline_init(SUPER(self), type, framesCount, _spBaseTimeline_dispose, apply); + _spCurveTimeline_init(SUPER(self), type, framesCount, _spBaseTimeline_dispose, apply, getPropertyId); CONST_CAST(int, self->framesCount) = framesCount * frameSize; CONST_CAST(float*, self->frames) = CALLOC(float, self->framesCount); @@ -240,28 +238,28 @@ struct spBaseTimeline* _spBaseTimeline_create (int framesCount, spTimelineType t /**/ -static const int ROTATE_PREV_TIME = -2, ROTATE_PREV_ROTATION = -1; -static const int ROTATE_ROTATION = 1; - void _spRotateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { spBone *bone; int frame; - float prevRotation, frameTime, percent, amount; + float prevRotation, frameTime, percent, r; spRotateTimeline* self = SUB_CAST(spRotateTimeline, timeline); - if (time < self->frames[0]) return; /* Time is before first frame. */ - bone = skeleton->bones[self->boneIndex]; + if (time < self->frames[0]) { + if (setupPose) bone->rotation = bone->data->rotation; + return; + } if (time >= self->frames[self->framesCount - ROTATE_ENTRIES]) { /* Time is after last frame. */ - amount = bone->data->rotation + self->frames[self->framesCount + ROTATE_PREV_ROTATION] - bone->rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone->rotation += amount * alpha; + if (setupPose) + bone->rotation = bone->data->rotation + self->frames[self->framesCount + ROTATE_PREV_ROTATION] * alpha; + else { + r = bone->data->rotation + self->frames[self->framesCount + ROTATE_PREV_ROTATION] - bone->rotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; /* Wrap within -180 and 180. */ + bone->rotation += r * alpha; + } return; } @@ -271,25 +269,29 @@ void _spRotateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, frameTime = self->frames[frame]; percent = spCurveTimeline_getCurvePercent(SUPER(self), (frame >> 1) - 1, 1 - (time - frameTime) / (self->frames[frame + ROTATE_PREV_TIME] - frameTime)); - amount = self->frames[frame + ROTATE_ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone->data->rotation + (prevRotation + amount * percent) - bone->rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone->rotation += amount * alpha; + r = self->frames[frame + ROTATE_ROTATION] - prevRotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone->rotation = bone->data->rotation + r * alpha; + } else { + r = bone->data->rotation + r - bone->rotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone->rotation += r * alpha; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spRotateTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_ROTATE << 25) + SUB_CAST(spRotateTimeline, timeline)->boneIndex; +} + spRotateTimeline* spRotateTimeline_create (int framesCount) { - return _spBaseTimeline_create(framesCount, SP_TIMELINE_ROTATE, ROTATE_ENTRIES, _spRotateTimeline_apply); + return _spBaseTimeline_create(framesCount, SP_TIMELINE_ROTATE, ROTATE_ENTRIES, _spRotateTimeline_apply, _spRotateTimeline_getPropertyId); } void spRotateTimeline_setFrame (spRotateTimeline* self, int frameIndex, float time, float degrees) { @@ -304,40 +306,61 @@ static const int TRANSLATE_PREV_TIME = -3, TRANSLATE_PREV_X = -2, TRANSLATE_PREV static const int TRANSLATE_X = 1, TRANSLATE_Y = 2; void _spTranslateTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { spBone *bone; int frame; - float prevX, prevY, frameTime, percent; + float frameTime, percent; + float x, y; + float *frames; + int framesCount; spTranslateTimeline* self = SUB_CAST(spTranslateTimeline, timeline); - if (time < self->frames[0]) return; /* Time is before first frame. */ - bone = skeleton->bones[self->boneIndex]; - - if (time >= self->frames[self->framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ - bone->x += (bone->data->x + self->frames[self->framesCount + TRANSLATE_PREV_X] - bone->x) * alpha; - bone->y += (bone->data->y + self->frames[self->framesCount + TRANSLATE_PREV_Y] - bone->y) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + bone->x = bone->data->x; + bone->y = bone->data->y; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, TRANSLATE_ENTRIES); - prevX = self->frames[frame + TRANSLATE_PREV_X]; - prevY = self->frames[frame + TRANSLATE_PREV_Y]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ + x = frames[framesCount + TRANSLATE_PREV_X]; + y = frames[framesCount + TRANSLATE_PREV_Y]; + } else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, TRANSLATE_ENTRIES); + x = frames[frame + TRANSLATE_PREV_X]; + y = frames[frame + TRANSLATE_PREV_Y]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TRANSLATE_PREV_TIME] - frameTime)); - bone->x += (bone->data->x + prevX + (self->frames[frame + TRANSLATE_X] - prevX) * percent - bone->x) * alpha; - bone->y += (bone->data->y + prevY + (self->frames[frame + TRANSLATE_Y] - prevY) * percent - bone->y) * alpha; + x += (frames[frame + TRANSLATE_X] - x) * percent; + y += (frames[frame + TRANSLATE_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; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spTranslateTimeline_getPropertyId (const spTimeline* self) { + return (SP_TIMELINE_TRANSLATE << 24) + SUB_CAST(spTranslateTimeline, self)->boneIndex; +} + spTranslateTimeline* spTranslateTimeline_create (int framesCount) { - return _spBaseTimeline_create(framesCount, SP_TIMELINE_TRANSLATE, TRANSLATE_ENTRIES, _spTranslateTimeline_apply); + return _spBaseTimeline_create(framesCount, SP_TIMELINE_TRANSLATE, TRANSLATE_ENTRIES, _spTranslateTimeline_apply, _spTranslateTimeline_getPropertyId); } void spTranslateTimeline_setFrame (spTranslateTimeline* self, int frameIndex, float time, float x, float y) { @@ -350,39 +373,76 @@ void spTranslateTimeline_setFrame (spTranslateTimeline* self, int frameIndex, fl /**/ void _spScaleTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { spBone *bone; int frame; - float prevX, prevY, frameTime, percent; + float frameTime, percent, x, y; + float *frames; + int framesCount; spScaleTimeline* self = SUB_CAST(spScaleTimeline, timeline); - if (time < self->frames[0]) return; /* Time is before first frame. */ - bone = skeleton->bones[self->boneIndex]; - if (time >= self->frames[self->framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ - bone->scaleX += (bone->data->scaleX * self->frames[self->framesCount + TRANSLATE_PREV_X] - bone->scaleX) * alpha; - bone->scaleY += (bone->data->scaleY * self->frames[self->framesCount + TRANSLATE_PREV_Y] - bone->scaleY) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + bone->scaleX = bone->data->scaleX; + bone->scaleY = bone->data->scaleY; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, TRANSLATE_ENTRIES); - prevX = self->frames[frame + TRANSLATE_PREV_X]; - prevY = self->frames[frame + TRANSLATE_PREV_Y]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ + x = frames[framesCount + TRANSLATE_PREV_X] * bone->data->scaleX; + y = frames[framesCount + TRANSLATE_PREV_Y] * bone->data->scaleY; + } else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, TRANSLATE_ENTRIES); + x = frames[frame + TRANSLATE_PREV_X]; + y = frames[frame + TRANSLATE_PREV_Y]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TRANSLATE_PREV_TIME] - frameTime)); - bone->scaleX += (bone->data->scaleX * (prevX + (self->frames[frame + TRANSLATE_X] - prevX) * percent) - bone->scaleX) * alpha; - bone->scaleY += (bone->data->scaleY * (prevY + (self->frames[frame + TRANSLATE_Y] - prevY) * percent) - bone->scaleY) * alpha; + x = (x + (frames[frame + TRANSLATE_X] - x) * percent) * bone->data->scaleX; + y = (y + (frames[frame + TRANSLATE_Y] - y) * percent) * bone->data->scaleY; + } + if (alpha == 1) { + bone->scaleX = x; + bone->scaleY = y; + } else { + float bx, by; + if (setupPose) { + bx = bone->data->scaleX; + by = bone->data->scaleY; + } else { + bx = bone->scaleX; + by = bone->scaleY; + } + /* Mixing out uses sign of setup or current pose, else use sign of key. */ + if (mixingOut) { + x = ABS(x) * SIGNUM(bx); + y = ABS(y) * SIGNUM(by); + } else { + bx = ABS(bx) * SIGNUM(x); + by = ABS(by) * SIGNUM(y); + } + bone->scaleX = bx + (x - bx) * alpha; + bone->scaleY = by + (y - by) * alpha; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spScaleTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_SCALE << 24) + SUB_CAST(spScaleTimeline, timeline)->boneIndex; +} + spScaleTimeline* spScaleTimeline_create (int framesCount) { - return _spBaseTimeline_create(framesCount, SP_TIMELINE_SCALE, TRANSLATE_ENTRIES, _spScaleTimeline_apply); + return _spBaseTimeline_create(framesCount, SP_TIMELINE_SCALE, TRANSLATE_ENTRIES, _spScaleTimeline_apply, _spScaleTimeline_getPropertyId); } void spScaleTimeline_setFrame (spScaleTimeline* self, int frameIndex, float time, float x, float y) { @@ -392,39 +452,60 @@ void spScaleTimeline_setFrame (spScaleTimeline* self, int frameIndex, float time /**/ void _spShearTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { spBone *bone; int frame; - float prevX, prevY, frameTime, percent; + float frameTime, percent, x, y; + float *frames; + int framesCount; spShearTimeline* self = SUB_CAST(spShearTimeline, timeline); - if (time < self->frames[0]) return; /* Time is before first frame. */ - bone = skeleton->bones[self->boneIndex]; - if (time >= self->frames[self->framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ - bone->shearX += (bone->data->shearX + self->frames[self->framesCount + TRANSLATE_PREV_X] - bone->shearX) * alpha; - bone->shearY += (bone->data->shearY + self->frames[self->framesCount + TRANSLATE_PREV_Y] - bone->shearY) * alpha; + frames = self->frames; + framesCount = self->framesCount; + if (time < self->frames[0]) { + if (setupPose) { + bone->shearX = bone->data->shearX; + bone->shearY = bone->data->shearY; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, TRANSLATE_ENTRIES); - prevX = self->frames[frame + TRANSLATE_PREV_X]; - prevY = self->frames[frame + TRANSLATE_PREV_Y]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + TRANSLATE_PREV_TIME] - frameTime)); + if (time >= frames[framesCount - TRANSLATE_ENTRIES]) { /* Time is after last frame. */ + x = frames[framesCount + TRANSLATE_PREV_X]; + y = frames[framesCount + TRANSLATE_PREV_Y]; + } else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, TRANSLATE_ENTRIES); + x = frames[frame + TRANSLATE_PREV_X]; + y = frames[frame + TRANSLATE_PREV_Y]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSLATE_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TRANSLATE_PREV_TIME] - frameTime)); - bone->shearX += (bone->data->shearX + prevX + (self->frames[frame + TRANSLATE_X] - prevX) * percent - bone->shearX) * alpha; - bone->shearY += (bone->data->shearY + prevY + (self->frames[frame + TRANSLATE_Y] - prevY) * percent - bone->shearY) * alpha; + x = x + (frames[frame + TRANSLATE_X] - x) * percent; + y = y + (frames[frame + TRANSLATE_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; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spShearTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_SHEAR << 24) + SUB_CAST(spShearTimeline, timeline)->boneIndex; +} + spShearTimeline* spShearTimeline_create (int framesCount) { - return (spShearTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_SHEAR, 3, _spShearTimeline_apply); + return (spShearTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_SHEAR, 3, _spShearTimeline_apply, _spShearTimeline_getPropertyId); } void spShearTimeline_setFrame (spShearTimeline* self, int frameIndex, float time, float x, float y) { @@ -437,14 +518,23 @@ static const int COLOR_PREV_TIME = -5, COLOR_PREV_R = -4, COLOR_PREV_G = -3, COL static const int COLOR_R = 1, COLOR_G = 2, COLOR_B = 3, COLOR_A = 4; void _spColorTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { spSlot *slot; int frame; float percent, frameTime; float r, g, b, a; spColorTimeline* self = (spColorTimeline*)timeline; + slot = skeleton->slots[self->slotIndex]; - if (time < self->frames[0]) return; /* Time is before first frame. */ + if (time < self->frames[0]) { + if (setupPose) { + slot->r = slot->data->r; + slot->g = slot->data->g; + slot->b = slot->data->b; + slot->a = slot->data->a; + } + return; + } if (time >= self->frames[self->framesCount - 5]) { /* Time is after last frame */ int i = self->framesCount; @@ -470,17 +560,22 @@ void _spColorTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f b += (self->frames[frame + COLOR_B] - b) * percent; a += (self->frames[frame + COLOR_A] - a) * percent; } - slot = skeleton->slots[self->slotIndex]; - if (alpha < 1) { - slot->r += (r - slot->r) * alpha; - slot->g += (g - slot->g) * alpha; - slot->b += (b - slot->b) * alpha; - slot->a += (a - slot->a) * alpha; - } else { + if (alpha == 1) { slot->r = r; slot->g = g; slot->b = b; slot->a = a; + } else { + if (setupPose) { + slot->r = slot->data->r; + slot->g = slot->data->g; + slot->b = slot->data->b; + slot->a = slot->data->a; + } + slot->r += (r - slot->r) * alpha; + slot->g += (g - slot->g) * alpha; + slot->b += (b - slot->b) * alpha; + slot->a += (a - slot->a) * alpha; } UNUSED(lastTime); @@ -488,8 +583,12 @@ void _spColorTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f UNUSED(eventsCount); } +int _spColorTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_COLOR << 24) + SUB_CAST(spColorTimeline, timeline)->slotIndex; +} + spColorTimeline* spColorTimeline_create (int framesCount) { - return (spColorTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_COLOR, 5, _spColorTimeline_apply); + return (spColorTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_COLOR, 5, _spColorTimeline_apply, _spColorTimeline_getPropertyId); } void spColorTimeline_setFrame (spColorTimeline* self, int frameIndex, float time, float r, float g, float b, float a) { @@ -504,12 +603,26 @@ void spColorTimeline_setFrame (spColorTimeline* self, int frameIndex, float time /**/ void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { const char* attachmentName; spAttachmentTimeline* self = (spAttachmentTimeline*)timeline; int frameIndex; + spSlot* slot = skeleton->slots[self->slotIndex]; - if (time < self->frames[0]) return; + if (mixingOut && setupPose) { + const char* attachmentName = slot->data->attachmentName; + spSlot_setAttachment(slot, attachmentName ? 0 : spSkeleton_getAttachmentForSlotIndex(skeleton, self->slotIndex, attachmentName)); + return; + } + + if (time < self->frames[0]) { + if (setupPose) { + attachmentName = slot->data->attachmentName; + spSlot_setAttachment(skeleton->slots[self->slotIndex], + attachmentName ? spSkeleton_getAttachmentForSlotIndex(skeleton, self->slotIndex, attachmentName) : 0); + } + return; + } if (time >= self->frames[self->framesCount - 1]) frameIndex = self->framesCount - 1; @@ -526,6 +639,10 @@ void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skelet UNUSED(alpha); } +int _spAttachmentTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_ATTACHMENT << 24) + SUB_CAST(spAttachmentTimeline, timeline)->slotIndex; +} + void _spAttachmentTimeline_dispose (spTimeline* timeline) { spAttachmentTimeline* self = SUB_CAST(spAttachmentTimeline, timeline); int i; @@ -541,7 +658,7 @@ void _spAttachmentTimeline_dispose (spTimeline* timeline) { spAttachmentTimeline* spAttachmentTimeline_create (int framesCount) { spAttachmentTimeline* self = NEW(spAttachmentTimeline); - _spTimeline_init(SUPER(self), SP_TIMELINE_ATTACHMENT, _spAttachmentTimeline_dispose, _spAttachmentTimeline_apply); + _spTimeline_init(SUPER(self), SP_TIMELINE_ATTACHMENT, _spAttachmentTimeline_dispose, _spAttachmentTimeline_apply, _spAttachmentTimeline_getPropertyId); CONST_CAST(int, self->framesCount) = framesCount; CONST_CAST(float*, self->frames) = CALLOC(float, framesCount); @@ -560,17 +677,176 @@ void spAttachmentTimeline_setFrame (spAttachmentTimeline* self, int frameIndex, self->attachmentNames[frameIndex] = 0; } +/**/ + +void _spDeformTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, + int* eventsCount, float alpha, int setupPose, int mixingOut) { + int frame, i, vertexCount; + float percent, frameTime; + const float* prevVertices; + const float* nextVertices; + float* frames; + int framesCount; + const float** frameVertices; + float* vertices; + spDeformTimeline* self = (spDeformTimeline*)timeline; + + spSlot *slot = skeleton->slots[self->slotIndex]; + + if (slot->attachment != self->attachment) { + if (!slot->attachment) return; + switch (slot->attachment->type) { + case SP_ATTACHMENT_MESH: { + spMeshAttachment* mesh = SUB_CAST(spMeshAttachment, slot->attachment); + if (!mesh->inheritDeform || mesh->parentMesh != (void*)self->attachment) return; + break; + } + default: + return; + } + } + + frames = self->frames; + framesCount = self->framesCount; + if (time < frames[0]) { /* Time is before first frame. */ + if (setupPose) slot->attachmentVerticesCount = 0; + return; + } + + vertexCount = self->frameVerticesCount; + if (slot->attachmentVerticesCount < vertexCount) { + if (slot->attachmentVerticesCapacity < vertexCount) { + FREE(slot->attachmentVertices); + slot->attachmentVertices = MALLOC(float, vertexCount); + slot->attachmentVerticesCapacity = vertexCount; + } + } + if (slot->attachmentVerticesCount != vertexCount) alpha = 1; /* Don't mix from uninitialized slot vertices. */ + slot->attachmentVerticesCount = vertexCount; + + frameVertices = self->frameVertices; + vertices = slot->attachmentVertices; + + if (time >= frames[framesCount - 1]) { /* Time is after last frame. */ + const float* lastVertices = self->frameVertices[framesCount - 1]; + if (alpha == 1) { + /* Vertex positions or deform offsets, no alpha. */ + memcpy(vertices, lastVertices, vertexCount * sizeof(float)); + } else if (setupPose) { + spVertexAttachment* vertexAttachment = SUB_CAST(spVertexAttachment, slot->attachment); + if (!vertexAttachment->bones) { + /* Unweighted vertex positions, with alpha. */ + float* setupVertices = vertexAttachment->vertices; + for (i = 0; i < vertexCount; i++) { + float setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + /* Weighted deform offsets, with alpha. */ + for (i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } else { + /* Vertex positions or deform offsets, with alpha. */ + for (i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, 1); + prevVertices = frameVertices[frame - 1]; + nextVertices = frameVertices[frame]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + + if (alpha == 1) { + /* Vertex positions or deform offsets, no alpha. */ + for (i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } else if (setupPose) { + spVertexAttachment* vertexAttachment = SUB_CAST(spVertexAttachment, slot->attachment); + if (!vertexAttachment->bones) { + /* Unweighted vertex positions, with alpha. */ + float* setupVertices = vertexAttachment->vertices; + for (i = 0; i < vertexCount; i++) { + float prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + /* Weighted deform offsets, with alpha. */ + for (i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } else { + /* Vertex positions or deform offsets, with alpha. */ + for (i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + + UNUSED(lastTime); + UNUSED(firedEvents); + UNUSED(eventsCount); +} + +int _spDeformTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_DEFORM << 24) + SUB_CAST(spDeformTimeline, timeline)->slotIndex; +} + +void _spDeformTimeline_dispose (spTimeline* timeline) { + spDeformTimeline* self = SUB_CAST(spDeformTimeline, timeline); + int i; + + _spCurveTimeline_deinit(SUPER(self)); + + for (i = 0; i < self->framesCount; ++i) + FREE(self->frameVertices[i]); + FREE(self->frameVertices); + FREE(self->frames); + FREE(self); +} + +spDeformTimeline* spDeformTimeline_create (int framesCount, int frameVerticesCount) { + spDeformTimeline* self = NEW(spDeformTimeline); + _spCurveTimeline_init(SUPER(self), SP_TIMELINE_DEFORM, framesCount, _spDeformTimeline_dispose, _spDeformTimeline_apply, _spDeformTimeline_getPropertyId); + CONST_CAST(int, self->framesCount) = framesCount; + CONST_CAST(float*, self->frames) = CALLOC(float, self->framesCount); + CONST_CAST(float**, self->frameVertices) = CALLOC(float*, framesCount); + CONST_CAST(int, self->frameVerticesCount) = frameVerticesCount; + return self; +} + +void spDeformTimeline_setFrame (spDeformTimeline* self, int frameIndex, float time, float* vertices) { + self->frames[frameIndex] = time; + + FREE(self->frameVertices[frameIndex]); + if (!vertices) + self->frameVertices[frameIndex] = 0; + else { + self->frameVertices[frameIndex] = MALLOC(float, self->frameVerticesCount); + memcpy(CONST_CAST(float*, self->frameVertices[frameIndex]), vertices, self->frameVerticesCount * sizeof(float)); + } +} + + /**/ /** Fires events for frames > lastTime and <= time. */ void _spEventTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { + int* eventsCount, float alpha, int setupPose, int mixingOut) { spEventTimeline* self = (spEventTimeline*)timeline; int frame; if (!firedEvents) return; if (lastTime > time) { /* Fire events after last time for looped animations. */ - _spEventTimeline_apply(timeline, skeleton, lastTime, (float)INT_MAX, firedEvents, eventsCount, alpha); + _spEventTimeline_apply(timeline, skeleton, lastTime, (float)INT_MAX, firedEvents, eventsCount, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= self->frames[self->framesCount - 1]) /* Last time is after last frame. */ return; @@ -593,6 +869,10 @@ void _spEventTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, f } } +int _spEventTimeline_getPropertyId (const spTimeline* timeline) { + return SP_TIMELINE_EVENT << 24; +} + void _spEventTimeline_dispose (spTimeline* timeline) { spEventTimeline* self = SUB_CAST(spEventTimeline, timeline); int i; @@ -608,7 +888,7 @@ void _spEventTimeline_dispose (spTimeline* timeline) { spEventTimeline* spEventTimeline_create (int framesCount) { spEventTimeline* self = NEW(spEventTimeline); - _spTimeline_init(SUPER(self), SP_TIMELINE_EVENT, _spEventTimeline_dispose, _spEventTimeline_apply); + _spTimeline_init(SUPER(self), SP_TIMELINE_EVENT, _spEventTimeline_dispose, _spEventTimeline_apply, _spEventTimeline_getPropertyId); CONST_CAST(int, self->framesCount) = framesCount; CONST_CAST(float*, self->frames) = CALLOC(float, framesCount); @@ -627,13 +907,21 @@ void spEventTimeline_setFrame (spEventTimeline* self, int frameIndex, spEvent* e /**/ void _spDrawOrderTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int i; int frame; const int* drawOrderToSetupIndex; spDrawOrderTimeline* self = (spDrawOrderTimeline*)timeline; - if (time < self->frames[0]) return; /* Time is before first frame. */ + if (mixingOut && setupPose) { + memcpy(skeleton->drawOrder, skeleton->slots, self->slotsCount * sizeof(spSlot*)); + return; + } + + if (time < self->frames[0]) { + if (setupPose) memcpy(skeleton->drawOrder, skeleton->slots, self->slotsCount * sizeof(spSlot*)); + return; + } if (time >= self->frames[self->framesCount - 1]) /* Time is after last frame. */ frame = self->framesCount - 1; @@ -654,6 +942,10 @@ void _spDrawOrderTimeline_apply (const spTimeline* timeline, spSkeleton* skeleto UNUSED(alpha); } +int _spDrawOrderTimeline_getPropertyId (const spTimeline* timeline) { + return SP_TIMELINE_DRAWORDER << 24; +} + void _spDrawOrderTimeline_dispose (spTimeline* timeline) { spDrawOrderTimeline* self = SUB_CAST(spDrawOrderTimeline, timeline); int i; @@ -669,7 +961,7 @@ void _spDrawOrderTimeline_dispose (spTimeline* timeline) { spDrawOrderTimeline* spDrawOrderTimeline_create (int framesCount, int slotsCount) { spDrawOrderTimeline* self = NEW(spDrawOrderTimeline); - _spTimeline_init(SUPER(self), SP_TIMELINE_DRAWORDER, _spDrawOrderTimeline_dispose, _spDrawOrderTimeline_apply); + _spTimeline_init(SUPER(self), SP_TIMELINE_DRAWORDER, _spDrawOrderTimeline_dispose, _spDrawOrderTimeline_apply, _spDrawOrderTimeline_getPropertyId); CONST_CAST(int, self->framesCount) = framesCount; CONST_CAST(float*, self->frames) = CALLOC(float, framesCount); @@ -691,135 +983,41 @@ void spDrawOrderTimeline_setFrame (spDrawOrderTimeline* self, int frameIndex, fl } } -/**/ - -void _spDeformTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, spEvent** firedEvents, - int* eventsCount, float alpha) { - int frame, i, vertexCount; - float percent, frameTime; - const float* prevVertices; - const float* nextVertices; - spDeformTimeline* self = (spDeformTimeline*)timeline; - - spSlot *slot = skeleton->slots[self->slotIndex]; - - if (slot->attachment != self->attachment) { - if (!slot->attachment) return; - switch (slot->attachment->type) { - case SP_ATTACHMENT_MESH: { - spMeshAttachment* mesh = SUB_CAST(spMeshAttachment, slot->attachment); - if (!mesh->inheritDeform || mesh->parentMesh != (void*)self->attachment) return; - break; - } - default: - return; - } - } - - if (time < self->frames[0]) return; /* Time is before first frame. */ - - vertexCount = self->frameVerticesCount; - if (slot->attachmentVerticesCount < vertexCount) { - if (slot->attachmentVerticesCapacity < vertexCount) { - FREE(slot->attachmentVertices); - slot->attachmentVertices = MALLOC(float, vertexCount); - slot->attachmentVerticesCapacity = vertexCount; - } - } - if (slot->attachmentVerticesCount != vertexCount) alpha = 1; /* Don't mix from uninitialized slot vertices. */ - slot->attachmentVerticesCount = vertexCount; - - if (time >= self->frames[self->framesCount - 1]) { - /* Time is after last frame. */ - const float* lastVertices = self->frameVertices[self->framesCount - 1]; - if (alpha < 1) { - for (i = 0; i < vertexCount; ++i) - slot->attachmentVertices[i] += (lastVertices[i] - slot->attachmentVertices[i]) * alpha; - } else - memcpy(slot->attachmentVertices, lastVertices, vertexCount * sizeof(float)); - return; - } - - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch1(self->frames, self->framesCount, time); - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame - 1, 1 - (time - frameTime) / (self->frames[frame - 1] - frameTime)); - - prevVertices = self->frameVertices[frame - 1]; - nextVertices = self->frameVertices[frame]; - - if (alpha < 1) { - for (i = 0; i < vertexCount; ++i) { - float prev = prevVertices[i]; - slot->attachmentVertices[i] += (prev + (nextVertices[i] - prev) * percent - slot->attachmentVertices[i]) * alpha; - } - } else { - for (i = 0; i < vertexCount; ++i) { - float prev = prevVertices[i]; - slot->attachmentVertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - - UNUSED(lastTime); - UNUSED(firedEvents); - UNUSED(eventsCount); -} - -void _spDeformTimeline_dispose (spTimeline* timeline) { - spDeformTimeline* self = SUB_CAST(spDeformTimeline, timeline); - int i; - - _spCurveTimeline_deinit(SUPER(self)); - - for (i = 0; i < self->framesCount; ++i) - FREE(self->frameVertices[i]); - FREE(self->frameVertices); - FREE(self->frames); - FREE(self); -} - -spDeformTimeline* spDeformTimeline_create (int framesCount, int frameVerticesCount) { - spDeformTimeline* self = NEW(spDeformTimeline); - _spCurveTimeline_init(SUPER(self), SP_TIMELINE_DEFORM, framesCount, _spDeformTimeline_dispose, _spDeformTimeline_apply); - CONST_CAST(int, self->framesCount) = framesCount; - CONST_CAST(float*, self->frames) = CALLOC(float, self->framesCount); - CONST_CAST(float**, self->frameVertices) = CALLOC(float*, framesCount); - CONST_CAST(int, self->frameVerticesCount) = frameVerticesCount; - return self; -} - -void spDeformTimeline_setFrame (spDeformTimeline* self, int frameIndex, float time, float* vertices) { - self->frames[frameIndex] = time; - - FREE(self->frameVertices[frameIndex]); - if (!vertices) - self->frameVertices[frameIndex] = 0; - else { - self->frameVertices[frameIndex] = MALLOC(float, self->frameVerticesCount); - memcpy(CONST_CAST(float*, self->frameVertices[frameIndex]), vertices, self->frameVerticesCount * sizeof(float)); - } -} - - /**/ static const int IKCONSTRAINT_PREV_TIME = -3, IKCONSTRAINT_PREV_MIX = -2, IKCONSTRAINT_PREV_BEND_DIRECTION = -1; static const int IKCONSTRAINT_MIX = 1, IKCONSTRAINT_BEND_DIRECTION = 2; void _spIkConstraintTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int frame; float frameTime, percent, mix; + float *frames; + int framesCount; spIkConstraint* constraint; spIkConstraintTimeline* self = (spIkConstraintTimeline*)timeline; - if (time < self->frames[0]) return; /* Time is before first frame. */ - constraint = skeleton->ikConstraints[self->ikConstraintIndex]; - if (time >= self->frames[self->framesCount - IKCONSTRAINT_ENTRIES]) { /* Time is after last frame. */ - constraint->mix += (self->frames[self->framesCount + IKCONSTRAINT_PREV_MIX] - constraint->mix) * alpha; - constraint->bendDirection = (int)self->frames[self->framesCount + IKCONSTRAINT_PREV_BEND_DIRECTION]; + if (time < self->frames[0]) { + if (setupPose) { + constraint->mix = constraint->data->mix; + constraint->bendDirection = constraint->data->bendDirection; + } + return; + } + + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - IKCONSTRAINT_ENTRIES]) { /* Time is after last frame. */ + if (setupPose) { + constraint->mix = constraint->data->mix + (frames[framesCount + IKCONSTRAINT_PREV_MIX] - constraint->data->mix) * alpha; + constraint->bendDirection = mixingOut ? constraint->data->bendDirection + : (int)frames[framesCount + IKCONSTRAINT_PREV_BEND_DIRECTION]; + } else { + constraint->mix += (frames[framesCount + IKCONSTRAINT_PREV_MIX] - constraint->mix) * alpha; + if (!mixingOut) constraint->bendDirection = (int)frames[framesCount + IKCONSTRAINT_PREV_BEND_DIRECTION]; + } return; } @@ -829,16 +1027,25 @@ void _spIkConstraintTimeline_apply (const spTimeline* timeline, spSkeleton* skel frameTime = self->frames[frame]; percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / IKCONSTRAINT_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + IKCONSTRAINT_PREV_TIME] - frameTime)); - constraint->mix += (mix + (self->frames[frame + IKCONSTRAINT_MIX] - mix) * percent - constraint->mix) * alpha; - constraint->bendDirection = (int)self->frames[frame + IKCONSTRAINT_PREV_BEND_DIRECTION]; + if (setupPose) { + constraint->mix = constraint->data->mix + (mix + (frames[frame + IKCONSTRAINT_MIX] - mix) * percent - constraint->data->mix) * alpha; + constraint->bendDirection = mixingOut ? constraint->data->bendDirection : (int)frames[frame + IKCONSTRAINT_PREV_BEND_DIRECTION]; + } else { + constraint->mix += (mix + (frames[frame + IKCONSTRAINT_MIX] - mix) * percent - constraint->mix) * alpha; + if (!mixingOut) constraint->bendDirection = (int)frames[frame + IKCONSTRAINT_PREV_BEND_DIRECTION]; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spIkConstraintTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_IKCONSTRAINT << 24) + SUB_CAST(spIkConstraintTimeline, timeline)->ikConstraintIndex; +} + spIkConstraintTimeline* spIkConstraintTimeline_create (int framesCount) { - return (spIkConstraintTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_IKCONSTRAINT, IKCONSTRAINT_ENTRIES, _spIkConstraintTimeline_apply); + return (spIkConstraintTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_IKCONSTRAINT, IKCONSTRAINT_ENTRIES, _spIkConstraintTimeline_apply, _spIkConstraintTimeline_getPropertyId); } void spIkConstraintTimeline_setFrame (spIkConstraintTimeline* self, int frameIndex, float time, float mix, int bendDirection) { @@ -860,46 +1067,74 @@ static const int TRANSFORMCONSTRAINT_SCALE = 3; static const int TRANSFORMCONSTRAINT_SHEAR = 4; void _spTransformConstraintTimeline_apply (const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int frame; float frameTime, percent, rotate, translate, scale, shear; spTransformConstraint* constraint; spTransformConstraintTimeline* self = (spTransformConstraintTimeline*)timeline; - - if (time < self->frames[0]) return; /* Time is before first frame. */ + float *frames; + int framesCount; constraint = skeleton->transformConstraints[self->transformConstraintIndex]; - - if (time >= self->frames[self->framesCount - TRANSFORMCONSTRAINT_ENTRIES]) { /* Time is after last frame. */ - int len = self->framesCount; - constraint->rotateMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_ROTATE] - constraint->rotateMix) * alpha; - constraint->translateMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_TRANSLATE] - constraint->translateMix) * alpha; - constraint->scaleMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_SCALE] - constraint->scaleMix) * alpha; - constraint->shearMix += (self->frames[len + TRANSFORMCONSTRAINT_PREV_SHEAR] - constraint->shearMix) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + spTransformConstraintData* data = constraint->data; + constraint->rotateMix = data->rotateMix; + constraint->translateMix = data->translateMix; + constraint->scaleMix = data->scaleMix; + constraint->shearMix = data->shearMix; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, TRANSFORMCONSTRAINT_ENTRIES); - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSFORMCONSTRAINT_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + TRANSFORMCONSTRAINT_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - TRANSFORMCONSTRAINT_ENTRIES]) { /* Time is after last frame. */ + int i = framesCount; + rotate = frames[i + TRANSFORMCONSTRAINT_PREV_ROTATE]; + translate = frames[i + TRANSFORMCONSTRAINT_PREV_TRANSLATE]; + scale = frames[i + TRANSFORMCONSTRAINT_PREV_SCALE]; + shear = frames[i + TRANSFORMCONSTRAINT_PREV_SHEAR]; + } else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, TRANSFORMCONSTRAINT_ENTRIES); + rotate = frames[frame + TRANSFORMCONSTRAINT_PREV_ROTATE]; + translate = frames[frame + TRANSFORMCONSTRAINT_PREV_TRANSLATE]; + scale = frames[frame + TRANSFORMCONSTRAINT_PREV_SCALE]; + shear = frames[frame + TRANSFORMCONSTRAINT_PREV_SHEAR]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / TRANSFORMCONSTRAINT_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TRANSFORMCONSTRAINT_PREV_TIME] - frameTime)); - rotate = self->frames[frame + TRANSFORMCONSTRAINT_PREV_ROTATE]; - translate = self->frames[frame + TRANSFORMCONSTRAINT_PREV_TRANSLATE]; - scale = self->frames[frame + TRANSFORMCONSTRAINT_PREV_SCALE]; - shear = self->frames[frame + TRANSFORMCONSTRAINT_PREV_SHEAR]; - constraint->rotateMix += (rotate + (self->frames[frame + TRANSFORMCONSTRAINT_ROTATE] - rotate) * percent - constraint->rotateMix) * alpha; - constraint->translateMix += (translate + (self->frames[frame + TRANSFORMCONSTRAINT_TRANSLATE] - translate) * percent - constraint->translateMix) * alpha; - constraint->scaleMix += (scale + (self->frames[frame + TRANSFORMCONSTRAINT_SCALE] - scale) * percent - constraint->scaleMix) * alpha; - constraint->shearMix += (shear + (self->frames[frame + TRANSFORMCONSTRAINT_SHEAR] - shear) * percent - constraint->shearMix) * alpha; + rotate += (frames[frame + TRANSFORMCONSTRAINT_ROTATE] - rotate) * percent; + translate += (frames[frame + TRANSFORMCONSTRAINT_TRANSLATE] - translate) * percent; + scale += (frames[frame + TRANSFORMCONSTRAINT_SCALE] - scale) * percent; + shear += (frames[frame + TRANSFORMCONSTRAINT_SHEAR] - shear) * percent; + } + if (setupPose) { + spTransformConstraintData* 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; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spTransformConstraintTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_TRANSFORMCONSTRAINT << 24) + SUB_CAST(spTransformConstraintTimeline, timeline)->transformConstraintIndex; +} + spTransformConstraintTimeline* spTransformConstraintTimeline_create (int framesCount) { - return (spTransformConstraintTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_TRANSFORMCONSTRAINT, TRANSFORMCONSTRAINT_ENTRIES, _spTransformConstraintTimeline_apply); + return (spTransformConstraintTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_TRANSFORMCONSTRAINT, TRANSFORMCONSTRAINT_ENTRIES, _spTransformConstraintTimeline_apply, _spTransformConstraintTimeline_getPropertyId); } void spTransformConstraintTimeline_setFrame (spTransformConstraintTimeline* self, int frameIndex, float time, float rotateMix, float translateMix, float scaleMix, float shearMix) { @@ -918,37 +1153,52 @@ static const int PATHCONSTRAINTPOSITION_PREV_VALUE = -1; static const int PATHCONSTRAINTPOSITION_VALUE = 1; void _spPathConstraintPositionTimeline_apply(const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int frame; float frameTime, percent, position; spPathConstraint* constraint; spPathConstraintPositionTimeline* self = (spPathConstraintPositionTimeline*)timeline; - - if (time < self->frames[0]) return; /* Time is before first frame. */ + float* frames; + int framesCount; constraint = skeleton->pathConstraints[self->pathConstraintIndex]; - - if (time >= self->frames[self->framesCount - PATHCONSTRAINTPOSITION_ENTRIES]) { /* Time is after last frame. */ - int len = self->framesCount; - constraint->position += (self->frames[len + PATHCONSTRAINTPOSITION_PREV_VALUE] - constraint->position) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + constraint->position = constraint->data->position; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, PATHCONSTRAINTPOSITION_ENTRIES); - position = self->frames[frame + PATHCONSTRAINTPOSITION_PREV_VALUE]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTPOSITION_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + PATHCONSTRAINTPOSITION_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - PATHCONSTRAINTPOSITION_ENTRIES]) /* Time is after last frame. */ + position = frames[framesCount + PATHCONSTRAINTPOSITION_PREV_VALUE]; + else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, PATHCONSTRAINTPOSITION_ENTRIES); + position = frames[frame + PATHCONSTRAINTPOSITION_PREV_VALUE]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTPOSITION_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PATHCONSTRAINTPOSITION_PREV_TIME] - frameTime)); - constraint->position += (position + (self->frames[frame + PATHCONSTRAINTPOSITION_VALUE] - position) * percent - constraint->position) * alpha; + position += (frames[frame + PATHCONSTRAINTPOSITION_VALUE] - position) * percent; + } + if (setupPose) + constraint->position = constraint->data->position + (position - constraint->data->position) * alpha; + else + constraint->position += (position - constraint->position) * alpha; UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spPathConstraintPositionTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_PATHCONSTRAINTPOSITION << 24) + SUB_CAST(spPathConstraintPositionTimeline, timeline)->pathConstraintIndex; +} + spPathConstraintPositionTimeline* spPathConstraintPositionTimeline_create (int framesCount) { - return (spPathConstraintPositionTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTPOSITION, PATHCONSTRAINTPOSITION_ENTRIES, _spPathConstraintPositionTimeline_apply); + return (spPathConstraintPositionTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTPOSITION, PATHCONSTRAINTPOSITION_ENTRIES, _spPathConstraintPositionTimeline_apply, _spPathConstraintPositionTimeline_getPropertyId); } void spPathConstraintPositionTimeline_setFrame (spPathConstraintPositionTimeline* self, int frameIndex, float time, float value) { @@ -963,37 +1213,53 @@ static const int PATHCONSTRAINTSPACING_PREV_VALUE = -1; static const int PATHCONSTRAINTSPACING_VALUE = 1; void _spPathConstraintSpacingTimeline_apply(const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int frame; float frameTime, percent, spacing; spPathConstraint* constraint; spPathConstraintSpacingTimeline* self = (spPathConstraintSpacingTimeline*)timeline; - - if (time < self->frames[0]) return; /* Time is before first frame. */ + float* frames; + int framesCount; constraint = skeleton->pathConstraints[self->pathConstraintIndex]; - - if (time >= self->frames[self->framesCount - PATHCONSTRAINTSPACING_ENTRIES]) { /* Time is after last frame. */ - int len = self->framesCount; - constraint->spacing += (self->frames[len + PATHCONSTRAINTSPACING_PREV_VALUE] - constraint->spacing) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + constraint->spacing = constraint->data->spacing; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, PATHCONSTRAINTSPACING_ENTRIES); - spacing = self->frames[frame + PATHCONSTRAINTSPACING_PREV_VALUE]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTSPACING_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + PATHCONSTRAINTSPACING_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - PATHCONSTRAINTSPACING_ENTRIES]) /* Time is after last frame. */ + spacing = frames[framesCount + PATHCONSTRAINTSPACING_PREV_VALUE]; + else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, PATHCONSTRAINTSPACING_ENTRIES); + spacing = frames[frame + PATHCONSTRAINTSPACING_PREV_VALUE]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTSPACING_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PATHCONSTRAINTSPACING_PREV_TIME] - frameTime)); - constraint->spacing += (spacing + (self->frames[frame + PATHCONSTRAINTSPACING_VALUE] - spacing) * percent - constraint->spacing) * alpha; + spacing += (frames[frame + PATHCONSTRAINTSPACING_VALUE] - spacing) * percent; + } + + if (setupPose) + constraint->spacing = constraint->data->spacing + (spacing - constraint->data->spacing) * alpha; + else + constraint->spacing += (spacing - constraint->spacing) * alpha; UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spPathConstraintSpacingTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_PATHCONSTRAINTSPACING << 24) + SUB_CAST(spPathConstraintSpacingTimeline, timeline)->pathConstraintIndex; +} + spPathConstraintSpacingTimeline* spPathConstraintSpacingTimeline_create (int framesCount) { - return (spPathConstraintSpacingTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTSPACING, PATHCONSTRAINTSPACING_ENTRIES, _spPathConstraintSpacingTimeline_apply); + return (spPathConstraintSpacingTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTSPACING, PATHCONSTRAINTSPACING_ENTRIES, _spPathConstraintSpacingTimeline_apply, _spPathConstraintSpacingTimeline_getPropertyId); } void spPathConstraintSpacingTimeline_setFrame (spPathConstraintSpacingTimeline* self, int frameIndex, float time, float value) { @@ -1011,40 +1277,60 @@ static const int PATHCONSTRAINTMIX_ROTATE = 1; static const int PATHCONSTRAINTMIX_TRANSLATE = 2; void _spPathConstraintMixTimeline_apply(const spTimeline* timeline, spSkeleton* skeleton, float lastTime, float time, - spEvent** firedEvents, int* eventsCount, float alpha) { + spEvent** firedEvents, int* eventsCount, float alpha, int setupPose, int mixingOut) { int frame; float frameTime, percent, rotate, translate; spPathConstraint* constraint; spPathConstraintMixTimeline* self = (spPathConstraintMixTimeline*)timeline; - - if (time < self->frames[0]) return; /* Time is before first frame. */ + float* frames; + int framesCount; constraint = skeleton->pathConstraints[self->pathConstraintIndex]; - - if (time >= self->frames[self->framesCount - PATHCONSTRAINTMIX_ENTRIES]) { /* Time is after last frame. */ - int len = self->framesCount; - constraint->rotateMix += (self->frames[len + PATHCONSTRAINTMIX_PREV_ROTATE] - constraint->rotateMix) * alpha; - constraint->translateMix += (self->frames[len + PATHCONSTRAINTMIX_PREV_TRANSLATE] - constraint->translateMix) * alpha; + if (time < self->frames[0]) { + if (setupPose) { + constraint->rotateMix = constraint->data->rotateMix; + constraint->translateMix = constraint->data->translateMix; + } return; } - /* Interpolate between the previous frame and the current frame. */ - frame = binarySearch(self->frames, self->framesCount, time, PATHCONSTRAINTMIX_ENTRIES); - rotate = self->frames[frame + PATHCONSTRAINTMIX_PREV_ROTATE]; - translate = self->frames[frame + PATHCONSTRAINTMIX_PREV_TRANSLATE]; - frameTime = self->frames[frame]; - percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTMIX_ENTRIES - 1, 1 - (time - frameTime) / (self->frames[frame + PATHCONSTRAINTMIX_PREV_TIME] - frameTime)); + frames = self->frames; + framesCount = self->framesCount; + if (time >= frames[framesCount - PATHCONSTRAINTMIX_ENTRIES]) { /* Time is after last frame. */ + rotate = frames[framesCount + PATHCONSTRAINTMIX_PREV_ROTATE]; + translate = frames[framesCount + PATHCONSTRAINTMIX_PREV_TRANSLATE]; + } else { + /* Interpolate between the previous frame and the current frame. */ + frame = binarySearch(frames, framesCount, time, PATHCONSTRAINTMIX_ENTRIES); + rotate = frames[frame + PATHCONSTRAINTMIX_PREV_ROTATE]; + translate = frames[frame + PATHCONSTRAINTMIX_PREV_TRANSLATE]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(self), frame / PATHCONSTRAINTMIX_ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PATHCONSTRAINTMIX_PREV_TIME] - frameTime)); - constraint->rotateMix += (rotate + (self->frames[frame + PATHCONSTRAINTMIX_ROTATE] - rotate) * percent - constraint->rotateMix) * alpha; - constraint->translateMix += (translate + (self->frames[frame + PATHCONSTRAINTMIX_TRANSLATE] - translate) * percent - constraint->translateMix) * alpha; + rotate += (frames[frame + PATHCONSTRAINTMIX_ROTATE] - rotate) * percent; + translate += (frames[frame + PATHCONSTRAINTMIX_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; + } UNUSED(lastTime); UNUSED(firedEvents); UNUSED(eventsCount); } +int _spPathConstraintMixTimeline_getPropertyId (const spTimeline* timeline) { + return (SP_TIMELINE_PATHCONSTRAINTMIX << 24) + SUB_CAST(spPathConstraintMixTimeline, timeline)->pathConstraintIndex; +} + spPathConstraintMixTimeline* spPathConstraintMixTimeline_create (int framesCount) { - return (spPathConstraintMixTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTMIX, PATHCONSTRAINTMIX_ENTRIES, _spPathConstraintMixTimeline_apply); + return (spPathConstraintMixTimeline*)_spBaseTimeline_create(framesCount, SP_TIMELINE_PATHCONSTRAINTMIX, PATHCONSTRAINTMIX_ENTRIES, _spPathConstraintMixTimeline_apply, _spPathConstraintMixTimeline_getPropertyId); } void spPathConstraintMixTimeline_setFrame (spPathConstraintMixTimeline* self, int frameIndex, float time, float rotateMix, float translateMix) { diff --git a/spine-c/src/spine/AnimationState.c b/spine-c/src/spine/AnimationState.c index 00b52b0b7..909d8a286 100644 --- a/spine-c/src/spine/AnimationState.c +++ b/spine-c/src/spine/AnimationState.c @@ -30,188 +30,648 @@ #include #include -#include +#include -spTrackEntry* _spTrackEntry_create (spAnimationState* state) { - spTrackEntry* self = NEW(spTrackEntry); - CONST_CAST(spAnimationState*, self->state) = state; - self->timeScale = 1; - self->lastTime = -1; - self->mix = 1; +static spAnimation* SP_EMPTY_ANIMATION = 0; + +/* Forward declaration of some "private" functions so we can keep + the same function order in C as we have method order in Java */ +void _spAnimationState_disposeTrackEntry (spTrackEntry* entry); +void _spAnimationState_disposeTrackEntries (spAnimationState* state, spTrackEntry* entry); +void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta, int /*boolean*/ canEnd); +float _spAnimationState_applyMixingFrom (spAnimationState* self, spTrackEntry* entry, spSkeleton* skeleton); +void _spAnimationState_applyRotateTimeline (spAnimationState* self, spTimeline* timeline, spSkeleton* skeleton, float time, float alpha, int /*boolean*/ setupPose, float* timelinesRotation, int i, int /*boolean*/ firstFrame); +void _spAnimationState_queueEvents (spAnimationState* self, spTrackEntry* entry, float animationTime); +void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEntry* current); +spTrackEntry* _spAnimationState_expandToIndex (spAnimationState* self, int index); +spTrackEntry* _spAnimationState_trackEntry (spAnimationState* self, int trackIndex, spAnimation* animation, int /*boolean*/ loop, spTrackEntry* last); +void _spAnimationState_disposeNext (spAnimationState* self, spTrackEntry* entry); +void _spAnimationState_animationsChanged (spAnimationState* self); +float* _spAnimationState_resizeTimelinesRotation(spTrackEntry* entry, int newSize); +int* _spAnimationState_resizeTimelinesFirst(spTrackEntry* entry, int newSize); +void _spAnimationState_ensureCapacityPropertyIDs(spAnimationState* self, int capacity); +int _spAnimationState_addPropertyID(spAnimationState* self, int id); +void _spAnimationState_setTimelinesFirst (spAnimationState* self, spTrackEntry* entry); +void _spAnimationState_checkTimelinesFirst (spAnimationState* self, spTrackEntry* entry); +void _spAnimationState_checkTimelinesUsage (spAnimationState* self, spTrackEntry* entry); + +_spEventQueue* _spEventQueue_create (_spAnimationState* state) { + _spEventQueue *self = CALLOC(_spEventQueue, 1); + self->state = state; + self->objectsCount = 0; + self->objectsCapacity = 16; + self->objects = CALLOC(_spEventQueueItem, self->objectsCapacity); + self->drainDisabled = 0; return self; } -void _spTrackEntry_dispose (spTrackEntry* self) { - if (self->previous) SUB_CAST(_spAnimationState, self->state)->disposeTrackEntry(self->previous); - FREE(self); +void _spEventQueue_free (_spEventQueue* self) { + FREE(self->objects); } -/**/ +void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) { + if (self->objectsCount + newElements > self->objectsCapacity) { + _spEventQueueItem* newObjects; + self->objectsCapacity <<= 1; + newObjects = CALLOC(_spEventQueueItem, self->objectsCapacity); + memcpy(newObjects, self->objects, self->objectsCount); + FREE(self->objects); + self->objects = newObjects; + } +} -spTrackEntry* _spAnimationState_createTrackEntry (spAnimationState* self) { - return _spTrackEntry_create(self); +void _spEventQueue_addType (_spEventQueue* self, spEventType type) { + _spEventQueue_ensureCapacity(self, 1); + self->objects[self->objectsCount++].type = type; +} + +void _spEventQueue_addEntry (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_ensureCapacity(self, 1); + self->objects[self->objectsCount++].entry = entry; +} + +void _spEventQueue_addEvent (_spEventQueue* self, spEvent* event) { + _spEventQueue_ensureCapacity(self, 1); + self->objects[self->objectsCount++].event = event; +} + +void _spEventQueue_start (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_addType(self, SP_ANIMATION_START); + _spEventQueue_addEntry(self, entry); + self->state->animationsChanged = 1; +} + +void _spEventQueue_interrupt (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_addType(self, SP_ANIMATION_INTERRUPT); + _spEventQueue_addEntry(self, entry); +} + +void _spEventQueue_end (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_addType(self, SP_ANIMATION_END); + _spEventQueue_addEntry(self, entry); + self->state->animationsChanged = 1; +} + +void _spEventQueue_dispose (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_addType(self, SP_ANIMATION_DISPOSE); + _spEventQueue_addEntry(self, entry); +} + +void _spEventQueue_complete (_spEventQueue* self, spTrackEntry* entry) { + _spEventQueue_addType(self, SP_ANIMATION_COMPLETE); + _spEventQueue_addEntry(self, entry); +} + +void _spEventQueue_event (_spEventQueue* self, spTrackEntry* entry, spEvent* event) { + _spEventQueue_addType(self, SP_ANIMATION_EVENT); + _spEventQueue_addEntry(self, entry); + _spEventQueue_addEvent(self, event); +} + +void _spEventQueue_clear (_spEventQueue* self) { + self->objectsCount = 0; +} + +void _spEventQueue_drain (_spEventQueue* self) { + int i; + if (self->drainDisabled) return; + self->drainDisabled = 1; + for (i = 0; i < self->objectsCount; i += 2) { + spEventType type = self->objects[i].type; + spTrackEntry* entry = self->objects[i+1].entry; + spEvent* event; + switch (type) { + case SP_ANIMATION_START: + case SP_ANIMATION_INTERRUPT: + case SP_ANIMATION_COMPLETE: + if (entry->listener) entry->listener(SUPER(self->state), type, entry, 0); + if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0); + break; + case SP_ANIMATION_END: + if (entry->listener) entry->listener(SUPER(self->state), type, entry, 0); + if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0); + /* Fall through. */ + case SP_ANIMATION_DISPOSE: + if (entry->listener) entry->listener(SUPER(self->state), type, entry, 0); + if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0); + _spAnimationState_disposeTrackEntry(entry); + break; + case SP_ANIMATION_EVENT: + event = self->objects[i+2].event; + if (entry->listener) entry->listener(SUPER(self->state), type, entry, event); + if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, event); + i++; + break; + } + } + _spEventQueue_clear(self); + + self->drainDisabled = 0; } void _spAnimationState_disposeTrackEntry (spTrackEntry* entry) { - _spTrackEntry_dispose(entry); + FREE(entry); +} + +void _spAnimationState_disposeTrackEntries (spAnimationState* state, spTrackEntry* entry) { + while (entry) { + spTrackEntry* next = entry->next; + _spAnimationState_disposeTrackEntry(entry); + entry = next; + } } spAnimationState* spAnimationState_create (spAnimationStateData* data) { - _spAnimationState* internal = NEW(_spAnimationState); - spAnimationState* self = SUPER(internal); - internal->events = MALLOC(spEvent*, 256); - self->timeScale = 1; - CONST_CAST(spAnimationStateData*, self->data) = data; - internal->createTrackEntry = _spAnimationState_createTrackEntry; - internal->disposeTrackEntry = _spAnimationState_disposeTrackEntry; - return self; -} + _spAnimationState* internal; + spAnimationState* self; -void _spAnimationState_disposeAllEntries (spAnimationState* self, spTrackEntry* entry) { - _spAnimationState* internal = SUB_CAST(_spAnimationState, self); - while (entry) { - spTrackEntry* next = entry->next; - internal->disposeTrackEntry(entry); - entry = next; + if (!SP_EMPTY_ANIMATION) { + SP_EMPTY_ANIMATION = (spAnimation*)1; /* dirty trick so we can recursively call spAnimation_create */ + SP_EMPTY_ANIMATION = spAnimation_create("", 0); } + + internal = NEW(_spAnimationState); + self = SUPER(internal); + + CONST_CAST(spAnimationStateData*, self->data) = data; + self->timeScale = 1; + + internal->queue = _spEventQueue_create(internal); + internal->events = CALLOC(spEvent*, 128); + + internal->propertyIDs = CALLOC(int, 128); + internal->propertyIDsCapacity = 128; + + return self; } void spAnimationState_dispose (spAnimationState* self) { int i; _spAnimationState* internal = SUB_CAST(_spAnimationState, self); - FREE(internal->events); - for (i = 0; i < self->tracksCount; ++i) - _spAnimationState_disposeAllEntries(self, self->tracks[i]); + for (i = 0; i < self->tracksCount; i++) + _spAnimationState_disposeTrackEntries(self, self->tracks[i]); FREE(self->tracks); - FREE(self); + _spEventQueue_free(internal->queue); + FREE(internal->events); + FREE(internal->propertyIDs); } -void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEntry* entry); - void spAnimationState_update (spAnimationState* self, float delta) { - int i; - float previousDelta; + int i, n; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); delta *= self->timeScale; - for (i = 0; i < self->tracksCount; ++i) { + for (i = 0, n = self->tracksCount; i < n; i++) { + float currentDelta; spTrackEntry* current = self->tracks[i]; + spTrackEntry* next; if (!current) continue; - current->time += delta * current->timeScale; - if (current->previous) { - previousDelta = delta * current->previous->timeScale; - current->previous->time += previousDelta; - current->mixTime += previousDelta; + current->animationLast = current->nextAnimationLast; + current->trackLast = current->nextTrackLast; + + currentDelta = delta * current->timeScale; + + if (current->delay > 0) { + current->delay -= currentDelta; + if (current->delay > 0) continue; + currentDelta = -current->delay; + current->delay = 0; } - if (current->next) { - current->next->time = current->lastTime - current->next->delay; - if (current->next->time >= 0) _spAnimationState_setCurrent(self, i, current->next); + next = current->next; + if (next) { + /* When the next entry's delay is passed, change to the next entry, preserving leftover time. */ + float nextTime = current->trackLast - next->delay; + if (nextTime >= 0) { + next->delay = 0; + next->trackTime = nextTime + delta * next->timeScale; + current->trackTime += currentDelta; + _spAnimationState_setCurrent(self, i, next); + while (next->mixingFrom) { + next->mixTime += currentDelta; + next = next->mixingFrom; + } + continue; + } + _spAnimationState_updateMixingFrom(self, current, delta, 1); } else { - /* End non-looping animation when it reaches its end time and there is no next entry. */ - if (!current->loop && current->lastTime >= current->endTime) spAnimationState_clearTrack(self, i); + _spAnimationState_updateMixingFrom(self, current, delta, 1); + /* Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. */ + if (current->trackLast >= current->trackEnd && current->mixingFrom == 0) { + self->tracks[i] = 0; + _spEventQueue_end(internal->queue, current); + _spAnimationState_disposeNext(self, current); + continue; + } } + + current->trackTime += currentDelta; } + + _spEventQueue_drain(internal->queue); +} + +void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta, int /*boolean*/ canEnd) { + spTrackEntry* from = entry->mixingFrom; + spTrackEntry* newFrom; + float mixingFromDelta; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + if (!from) return; + + if (canEnd && entry->mixTime >= entry->mixDuration && entry->mixTime > 0) { + _spEventQueue_end(internal->queue, from); + newFrom = from->mixingFrom; + entry->mixingFrom = newFrom; + if (!newFrom) return; + entry->mixTime = from->mixTime; + entry->mixDuration = from->mixDuration; + from = newFrom; + } + + from->animationLast = from->nextAnimationLast; + from->trackLast = from->nextTrackLast; + mixingFromDelta = delta * from->timeScale; + from->trackTime += mixingFromDelta; + entry->mixTime += mixingFromDelta; + + _spAnimationState_updateMixingFrom(self, from, delta, canEnd && from->alpha == 1); } void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + spTrackEntry* current; + int i, ii, n; + float animationLast, animationTime; + int timelineCount; + spTimeline** timelines; + int /*boolean*/ firstFrame; + float* timelinesRotation; + int* timelinesFirst; + spTimeline* timeline; - int i, ii; - int eventsCount; - int entryChanged; - float time; - spTrackEntry* previous; - for (i = 0; i < self->tracksCount; ++i) { - spTrackEntry* current = self->tracks[i]; - if (!current) continue; + if (internal->animationsChanged) _spAnimationState_animationsChanged(self); - eventsCount = 0; + for (i = 0, n = self->tracksCount; i < n; i++) { + float mix; + current = self->tracks[i]; + if (!current || current->delay > 0) continue; - time = current->time; - if (!current->loop && time > current->endTime) time = current->endTime; + /* Apply mixing from entries first. */ + mix = current->alpha; + if (current->mixingFrom) mix *= _spAnimationState_applyMixingFrom(self, current, skeleton); - previous = current->previous; - if (!previous) { - if (current->mix == 1) { - spAnimation_apply(current->animation, skeleton, current->lastTime, time, - current->loop, internal->events, &eventsCount); - } else { - spAnimation_mix(current->animation, skeleton, current->lastTime, time, - current->loop, internal->events, &eventsCount, current->mix); - } + /* Apply current entry. */ + animationLast = current->animationLast; animationTime = spTrackEntry_getAnimationTime(current); + timelineCount = current->animation->timelinesCount; + timelines = current->animation->timelines; + if (mix == 1) { + for (ii = 0; ii < timelineCount; ii++) + spTimeline_apply(timelines[ii], skeleton, animationLast, animationTime, internal->events, &internal->eventsCount, 1, 1, 0); } else { - float alpha = current->mixTime / current->mixDuration * current->mix; + firstFrame = current->timelinesRotationCount == 0; + if (firstFrame) _spAnimationState_resizeTimelinesRotation(current, timelineCount << 1); + timelinesRotation = current->timelinesRotation; - float previousTime = previous->time; - if (!previous->loop && previousTime > previous->endTime) previousTime = previous->endTime; - spAnimation_apply(previous->animation, skeleton, previousTime, previousTime, previous->loop, 0, 0); - - if (alpha >= 1) { - alpha = 1; - internal->disposeTrackEntry(current->previous); - current->previous = 0; - } - spAnimation_mix(current->animation, skeleton, current->lastTime, time, - current->loop, internal->events, &eventsCount, alpha); - } - - entryChanged = 0; - for (ii = 0; ii < eventsCount; ++ii) { - spEvent* event = internal->events[ii]; - if (current->listener) { - current->listener(self, i, SP_ANIMATION_EVENT, event, 0); - if (self->tracks[i] != current) { - entryChanged = 1; - break; - } - } - if (self->listener) { - self->listener(self, i, SP_ANIMATION_EVENT, event, 0); - if (self->tracks[i] != current) { - entryChanged = 1; - break; - } + timelinesFirst = current->timelinesFirst; + for (ii = 0; ii < timelineCount; ii++) { + timeline = timelines[ii]; + if (timeline->type == SP_TIMELINE_ROTATE) + _spAnimationState_applyRotateTimeline(self, timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + else + spTimeline_apply(timeline, skeleton, animationLast, animationTime, internal->events, &internal->eventsCount, mix, timelinesFirst[ii], 0); } } - if (entryChanged) continue; - - /* Check if completed the animation or a loop iteration. */ - if (current->loop ? (FMOD(current->lastTime, current->endTime) > FMOD(time, current->endTime)) - : (current->lastTime < current->endTime && time >= current->endTime)) { - int count = (int)(time / current->endTime); - if (current->listener) { - current->listener(self, i, SP_ANIMATION_COMPLETE, 0, count); - if (self->tracks[i] != current) continue; - } - if (self->listener) { - self->listener(self, i, SP_ANIMATION_COMPLETE, 0, count); - if (self->tracks[i] != current) continue; - } - } - - current->lastTime = current->time; + _spAnimationState_queueEvents(self, current, animationTime); + current->nextAnimationLast = animationTime; + current->nextTrackLast = current->trackTime; } + + _spEventQueue_drain(internal->queue); +} + +float _spAnimationState_applyMixingFrom (spAnimationState* self, spTrackEntry* entry, spSkeleton* skeleton) { + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + float mix; + spEvent** events; + int /*boolean*/ attachments; + int /*boolean*/ drawOrder; + float animationLast; + float animationTime; + int timelineCount; + spTimeline** timelines; + int* timelinesFirst; + float alpha; + int /*boolean*/ firstFrame; + float* timelinesRotation; + spTimeline* timeline; + int /*boolean*/ setupPose; + int i; + + spTrackEntry* from = entry->mixingFrom; + if (from->mixingFrom) _spAnimationState_applyMixingFrom(self, from, skeleton); + + if (entry->mixDuration == 0) /* Single frame mix to undo mixingFrom changes. */ + mix = 1; + else { + mix = entry->mixTime / entry->mixDuration; + if (mix > 1) mix = 1; + } + + events = mix < from->eventThreshold ? internal->events : 0; + attachments = mix < from->attachmentThreshold; + drawOrder = mix < from->drawOrderThreshold; + animationLast = from->animationLast; + animationTime = spTrackEntry_getAnimationTime(from); + timelineCount = from->animation->timelinesCount; + timelines = from->animation->timelines; + timelinesFirst = from->timelinesFirst; + alpha = from->alpha * entry->mixAlpha * (1 - mix); + + firstFrame = from->timelinesRotationCount == 0; + if (firstFrame) _spAnimationState_resizeTimelinesRotation(from, timelineCount << 1); + timelinesRotation = from->timelinesRotation; + + for (i = 0; i < timelineCount; i++) { + timeline = timelines[i]; + setupPose = timelinesFirst[i]; + if (timeline->type == SP_TIMELINE_ROTATE) + _spAnimationState_applyRotateTimeline(self, timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline->type == SP_TIMELINE_ATTACHMENT) continue; + if (!drawOrder && timeline->type == SP_TIMELINE_DRAWORDER) continue; + } + spTimeline_apply(timeline, skeleton, animationLast, animationTime, events, &internal->eventsCount, alpha, setupPose, 1); + } + } + + _spAnimationState_queueEvents(self, from, animationTime); + from->nextAnimationLast = animationTime; + from->nextTrackLast = from->trackTime; + + return mix; +} + +void _spAnimationState_applyRotateTimeline (spAnimationState* self, spTimeline* timeline, spSkeleton* skeleton, float time, float alpha, int /*boolean*/ setupPose, float* timelinesRotation, int i, int /*boolean*/ firstFrame) { + spRotateTimeline *rotateTimeline; + float *frames; + spBone* bone; + float r1, r2; + int frame; + float prevRotation; + float frameTime; + float percent; + float total, diff; + int /*boolean*/ current, dir; + + if (alpha == 1) { + spTimeline_apply(timeline, skeleton, 0, time, 0, 0, 1, setupPose, 0); + return; + } + + rotateTimeline = SUB_CAST(spRotateTimeline, timeline); + frames = rotateTimeline->frames; + bone = skeleton->bones[rotateTimeline->boneIndex]; + if (time < frames[0]) { + if (setupPose) { + bone->rotation = bone->data->rotation; + } + return; /* Time is before first frame. */ + } + + if (time >= frames[rotateTimeline->framesCount - ROTATE_ENTRIES]) /* Time is after last frame. */ + r2 = bone->data->rotation + frames[rotateTimeline->framesCount + ROTATE_PREV_ROTATION]; + else { + /* Interpolate between the previous frame and the current frame. */ + frame = _spCurveTimeline_binarySearch(frames, rotateTimeline->framesCount, time, ROTATE_ENTRIES); + prevRotation = frames[frame + ROTATE_PREV_ROTATION]; + frameTime = frames[frame]; + percent = spCurveTimeline_getCurvePercent(SUPER(rotateTimeline), (frame >> 1) - 1, + 1 - (time - frameTime) / (frames[frame + ROTATE_PREV_TIME] - frameTime)); + + r2 = frames[frame + ROTATE_ROTATION] - prevRotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + r2 = prevRotation + r2 * percent + bone->data->rotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + } + + /* Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. */ + r1 = setupPose ? bone->data->rotation : bone->rotation; + diff = r2 - r1; + if (diff == 0) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } else + total = timelinesRotation[i]; + } else { + float lastTotal, lastDiff; + diff -= (16384 - (int)(16384.499999999996 - diff / 360)) * 360; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; /* Angle and direction of mix, including loops. */ + lastDiff = timelinesRotation[i + 1]; /* Difference between bones. */ + } + current = diff > 0; + dir = lastTotal >= 0; + /* Detect cross at 0 (not 180). */ + if (SIGNUM(lastDiff) != SIGNUM(diff) && ABS(lastDiff) <= 90) { + /* A cross after a 360 rotation is a loop. */ + if (ABS(lastTotal) > 180) lastTotal += 360 * SIGNUM(lastTotal); + dir = current; + } + total = diff + lastTotal - FMOD(lastTotal, 360); /* Store loops as part of lastTotal. */ + if (dir != current) total += 360 * SIGNUM(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone->rotation = r1 - (16384 - (int)(16384.499999999996 - r1 / 360)) * 360; +} + +void _spAnimationState_queueEvents (spAnimationState* self, spTrackEntry* entry, float animationTime) { + spEvent** events; + spEvent* event; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + int i, n; + float animationStart = entry->animationStart, animationEnd = entry->animationEnd; + float duration = animationEnd - animationStart; + float trackLastWrapped = FMOD(entry->trackLast, duration); + + /* Queue events before complete. */ + events = internal->events; + for (i = 0, n = internal->eventsCount; i < n; i++) { + event = events[i]; + if (event->time < trackLastWrapped) break; + if (event->time > animationEnd) continue; /* Discard events outside animation start/end. */ + _spEventQueue_event(internal->queue, entry, event); + } + + /* Queue complete if completed a loop iteration or the animation. */ + if (entry->loop ? (trackLastWrapped > FMOD(entry->trackTime, duration)) + : (animationTime >= animationEnd && entry->animationLast < animationEnd)) { + _spEventQueue_complete(internal->queue, entry); + } + + /* Queue events after complete. */ + for (; i < n; i++) { + event = events[i]; + if (event->time < animationStart) continue; /* Discard events outside animation start/end. */ + _spEventQueue_event(internal->queue, entry, event); + } + internal->eventsCount = 0; } void spAnimationState_clearTracks (spAnimationState* self) { - int i; - for (i = 0; i < self->tracksCount; ++i) + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + int i, n; + internal->queue->drainDisabled = 1; + for (i = 0, n = self->tracksCount; i < n; i++) spAnimationState_clearTrack(self, i); self->tracksCount = 0; + internal->queue->drainDisabled = 0; + _spEventQueue_drain(internal->queue); } void spAnimationState_clearTrack (spAnimationState* self, int trackIndex) { spTrackEntry* current; + spTrackEntry* entry; + spTrackEntry* from; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + if (trackIndex >= self->tracksCount) return; current = self->tracks[trackIndex]; if (!current) return; - if (current->listener) current->listener(self, trackIndex, SP_ANIMATION_END, 0, 0); - if (self->listener) self->listener(self, trackIndex, SP_ANIMATION_END, 0, 0); + _spEventQueue_end(internal->queue, current); - self->tracks[trackIndex] = 0; + _spAnimationState_disposeNext(self, current); - _spAnimationState_disposeAllEntries(self, current); + entry = current; + while (1) { + from = entry->mixingFrom; + if (!from) break; + _spEventQueue_end(internal->queue, from); + entry->mixingFrom = 0; + entry = from; + } + + self->tracks[current->trackIndex] = 0; + _spEventQueue_drain(internal->queue); +} + +void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEntry* current) { + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + spTrackEntry* from = _spAnimationState_expandToIndex(self, index); + self->tracks[index] = current; + + if (from) { + _spEventQueue_interrupt(internal->queue, from); + current->mixingFrom = from; + current->mixTime = 0; + + /* If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. */ + if (from->mixingFrom) current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1); + } + + _spEventQueue_start(internal->queue, current); +} + +/** Set the current animation. Any queued animations are cleared. */ +spTrackEntry* spAnimationState_setAnimationByName (spAnimationState* self, int trackIndex, const char* animationName, + int/*bool*/loop) { + spAnimation* animation = spSkeletonData_findAnimation(self->data->skeletonData, animationName); + return spAnimationState_setAnimation(self, trackIndex, animation, loop); +} + +spTrackEntry* spAnimationState_setAnimation (spAnimationState* self, int trackIndex, spAnimation* animation, int/*bool*/loop) { + spTrackEntry* entry; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + spTrackEntry* current = _spAnimationState_expandToIndex(self, trackIndex); + if (current) { + if (current->nextTrackLast == -1) { + /* Don't mix from an entry that was never applied. */ + self->tracks[trackIndex] = 0; + _spEventQueue_interrupt(internal->queue, current); + _spEventQueue_end(internal->queue, current); + _spAnimationState_disposeNext(self, current); + current = 0; + } else + _spAnimationState_disposeNext(self, current); + } + entry = _spAnimationState_trackEntry(self, trackIndex, animation, loop, current); + _spAnimationState_setCurrent(self, trackIndex, entry); + _spEventQueue_drain(internal->queue); + return entry; +} + +/** Adds an animation to be played delay seconds after the current or last queued animation, taking into account any mix + * duration. */ +spTrackEntry* spAnimationState_addAnimationByName (spAnimationState* self, int trackIndex, const char* animationName, + int/*bool*/loop, float delay) { + spAnimation* animation = spSkeletonData_findAnimation(self->data->skeletonData, animationName); + return spAnimationState_addAnimation(self, trackIndex, animation, loop, delay); +} + +spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIndex, spAnimation* animation, int/*bool*/loop, + float delay) { + spTrackEntry* entry; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + spTrackEntry* last = _spAnimationState_expandToIndex(self, trackIndex); + if (last) { + while (last->next) + last = last->next; + } + + entry = _spAnimationState_trackEntry(self, trackIndex, animation, loop, last); + + if (!last) { + _spAnimationState_setCurrent(self, trackIndex, entry); + _spEventQueue_drain(internal->queue); + } else { + last->next = entry; + if (delay <= 0) { + float duration = last->animationEnd - last->animationStart; + if (duration != 0) + delay += duration * (1 + (int)(last->trackTime / duration)) - spAnimationStateData_getMix(self->data, last->animation, animation); + else + delay = 0; + } + } + + entry->delay = delay; + return entry; +} + +spTrackEntry* spAnimationState_setEmptyAnimation(spAnimationState* self, int trackIndex, float mixDuration) { + spTrackEntry* entry = spAnimationState_setAnimation(self, trackIndex, SP_EMPTY_ANIMATION, 0); + entry->mixDuration = mixDuration; + entry->trackEnd = mixDuration; + return entry; +} + +spTrackEntry* spAnimationState_addEmptyAnimation(spAnimationState* self, int trackIndex, float mixDuration, float delay) { + spTrackEntry* entry; + if (delay <= 0) delay -= mixDuration; + entry = spAnimationState_addAnimation(self, trackIndex, SP_EMPTY_ANIMATION, 0, delay); + entry->mixDuration = mixDuration; + entry->trackEnd = mixDuration; + return entry; +} + +void spAnimationState_setEmptyAnimations(spAnimationState* self, float mixDuration) { + int i, n; + spTrackEntry* current; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + internal->queue->drainDisabled = 1; + for (i = 0, n = self->tracksCount; i < n; i++) { + current = self->tracks[i]; + if (current) spAnimationState_setEmptyAnimation(self, current->trackIndex, mixDuration); + } + internal->queue->drainDisabled = 0; + _spEventQueue_drain(internal->queue); } spTrackEntry* _spAnimationState_expandToIndex (spAnimationState* self, int index) { @@ -225,98 +685,163 @@ spTrackEntry* _spAnimationState_expandToIndex (spAnimationState* self, int index return 0; } -void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEntry* entry) { - _spAnimationState* internal = SUB_CAST(_spAnimationState, self); +spTrackEntry* _spAnimationState_trackEntry (spAnimationState* self, int trackIndex, spAnimation* animation, int /*boolean*/ loop, spTrackEntry* last) { + spTrackEntry* entry = NEW(spTrackEntry); + entry->trackIndex = trackIndex; + entry->animation = animation; + entry->loop = loop; - spTrackEntry* current = _spAnimationState_expandToIndex(self, index); - if (current) { - spTrackEntry* previous = current->previous; - current->previous = 0; + entry->eventThreshold = 0; + entry->attachmentThreshold = 0; + entry->drawOrderThreshold = 0; - if (current->listener) current->listener(self, index, SP_ANIMATION_END, 0, 0); - if (self->listener) self->listener(self, index, SP_ANIMATION_END, 0, 0); + entry->animationStart = 0; + entry->animationEnd = animation->duration; + entry->animationLast = -1; + entry->nextAnimationLast = -1; - entry->mixDuration = spAnimationStateData_getMix(self->data, current->animation, entry->animation); - if (entry->mixDuration > 0) { - entry->mixTime = 0; - /* If a mix is in progress, mix from the closest animation. */ - if (previous && current->mixTime / current->mixDuration < 0.5f) { - entry->previous = previous; - previous = current; - } else - entry->previous = current; - } else - internal->disposeTrackEntry(current); + entry->delay = 0; + entry->trackTime = 0; + entry->trackLast = -1; + entry->nextTrackLast = -1; + entry->trackEnd = loop ? (float)INT_MAX : entry->animationEnd; + entry->timeScale = 1; - if (previous) internal->disposeTrackEntry(previous); - } - - self->tracks[index] = entry; - - if (entry->listener) { - entry->listener(self, index, SP_ANIMATION_START, 0, 0); - if (self->tracks[index] != entry) return; - } - if (self->listener) self->listener(self, index, SP_ANIMATION_START, 0, 0); + entry->alpha = 1; + entry->mixAlpha = 1; + entry->mixTime = 0; + entry->mixDuration = !last ? 0 : spAnimationStateData_getMix(self->data, last->animation, animation); + return entry; } -spTrackEntry* spAnimationState_setAnimationByName (spAnimationState* self, int trackIndex, const char* animationName, - int/*bool*/loop) { - spAnimation* animation = spSkeletonData_findAnimation(self->data->skeletonData, animationName); - return spAnimationState_setAnimation(self, trackIndex, animation, loop); +void _spAnimationState_disposeNext (spAnimationState* self, spTrackEntry* entry) { + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + spTrackEntry* next = entry->next; + while (next) { + _spEventQueue_dispose(internal->queue, next); + next = next->next; + } + entry->next = 0; } -spTrackEntry* spAnimationState_setAnimation (spAnimationState* self, int trackIndex, spAnimation* animation, int/*bool*/loop) { +void _spAnimationState_animationsChanged (spAnimationState* self) { _spAnimationState* internal = SUB_CAST(_spAnimationState, self); - + int i, n; spTrackEntry* entry; - spTrackEntry* current = _spAnimationState_expandToIndex(self, trackIndex); - if (current) _spAnimationState_disposeAllEntries(self, current->next); + internal->animationsChanged = 0; - entry = internal->createTrackEntry(self); - entry->animation = animation; - entry->loop = loop; - entry->endTime = animation->duration; - _spAnimationState_setCurrent(self, trackIndex, entry); - return entry; -} + i = 0; n = self->tracksCount; + internal->propertyIDsCount = 0; -spTrackEntry* spAnimationState_addAnimationByName (spAnimationState* self, int trackIndex, const char* animationName, - int/*bool*/loop, float delay) { - spAnimation* animation = spSkeletonData_findAnimation(self->data->skeletonData, animationName); - return spAnimationState_addAnimation(self, trackIndex, animation, loop, delay); -} - -spTrackEntry* spAnimationState_addAnimation (spAnimationState* self, int trackIndex, spAnimation* animation, int/*bool*/loop, - float delay) { - _spAnimationState* internal = SUB_CAST(_spAnimationState, self); - spTrackEntry* last; - - spTrackEntry* entry = internal->createTrackEntry(self); - entry->animation = animation; - entry->loop = loop; - entry->endTime = animation->duration; - - last = _spAnimationState_expandToIndex(self, trackIndex); - if (last) { - while (last->next) - last = last->next; - last->next = entry; - } else - self->tracks[trackIndex] = entry; - - if (delay <= 0) { - if (last) - delay += last->endTime - spAnimationStateData_getMix(self->data, last->animation, animation); - else - delay = 0; + for (; i < n; i++) { + entry = self->tracks[i]; + if (!entry) continue; + _spAnimationState_setTimelinesFirst(self, entry); + i++; + break; } - entry->delay = delay; + for (; i < n; i++) { + entry = self->tracks[i]; + if (entry) _spAnimationState_checkTimelinesFirst(self, entry); + } +} - return entry; +float* _spAnimationState_resizeTimelinesRotation(spTrackEntry* entry, int newSize) { + if (entry->timelinesRotationCount != newSize) { + float* newTimelinesRotation = CALLOC(float, newSize); + FREE(entry->timelinesRotation); + entry->timelinesRotation = newTimelinesRotation; + entry->timelinesRotationCount = newSize; + } + return entry->timelinesRotation; +} + +int* _spAnimationState_resizeTimelinesFirst(spTrackEntry* entry, int newSize) { + if (entry->timelinesFirstCount != newSize) { + int* newTimelinesFirst = CALLOC(int, newSize); + FREE(entry->timelinesFirst); + entry->timelinesFirst = newTimelinesFirst; + entry->timelinesFirstCount = newSize; + } + + return entry->timelinesFirst; +} + +void _spAnimationState_ensureCapacityPropertyIDs(spAnimationState* self, int capacity) { + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + if (internal->propertyIDsCapacity < capacity) { + int *newPropertyIDs = CALLOC(int, capacity << 1); + memcpy(newPropertyIDs, internal->propertyIDs, internal->propertyIDsCount); + FREE(internal->propertyIDs); + internal->propertyIDs = newPropertyIDs; + internal->propertyIDsCapacity = capacity << 1; + } +} + +int _spAnimationState_addPropertyID(spAnimationState* self, int id) { + int i, n; + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + + for (i = 0, n = internal->propertyIDsCount; i < n; i++) { + if (internal->propertyIDs[i] == id) return 0; + } + + _spAnimationState_ensureCapacityPropertyIDs(self, internal->propertyIDsCount + 1); + internal->propertyIDs[internal->propertyIDsCount] = id; + return 1; +} + +void _spAnimationState_setTimelinesFirst (spAnimationState* self, spTrackEntry* entry) { + int i, n; + int* usage; + spTimeline** timelines; + + if (entry->mixingFrom) { + _spAnimationState_setTimelinesFirst(self, entry->mixingFrom); + _spAnimationState_checkTimelinesUsage(self, entry); + return; + } + + n = entry->animation->timelinesCount; + timelines = entry->animation->timelines; + usage = _spAnimationState_resizeTimelinesFirst(entry, n); + for (i = 0; i < n; i++) { + _spAnimationState_addPropertyID(self, spTimeline_getPropertyId(timelines[i])); + usage[i] = 1; + } +} + +void _spAnimationState_checkTimelinesFirst (spAnimationState* self, spTrackEntry* entry) { + if (entry->mixingFrom) _spAnimationState_checkTimelinesFirst(self, entry->mixingFrom); + _spAnimationState_checkTimelinesUsage(self, entry); +} + +void _spAnimationState_checkTimelinesUsage (spAnimationState* self, spTrackEntry* entry) { + int i, n; + int* usage; + spTimeline** timelines; + n = entry->animation->timelinesCount; + timelines = entry->animation->timelines; + usage = _spAnimationState_resizeTimelinesFirst(entry, n); + for (i = 0; i < n; i++) + usage[i] = _spAnimationState_addPropertyID(self, spTimeline_getPropertyId(timelines[i])); } spTrackEntry* spAnimationState_getCurrent (spAnimationState* self, int trackIndex) { if (trackIndex >= self->tracksCount) return 0; return self->tracks[trackIndex]; } + +void spAnimationState_clearListenerNotifications(spAnimationState* self) { + _spAnimationState* internal = SUB_CAST(_spAnimationState, self); + _spEventQueue_clear(internal->queue); +} + +float spTrackEntry_getAnimationTime (spTrackEntry* entry) { + if (entry->loop) { + float duration = entry->animationEnd - entry->animationStart; + if (duration == 0) return entry->animationStart; + return FMOD(entry->trackTime, duration) + entry->animationStart; + } + return MIN(entry->trackTime + entry->animationStart, entry->animationEnd); +} diff --git a/spine-c/src/spine/Bone.c b/spine-c/src/spine/Bone.c index d1539b2f5..aa5841894 100644 --- a/spine-c/src/spine/Bone.c +++ b/spine-c/src/spine/Bone.c @@ -61,15 +61,24 @@ void spBone_updateWorldTransform (spBone* self) { void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY) { float cosine, sine; - float rotationY = rotation + 90 + shearY; - float la = COS_DEG(rotation + shearX) * scaleX, lb = COS_DEG(rotationY) * scaleY; - float lc = SIN_DEG(rotation + shearX) * scaleX, ld = SIN_DEG(rotationY) * scaleY; - float pa, pb, pc, pd, temp; + float pa, pb, pc, pd; spBone* parent = self->parent; - CONST_CAST(float, self->appliedRotation) = rotation; + self->ax = x; + self->ay = y; + self->arotation = rotation; + self->ascaleX = scaleX; + self->ascaleY = scaleY; + self->ashearX = shearX; + self->ashearY = shearY; + self->appliedValid = 1; if (!parent) { /* Root bone. */ + float rotationY = rotation + 90 + shearY; + float la = COS_DEG(rotation + shearX) * scaleX; + float lb = COS_DEG(rotationY) * scaleY; + float lc = SIN_DEG(rotation + shearX) * scaleX; + float ld = SIN_DEG(rotationY) * scaleY; if (self->skeleton->flipX) { x = -x; la = -la; @@ -84,10 +93,8 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota CONST_CAST(float, self->b) = lb; CONST_CAST(float, self->c) = lc; CONST_CAST(float, self->d) = ld; - CONST_CAST(float, self->worldX) = x; - CONST_CAST(float, self->worldY) = y; - CONST_CAST(float, self->worldSignX) = scaleX > 0 ? 1.0f : -1.0f; - CONST_CAST(float, self->worldSignY) = scaleY > 0 ? 1.0f : -1.0f; + CONST_CAST(float, self->worldX) = x + self->skeleton->x; + CONST_CAST(float, self->worldY) = y + self->skeleton->y; return; } @@ -98,84 +105,91 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota CONST_CAST(float, self->worldX) = pa * x + pb * y + parent->worldX; CONST_CAST(float, self->worldY) = pc * x + pd * y + parent->worldY; - CONST_CAST(float, self->worldSignX) = parent->worldSignX * (scaleX > 0 ? 1 : -1); - CONST_CAST(float, self->worldSignY) = parent->worldSignY * (scaleY > 0 ? 1 : -1); - if (self->data->inheritRotation && self->data->inheritScale) { - CONST_CAST(float, self->a) = pa * la + pb * lc; - CONST_CAST(float, self->b) = pa * lb + pb * ld; - CONST_CAST(float, self->c) = pc * la + pd * lc; - CONST_CAST(float, self->d) = pc * lb + pd * ld; - } else { - if (self->data->inheritRotation) { /* No scale inheritance. */ - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - cosine = COS_DEG(parent->appliedRotation); sine = SIN_DEG(parent->appliedRotation); - temp = pa * cosine + pb * sine; - pb = pb * cosine - pa * sine; - pa = temp; - temp = pc * cosine + pd * sine; - pd = pd * cosine - pc * sine; - pc = temp; - - if (!parent->data->inheritRotation) break; - parent = parent->parent; - } while (parent); + switch (self->data->transformMode) { + case SP_TRANSFORMMODE_NORMAL: { + float rotationY = rotation + 90 + shearY; + float la = COS_DEG(rotation + shearX) * scaleX; + float lb = COS_DEG(rotationY) * scaleY; + float lc = SIN_DEG(rotation + shearX) * scaleX; + float ld = SIN_DEG(rotationY) * scaleY; CONST_CAST(float, self->a) = pa * la + pb * lc; CONST_CAST(float, self->b) = pa * lb + pb * ld; CONST_CAST(float, self->c) = pc * la + pd * lc; CONST_CAST(float, self->d) = pc * lb + pd * ld; - } else if (self->data->inheritScale) { /* No rotation inheritance. */ - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - float za, zb, zc, zd; - float psx = parent->scaleX, psy = parent->scaleY; - cosine = COS_DEG(parent->appliedRotation); - sine = SIN_DEG(parent->appliedRotation); - za = cosine * psx; zb = sine * psy; zc = sine * psx; zd = cosine * psy; - temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - - if (psx >= 0) sine = -sine; - temp = pa * cosine + pb * sine; - pb = pb * cosine - pa * sine; - pa = temp; - temp = pc * cosine + pd * sine; - pd = pd * cosine - pc * sine; - pc = temp; - - if (!parent->data->inheritScale) break; - parent = parent->parent; - } while (parent); - CONST_CAST(float, self->a) = pa * la + pb * lc; - CONST_CAST(float, self->b) = pa * lb + pb * ld; + return; + } + case SP_TRANSFORMMODE_ONLYTRANSLATION: { + float rotationY = rotation + 90 + shearY; + CONST_CAST(float, self->a) = COS_DEG(rotation + shearX) * scaleX; + CONST_CAST(float, self->b) = COS_DEG(rotationY) * scaleY; + CONST_CAST(float, self->c) = SIN_DEG(rotation + shearX) * scaleX; + CONST_CAST(float, self->d) = SIN_DEG(rotationY) * scaleY; + break; + } + case SP_TRANSFORMMODE_NOROTATIONORREFLECTION: { + float s = pa * pa + pc * pc; + float prx, rx, ry, la, lb, lc, ld; + if (s > 0.0001f) { + s = ABS(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = ATAN2(pc, pa) * RAD_DEG; + } else { + pa = 0; + pc = 0; + prx = 90 - ATAN2(pd, pb) * RAD_DEG; + } + rx = rotation + shearX - prx; + ry = rotation + shearY - prx + 90; + la = COS_DEG(rx) * scaleX; + lb = COS_DEG(ry) * scaleY; + lc = SIN_DEG(rx) * scaleX; + ld = SIN_DEG(ry) * scaleY; + CONST_CAST(float, self->a) = pa * la - pb * lc; + CONST_CAST(float, self->b) = pa * lb - pb * ld; CONST_CAST(float, self->c) = pc * la + pd * lc; CONST_CAST(float, self->d) = pc * lb + pd * ld; - } else { - CONST_CAST(float, self->a) = la; - CONST_CAST(float, self->b) = lb; - CONST_CAST(float, self->c) = lc; - CONST_CAST(float, self->d) = ld; + break; } - if (self->skeleton->flipX) { - CONST_CAST(float, self->a) = -self->a; - CONST_CAST(float, self->b) = -self->b; - } - if (self->skeleton->flipY != yDown) { - CONST_CAST(float, self->c) = -self->c; - CONST_CAST(float, self->d) = -self->d; + case SP_TRANSFORMMODE_NOSCALE: + case SP_TRANSFORMMODE_NOSCALEORREFLECTION: { + float za, zc, s; + float r, zb, zd, la, lb, lc, ld; + cosine = COS_DEG(rotation); sine = SIN_DEG(rotation); + za = pa * cosine + pb * sine; + zc = pc * cosine + pd * sine; + s = SQRT(za * za + zc * zc); + if (s > 0.00001f) s = 1 / s; + za *= s; + zc *= s; + s = SQRT(za * za + zc * zc); + r = PI / 2 + atan2(zc, za); + zb = COS(r) * s; + zd = SIN(r) * s; + la = COS_DEG(shearX) * scaleX; + lb = COS_DEG(90 + shearY) * scaleY; + lc = SIN_DEG(shearX) * scaleX; + ld = SIN_DEG(90 + shearY) * scaleY; + CONST_CAST(float, self->a) = za * la + zb * lc; + CONST_CAST(float, self->b) = za * lb + zb * ld; + CONST_CAST(float, self->c) = zc * la + zd * lc; + CONST_CAST(float, self->d) = zc * lb + zd * ld; + if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) { + CONST_CAST(float, self->b) = -self->b; + CONST_CAST(float, self->d) = -self->d; + } + return; } } + if (self->skeleton->flipX) { + CONST_CAST(float, self->a) = -self->a; + CONST_CAST(float, self->b) = -self->b; + } + if (self->skeleton->flipY != yDown) { + CONST_CAST(float, self->c) = -self->c; + CONST_CAST(float, self->d) = -self->d; + } } void spBone_setToSetupPose (spBone* self) { @@ -197,22 +211,22 @@ float spBone_getWorldRotationY (spBone* self) { } float spBone_getWorldScaleX (spBone* self) { - return SQRT(self->a * self->a + self->b * self->b) * self->worldSignX; + return SQRT(self->a * self->a + self->c * self->c); } float spBone_getWorldScaleY (spBone* self) { - return SQRT(self->c * self->c + self->d * self->d) * self->worldSignY; + return SQRT(self->b * self->b + self->d * self->d); } float spBone_worldToLocalRotationX (spBone* self) { spBone* parent = self->parent; - if (!parent) return self->rotation; + if (!parent) return self->arotation; return ATAN2(parent->a * self->c - parent->c * self->a, parent->d * self->a - parent->b * self->c) * RAD_DEG; } float spBone_worldToLocalRotationY (spBone* self) { spBone* parent = self->parent; - if (!parent) return self->rotation; + if (!parent) return self->arotation; return ATAN2(parent->a * self->d - parent->c * self->b, parent->d * self->b - parent->b * self->d) * RAD_DEG; } @@ -223,24 +237,25 @@ void spBone_rotateWorld (spBone* self, float degrees) { CONST_CAST(float, self->b) = cosine * b - sine * d; CONST_CAST(float, self->c) = sine * a + cosine * c; CONST_CAST(float, self->d) = sine * b + cosine * d; + CONST_CAST(int, self->appliedValid) = 1; } -/** Computes the local transform from the world transform. This can be useful to perform processing on the local transform - * after the world transform has been modified directly (eg, by a constraint). + +/** Computes the individual applied transform values from the world transform. This can be useful to perform processing using + * the applied transform after the world transform has been modified directly (eg, by a constraint). *

- * Some redundant information is lost by the world transform, such as -1,-1 scale versus 180 rotation. The computed local - * transform values may differ from the original values but are functionally the same. */ -void spBone_updateLocalTransform (spBone* self) { + * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. */ +void spBone_updateAppliedTransform (spBone* self) { spBone* parent = self->parent; + self->appliedValid = 1; if (!parent) { - float det = self->a * self->d - self->b * self->c; - self->x = self->worldX; - self->y = self->worldY; - self->rotation = ATAN2(self->c, self->a) * RAD_DEG; - self->scaleX = SQRT(self->a * self->a + self->c * self->c); - self->scaleY = SQRT(self->b * self->b + self->d * self->d); - self->shearX = 0; - self->shearY = ATAN2(self->a * self->b + self->c * self->d, det) * RAD_DEG; + self->ax = self->worldX; + self->ay = self->worldY; + self->arotation = ATAN2(self->c, self->a) * RAD_DEG; + self->ascaleX = SQRT(self->a * self->a + self->c * self->c); + self->ascaleY = SQRT(self->b * self->b + self->d * self->d); + self->ashearX = 0; + self->ashearY = ATAN2(self->a * self->b + self->c * self->d, self->a * self->d - self->b * self->c) * RAD_DEG; } else { float pa = parent->a, pb = parent->b, pc = parent->c, pd = parent->d; float pid = 1 / (pa * pd - pb * pc); @@ -253,22 +268,21 @@ void spBone_updateLocalTransform (spBone* self) { float rb = ia * self->b - ib * self->d; float rc = id * self->c - ic * self->a; float rd = id * self->d - ic * self->b; - self->x = (dx * pd * pid - dy * pb * pid); - self->y = (dy * pa * pid - dx * pc * pid); - self->shearX = 0; - self->scaleX = SQRT(ra * ra + rc * rc); - if (self->scaleX > 0.0001f) { + self->ax = (dx * pd * pid - dy * pb * pid); + self->ay = (dy * pa * pid - dx * pc * pid); + self->ashearX = 0; + self->ascaleX = SQRT(ra * ra + rc * rc); + if (self->ascaleX > 0.0001f) { float det = ra * rd - rb * rc; - self->scaleY = det / self->scaleX; - self->shearY = ATAN2(ra * rb + rc * rd, det) * RAD_DEG; - self->rotation = ATAN2(rc, ra) * RAD_DEG; + self->ascaleY = det / self->ascaleX; + self->ashearY = ATAN2(ra * rb + rc * rd, det) * RAD_DEG; + self->arotation = ATAN2(rc, ra) * RAD_DEG; } else { - self->scaleX = 0; - self->scaleY = SQRT(rb * rb + rd * rd); - self->shearY = 0; - self->rotation = 90 - ATAN2(rd, rb) * RAD_DEG; + self->ascaleX = 0; + self->ascaleY = SQRT(rb * rb + rd * rd); + self->ashearY = 0; + self->arotation = 90 - ATAN2(rd, rb) * RAD_DEG; } - self->appliedRotation = self->rotation; } } diff --git a/spine-c/src/spine/BoneData.c b/spine-c/src/spine/BoneData.c index 60ed86822..5933571ed 100644 --- a/spine-c/src/spine/BoneData.c +++ b/spine-c/src/spine/BoneData.c @@ -38,8 +38,7 @@ spBoneData* spBoneData_create (int index, const char* name, spBoneData* parent) CONST_CAST(spBoneData*, self->parent) = parent; self->scaleX = 1; self->scaleY = 1; - self->inheritRotation = 1; - self->inheritScale = 1; + self->transformMode = SP_TRANSFORMMODE_NORMAL; return self; } diff --git a/spine-c/src/spine/IkConstraint.c b/spine-c/src/spine/IkConstraint.c index f0fc107e7..037070967 100644 --- a/spine-c/src/spine/IkConstraint.c +++ b/spine-c/src/spine/IkConstraint.c @@ -67,21 +67,23 @@ void spIkConstraint_apply(spIkConstraint *self) { } void spIkConstraint_apply1 (spBone* bone, float targetX, float targetY, float alpha) { - spBone* pp = bone->parent; - float id = 1 / (pp->a * pp->d - pp->b * pp->c); - float x = targetX - pp->worldX, y = targetY - pp->worldY; - float tx = (x * pp->d - y * pp->b) * id - bone->x, ty = (y * pp->a - x * pp->c) * id - bone->y; - float rotationIK = ATAN2(ty, tx) * RAD_DEG - bone->shearX - bone->rotation; - if (bone->scaleX < 0) rotationIK += 180; + spBone* p = bone->parent; + float id, x, y, tx, ty, rotationIK; + if (!bone->appliedValid) spBone_updateAppliedTransform(bone); + id = 1 / (p->a * p->d - p->b * p->c); + x = targetX - p->worldX, y = targetY - p->worldY; + tx = (x * p->d - y * p->b) * id - bone->ax; ty = (y * p->a - x * p->c) * id - bone->ay; + rotationIK = ATAN2(ty, tx) * RAD_DEG - bone->ashearX - bone->arotation; + if (bone->ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; - spBone_updateWorldTransformWith(bone, bone->x, bone->y, bone->rotation + rotationIK * alpha, bone->scaleX, - bone->scaleY, bone->shearX, bone->shearY); + spBone_updateWorldTransformWith(bone, bone->ax, bone->ay, bone->arotation + rotationIK * alpha, bone->ascaleX, + bone->ascaleY, bone->ashearX, bone->ashearY); } void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float targetY, int bendDir, float alpha) { - float px = parent->x, py = parent->y, psx = parent->scaleX, psy = parent->scaleY; - float cx = child->x, cy, csx = child->scaleX, cwx, cwy; + float px, py, psx, psy; + float cx, cy, csx, cwx, cwy; int o1, o2, s2, u; spBone* pp = parent->parent; float tx, ty, dx, dy, l1, l2, a1, a2, r; @@ -90,6 +92,9 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float spBone_updateWorldTransform(child); return; } + if (!parent->appliedValid) spBone_updateAppliedTransform(parent); + if (!child->appliedValid) spBone_updateAppliedTransform(child); + px = parent->ax; py = parent->ay; psx = parent->ascaleX; psy = parent->ascaleY; csx = child->ascaleX; if (psx < 0) { psx = -psx; o1 = 180; @@ -108,13 +113,14 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float } else o2 = 0; r = psx - psy; + cx = child->ax; u = (r < 0 ? -r : r) <= 0.0001f; if (!u) { cy = 0; cwx = parent->a * cx + parent->worldX; cwy = parent->c * cx + parent->worldY; } else { - cy = child->y; + cy = child->ay; cwx = parent->a * cx + parent->b * cy + parent->worldX; cwy = parent->c * cx + parent->d * cy + parent->worldY; } @@ -198,13 +204,13 @@ void spIkConstraint_apply2 (spBone* parent, spBone* child, float targetX, float } outer: { float os = ATAN2(cy, cx) * s2; - a1 = (a1 - os) * RAD_DEG + o1 - parent->rotation; + a1 = (a1 - os) * RAD_DEG + o1 - parent->arotation; if (a1 > 180) a1 -= 360; else if (a1 < -180) a1 += 360; - spBone_updateWorldTransformWith(parent, px, py, parent->rotation + a1 * alpha, parent->scaleX, parent->scaleY, 0, 0); - a2 = ((a2 + os) * RAD_DEG - child->shearX) * s2 + o2 - child->rotation; + spBone_updateWorldTransformWith(parent, px, py, parent->rotation + a1 * alpha, parent->ascaleX, parent->ascaleY, 0, 0); + a2 = ((a2 + os) * RAD_DEG - child->ashearX) * s2 + o2 - child->arotation; if (a2 > 180) a2 -= 360; else if (a2 < -180) a2 += 360; - spBone_updateWorldTransformWith(child, cx, cy, child->rotation + a2 * alpha, child->scaleX, child->scaleY, child->shearX, child->shearY); + spBone_updateWorldTransformWith(child, cx, cy, child->arotation + a2 * alpha, child->ascaleX, child->ascaleY, child->ashearX, child->ashearY); } } diff --git a/spine-c/src/spine/PathConstraint.c b/spine-c/src/spine/PathConstraint.c index 0eb5af40a..825f8c713 100644 --- a/spine-c/src/spine/PathConstraint.c +++ b/spine-c/src/spine/PathConstraint.c @@ -77,8 +77,7 @@ void spPathConstraint_apply (spPathConstraint* self) { float length, x, y, dx, dy, s; float* spaces, *lengths, *positions; float spacing; - spSkeleton* skeleton; - float skeletonX, skeletonY, boneX, boneY, offsetRotation; + float boneX, boneY, offsetRotation; int/*bool*/tip; float rotateMix = self->rotateMix, translateMix = self->translateMix; int/*bool*/ translate = translateMix > 0, rotate = rotateMix > 0; @@ -90,6 +89,7 @@ void spPathConstraint_apply (spPathConstraint* self) { int tangents = rotateMode == SP_ROTATE_MODE_TANGENT, scale = rotateMode == SP_ROTATE_MODE_CHAIN_SCALE; int boneCount = self->bonesCount, spacesCount = tangents ? boneCount : boneCount + 1; spBone** bones = self->bones; + spBone* pa; if (!translate && !rotate) return; if ((attachment == 0) || (attachment->super.super.type != SP_ATTACHMENT_PATH)) return; @@ -127,14 +127,19 @@ void spPathConstraint_apply (spPathConstraint* self) { positions = spPathConstraint_computeWorldPositions(self, attachment, spacesCount, tangents, data->positionMode == SP_POSITION_MODE_PERCENT, spacingMode == SP_SPACING_MODE_PERCENT); - skeleton = self->target->bone->skeleton; - skeletonX = skeleton->x, skeletonY = skeleton->y; boneX = positions[0], boneY = positions[1], offsetRotation = self->data->offsetRotation; - tip = rotateMode == SP_ROTATE_MODE_CHAIN_SCALE && offsetRotation == 0; + tip = 0; + if (offsetRotation == 0) + tip = rotateMode == SP_ROTATE_MODE_CHAIN; + else { + tip = 0; + pa = self->target->bone; + offsetRotation *= pa->a * pa->d - pa->b * pa->c > 0 ? DEG_RAD : -DEG_RAD; + } for (i = 0, p = 3; i < boneCount; i++, p += 3) { spBone* bone = bones[i]; - CONST_CAST(float, bone->worldX) += (boneX - skeletonX - bone->worldX) * translateMix; - CONST_CAST(float, bone->worldY) += (boneY - skeletonY - bone->worldY) * translateMix; + CONST_CAST(float, bone->worldX) += (boneX - bone->worldX) * translateMix; + CONST_CAST(float, bone->worldY) += (boneY - bone->worldY) * translateMix; x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; if (scale) { length = lengths[i]; @@ -161,7 +166,8 @@ void spPathConstraint_apply (spPathConstraint* self) { length = bone->data->length; boneX += (length * (cosine * a - sine * c) - dx) * rotateMix; boneY += (length * (sine * a + cosine * c) - dy) * rotateMix; - } + } else + r += offsetRotation; if (r > PI) r -= PI2; else if (r < -PI) @@ -174,6 +180,7 @@ void spPathConstraint_apply (spPathConstraint* self) { CONST_CAST(float, bone->c) = sine * a + cosine * c; CONST_CAST(float, bone->d) = sine * b + cosine * d; } + CONST_CAST(int, bone->appliedValid) = -1; } } diff --git a/spine-c/src/spine/RegionAttachment.c b/spine-c/src/spine/RegionAttachment.c index e9363266f..50b1fc833 100644 --- a/spine-c/src/spine/RegionAttachment.c +++ b/spine-c/src/spine/RegionAttachment.c @@ -101,7 +101,7 @@ void spRegionAttachment_updateOffset (spRegionAttachment* self) { void spRegionAttachment_computeWorldVertices (spRegionAttachment* self, spBone* bone, float* vertices) { const float* offset = self->offset; - float x = bone->skeleton->x + bone->worldX, y = bone->skeleton->y + bone->worldY; + float x = bone->worldX, y = bone->worldY; vertices[SP_VERTEX_X1] = offset[SP_VERTEX_X1] * bone->a + offset[SP_VERTEX_Y1] * bone->b + x; vertices[SP_VERTEX_Y1] = offset[SP_VERTEX_X1] * bone->c + offset[SP_VERTEX_Y1] * bone->d + y; vertices[SP_VERTEX_X2] = offset[SP_VERTEX_X2] * bone->a + offset[SP_VERTEX_Y2] * bone->b + x; diff --git a/spine-c/src/spine/Skeleton.c b/spine-c/src/spine/Skeleton.c index 4af6db685..cc994bcc4 100644 --- a/spine-c/src/spine/Skeleton.c +++ b/spine-c/src/spine/Skeleton.c @@ -32,7 +32,6 @@ #include #include #include -#include typedef enum { SP_UPDATE_BONE, SP_UPDATE_IK_CONSTRAINT, SP_UPDATE_PATH_CONSTRAINT, SP_UPDATE_TRANSFORM_CONSTRAINT @@ -49,6 +48,10 @@ typedef struct { int updateCacheCount; int updateCacheCapacity; _spUpdate* updateCache; + + int updateCacheResetCount; + int updateCacheResetCapacity; + spBone** updateCacheReset; } _spSkeleton; spSkeleton* spSkeleton_create (spSkeletonData* data) { @@ -65,15 +68,15 @@ spSkeleton* spSkeleton_create (spSkeletonData* data) { for (i = 0; i < self->bonesCount; ++i) { spBoneData* boneData = self->data->bones[i]; - spBone* bone; + spBone* newBone; if (!boneData->parent) - bone = spBone_create(boneData, self, 0); + newBone = spBone_create(boneData, self, 0); else { spBone* parent = self->bones[boneData->parent->index]; - bone = spBone_create(boneData, self, parent); + newBone = spBone_create(boneData, self, parent); ++childrenCounts[boneData->parent->index]; } - self->bones[i] = bone; + self->bones[i] = newBone; } for (i = 0; i < self->bonesCount; ++i) { spBoneData* boneData = self->data->bones[i]; @@ -101,7 +104,6 @@ spSkeleton* spSkeleton_create (spSkeletonData* data) { self->ikConstraintsCount = data->ikConstraintsCount; self->ikConstraints = MALLOC(spIkConstraint*, self->ikConstraintsCount); - self->ikConstraintsSorted = MALLOC(spIkConstraint*, self->ikConstraintsCount); for (i = 0; i < self->data->ikConstraintsCount; ++i) self->ikConstraints[i] = spIkConstraint_create(self->data->ikConstraints[i], self); @@ -129,6 +131,7 @@ void spSkeleton_dispose (spSkeleton* self) { _spSkeleton* internal = SUB_CAST(_spSkeleton, self); FREE(internal->updateCache); + FREE(internal->updateCacheReset); for (i = 0; i < self->bonesCount; ++i) spBone_dispose(self->bones[i]); @@ -141,7 +144,6 @@ void spSkeleton_dispose (spSkeleton* self) { for (i = 0; i < self->ikConstraintsCount; ++i) spIkConstraint_dispose(self->ikConstraints[i]); FREE(self->ikConstraints); - FREE(self->ikConstraintsSorted); for (i = 0; i < self->transformConstraintsCount; ++i) spTransformConstraint_dispose(self->transformConstraints[i]); @@ -167,6 +169,15 @@ static void _addToUpdateCache(_spSkeleton* const internal, _spUpdateType type, v ++internal->updateCacheCount; } +static void _addToUpdateCacheReset(_spSkeleton* const internal, spBone* bone) { + if (internal->updateCacheResetCount == internal->updateCacheResetCapacity) { + internal->updateCacheResetCapacity *= 2; + internal->updateCacheReset = realloc(internal->updateCacheReset, sizeof(spBone*) * internal->updateCacheResetCapacity); + } + internal->updateCacheReset[internal->updateCacheResetCount] = bone; + ++internal->updateCacheResetCount; +} + static void _sortBone(_spSkeleton* const internal, spBone* bone) { if (bone->sorted) return; if (bone->parent) _sortBone(internal, bone->parent); @@ -185,10 +196,9 @@ static void _sortPathConstraintAttachmentBones(_spSkeleton* const internal, spAt _sortBone(internal, slotBone); else { spBone** bones = internal->super.bones; - int i = 0; + int i = 0, n; while (i < pathBonesCount) { int boneCount = pathBones[i++]; - int n; for (n = i + boneCount; i < n; i++) _sortBone(internal, bones[pathBones[i]]); } @@ -212,113 +222,145 @@ static void _sortReset(spBone** bones, int bonesCount) { } } +static void _sortIkConstraint (_spSkeleton* const internal, spIkConstraint* constraint) { + int /*bool*/ contains = 0; + int i; + spBone* target = constraint->target; + spBone** constrained; + spBone* parent; + _sortBone(internal, target); + + constrained = constraint->bones; + parent = constrained[0]; + _sortBone(internal, parent); + + if (constraint->bonesCount > 1) { + spBone* child = constrained[constraint->bonesCount - 1]; + contains = 0; + for (i = 0; i < internal->updateCacheCount; i++) { + _spUpdate update = internal->updateCache[i]; + if (update.object == child) { + contains = -1; + break; + } + } + if (!contains) + _addToUpdateCacheReset(internal, child); + } + + _addToUpdateCache(internal, SP_UPDATE_IK_CONSTRAINT, constraint); + + _sortReset(parent->children, parent->childrenCount); + constrained[constraint->bonesCount-1]->sorted = 1; +} + +static void _sortPathConstraint(_spSkeleton* const internal, spPathConstraint* constraint) { + spSlot* slot = constraint->target; + int slotIndex = slot->data->index; + spBone* slotBone = slot->bone; + int ii, nn, boneCount; + spAttachment* attachment; + spBone** constrained; + spSkeleton* skeleton = SUPER_CAST(spSkeleton, internal); + if (skeleton->skin) _sortPathConstraintAttachment(internal, skeleton->skin, slotIndex, slotBone); + if (skeleton->data->defaultSkin && skeleton->data->defaultSkin != skeleton->skin) + _sortPathConstraintAttachment(internal, skeleton->data->defaultSkin, slotIndex, slotBone); + for (ii = 0, nn = skeleton->data->skinsCount; ii < nn; ii++) + _sortPathConstraintAttachment(internal, skeleton->data->skins[ii], slotIndex, slotBone); + + attachment = slot->attachment; + if (attachment->type == SP_ATTACHMENT_PATH) _sortPathConstraintAttachmentBones(internal, attachment, slotBone); + + constrained = constraint->bones; + boneCount = constraint->bonesCount; + for (ii = 0; ii < boneCount; ii++) + _sortBone(internal, constrained[ii]); + + _addToUpdateCache(internal, SP_UPDATE_PATH_CONSTRAINT, constraint); + + for (ii = 0; ii < boneCount; ii++) + _sortReset(constrained[ii]->children, constrained[ii]->childrenCount); + for (ii = 0; ii < boneCount; ii++) + constrained[ii]->sorted = 1; +} + +static void _sortTransformConstraint(_spSkeleton* const internal, spTransformConstraint* constraint) { + int ii, boneCount; + spBone** constrained; + _sortBone(internal, constraint->target); + + constrained = constraint->bones; + boneCount = constraint->bonesCount; + for (ii = 0; ii < boneCount; ii++) + _sortBone(internal, constrained[ii]); + + _addToUpdateCache(internal, SP_UPDATE_TRANSFORM_CONSTRAINT, constraint); + + for (ii = 0; ii < boneCount; ii++) + _sortReset(constrained[ii]->children, constrained[ii]->childrenCount); + for (ii = 0; ii < boneCount; ii++) + constrained[ii]->sorted = 1; +} + void spSkeleton_updateCache (spSkeleton* self) { - int i, ii, n, nn, level; + int i, ii; spBone** bones; spIkConstraint** ikConstraints; spPathConstraint** pathConstraints; spTransformConstraint** transformConstraints; + int ikCount, transformCount, pathCount, constraintCount; _spSkeleton* internal = SUB_CAST(_spSkeleton, self); - internal->updateCacheCapacity = self->bonesCount + self->ikConstraintsCount + self->transformConstraintsCount + self->pathConstraintsCount; + internal->updateCacheCapacity = self->bonesCount + self->ikConstraintsCount + self->transformConstraintsCount + self->pathConstraintsCount; FREE(internal->updateCache); internal->updateCache = MALLOC(_spUpdate, internal->updateCacheCapacity); internal->updateCacheCount = 0; + internal->updateCacheResetCapacity = self->bonesCount; + FREE(internal->updateCacheReset); + internal->updateCacheReset = MALLOC(spBone*, internal->updateCacheResetCapacity); + internal->updateCacheResetCount = 0; + bones = self->bones; for (i = 0; i < self->bonesCount; ++i) bones[i]->sorted = 0; /* IK first, lowest hierarchy depth first. */ - if (self->ikConstraintsSorted) FREE(self->ikConstraintsSorted); - self->ikConstraintsSorted = MALLOC(spIkConstraint*, self->ikConstraintsCount); - ikConstraints = self->ikConstraintsSorted; - for (i = 0; i < self->ikConstraintsCount; ++i) - ikConstraints[i] = self->ikConstraints[i]; - for (i = 0; i < self->ikConstraintsCount; ++i) { - spIkConstraint* ik = ikConstraints[i]; - spBone* bone = ik->bones[0]->parent; - for (level = 0; bone; ++level) - bone = bone->parent; - ik->level = level; - } - for (i = 1; i < self->ikConstraintsCount; ++i) { - spIkConstraint* ik = ikConstraints[i]; - level = ik->level; - for (ii = i - 1; ii >= 0; --ii) { - spIkConstraint* other = ikConstraints[ii]; - if (other->level < level) break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (i = 0; i < self->ikConstraintsCount; ++i) { - spBone** constrained; - spBone* parent; - spIkConstraint* constraint = ikConstraints[i]; - spBone* target = constraint->target; - _sortBone(internal, target); - - constrained = constraint->bones; - parent = constrained[0]; - _sortBone(internal, parent); - - _addToUpdateCache(internal, SP_UPDATE_IK_CONSTRAINT, constraint); - - _sortReset(parent->children, parent->childrenCount); - constrained[constraint->bonesCount - 1]->sorted = 1; - } - - pathConstraints = self->pathConstraints; - for (i = 0, n = self->pathConstraintsCount; i < n; i++) { - spAttachment* attachment; - spBone** constrained; - int boneCount; - spPathConstraint* constraint = pathConstraints[i]; - - spSlot* slot = constraint->target; - int slotIndex = slot->data->index; - spBone* slotBone = slot->bone; - if (self->skin) _sortPathConstraintAttachment(internal, self->skin, slotIndex, slotBone); - if (self->data->defaultSkin && self->data->defaultSkin != self->skin) - _sortPathConstraintAttachment(internal, self->data->defaultSkin, slotIndex, slotBone); - for (ii = 0, nn = self->data->skinsCount; ii < nn; ii++) - _sortPathConstraintAttachment(internal, self->data->skins[ii], slotIndex, slotBone); - - attachment = slot->attachment; - if (attachment->type == SP_ATTACHMENT_PATH) _sortPathConstraintAttachmentBones(internal, attachment, slotBone); - - constrained = constraint->bones; - boneCount = constraint->bonesCount; - for (ii = 0; ii < boneCount; ii++) - _sortBone(internal, constrained[ii]); - - _addToUpdateCache(internal, SP_UPDATE_PATH_CONSTRAINT, constraint); - - for (ii = 0; ii < boneCount; ii++) - _sortReset(constrained[ii]->children, constrained[ii]->childrenCount); - for (ii = 0; ii < boneCount; ii++) - constrained[ii]->sorted = 1; - } - + ikConstraints = self->ikConstraints; transformConstraints = self->transformConstraints; - for (i = 0, n = self->transformConstraintsCount; i < n; ++i) { - spTransformConstraint* constraint = transformConstraints[i]; - spBone** constrained = constraint->bones; + pathConstraints = self->pathConstraints; + ikCount = self->ikConstraintsCount; transformCount = self->transformConstraintsCount; pathCount = self->pathConstraintsCount; + constraintCount = ikCount + transformCount + pathCount; - _sortBone(internal, constraint->target); - - for (ii = 0; ii < constraint->bonesCount; ++ii) - _sortBone(internal, constrained[ii]); - - _addToUpdateCache(internal, SP_UPDATE_TRANSFORM_CONSTRAINT, constraint); - - for (ii = 0; ii < constraint->bonesCount; ++ii) { - spBone* bone = constrained[ii]; - _sortReset(bone->children, bone->childrenCount); + i = 0; + outer: + for (; i < constraintCount; i++) { + for (ii = 0; ii < ikCount; ii++) { + spIkConstraint* ikConstraint = ikConstraints[ii]; + if (ikConstraint->data->order == i) { + _sortIkConstraint(internal, ikConstraint); + i++; + goto outer; + } + } + + for (ii = 0; ii < transformCount; ii++) { + spTransformConstraint* transformConstraint = transformConstraints[ii]; + if (transformConstraint->data->order == i) { + _sortTransformConstraint(internal, transformConstraint); + i++; + goto outer; + } + } + + for (ii = 0; ii < pathCount; ii++) { + spPathConstraint* pathConstraint = pathConstraints[ii]; + if (pathConstraint->data->order == i) { + _sortPathConstraint(internal, pathConstraint); + i++; + goto outer; + } } - for (ii = 0; ii < constraint->bonesCount; ++ii) - constrained[ii]->sorted = 1; } for (i = 0; i < self->bonesCount; ++i) @@ -328,6 +370,18 @@ void spSkeleton_updateCache (spSkeleton* self) { void spSkeleton_updateWorldTransform (const spSkeleton* self) { int i; _spSkeleton* internal = SUB_CAST(_spSkeleton, self); + spBone** updateCacheReset = internal->updateCacheReset; + for (i = 0; i < internal->updateCacheResetCount; i++) { + spBone* bone = updateCacheReset[i]; + CONST_CAST(float, bone->ax) = bone->x; + CONST_CAST(float, bone->ay) = bone->y; + CONST_CAST(float, bone->arotation) = bone->rotation; + CONST_CAST(float, bone->ascaleX) = bone->scaleX; + CONST_CAST(float, bone->ascaleY) = bone->scaleY; + CONST_CAST(float, bone->ashearX) = bone->shearX; + CONST_CAST(float, bone->ashearY) = bone->shearY; + CONST_CAST(int, bone->appliedValid) = 1; + } for (i = 0; i < internal->updateCacheCount; ++i) { _spUpdate* update = internal->updateCache + i; diff --git a/spine-c/src/spine/SkeletonBinary.c b/spine-c/src/spine/SkeletonBinary.c index 54f14c8bb..7c7543755 100644 --- a/spine-c/src/spine/SkeletonBinary.c +++ b/spine-c/src/spine/SkeletonBinary.c @@ -97,8 +97,8 @@ static unsigned char readByte (_dataInput* input) { return *input->cursor++; } -static char readSByte (_dataInput* input) { - return (char)readByte(input); +static signed char readSByte (_dataInput* input) { + return (signed char)readByte(input); } static int readBoolean (_dataInput* input) { @@ -788,8 +788,8 @@ spSkin* spSkeletonBinary_readSkin(spSkeletonBinary* self, _dataInput* input, int slotIndex = readVarint(input, 1); for (ii = 0, nn = readVarint(input, 1); ii < nn; ++ii) { const char* name = readString(input); - spSkin_addAttachment(skin, slotIndex, name, - spSkeletonBinary_readAttachment(self, input, skin, slotIndex, name, nonessential)); + spAttachment* attachment = spSkeletonBinary_readAttachment(self, input, skin, slotIndex, name, nonessential); + if (attachment) spSkin_addAttachment(skin, slotIndex, name, attachment); FREE(name); } } @@ -842,13 +842,18 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const nonessential = readBoolean(input); - if (nonessential) FREE(readString(input)); /* Skip images path. */ + if (nonessential) { + /* Skip images path & fps */ + readFloat(input); + FREE(readString(input)); + } /* Bones. */ skeletonData->bonesCount = readVarint(input, 1); skeletonData->bones = MALLOC(spBoneData*, skeletonData->bonesCount); for (i = 0; i < skeletonData->bonesCount; ++i) { spBoneData* data; + int mode; const char* name = readString(input); spBoneData* parent = i == 0 ? 0 : skeletonData->bones[readVarint(input, 1)]; /* TODO Avoid copying of name */ @@ -862,8 +867,14 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const data->shearX = readFloat(input); data->shearY = readFloat(input); data->length = readFloat(input) * self->scale; - data->inheritRotation = readBoolean(input); - data->inheritScale = readBoolean(input); + mode = readVarint(input, 1); + switch (mode) { + case 0: data->transformMode = SP_TRANSFORMMODE_NORMAL; break; + case 1: data->transformMode = SP_TRANSFORMMODE_ONLYTRANSLATION; break; + case 2: data->transformMode = SP_TRANSFORMMODE_NOROTATIONORREFLECTION; break; + case 3: data->transformMode = SP_TRANSFORMMODE_NOSCALE; break; + case 4: data->transformMode = SP_TRANSFORMMODE_NOSCALEORREFLECTION; break; + } if (nonessential) readInt(input); /* Skip bone color. */ skeletonData->bones[i] = data; } @@ -890,6 +901,7 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const const char* name = readString(input); /* TODO Avoid copying of name */ spIkConstraintData* data = spIkConstraintData_create(name); + data->order = readVarint(input, 1); FREE(name); data->bonesCount = readVarint(input, 1); data->bones = MALLOC(spBoneData*, data->bonesCount); @@ -909,6 +921,7 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const const char* name = readString(input); /* TODO Avoid copying of name */ spTransformConstraintData* data = spTransformConstraintData_create(name); + data->order = readVarint(input, 1); FREE(name); data->bonesCount = readVarint(input, 1); CONST_CAST(spBoneData**, data->bones) = MALLOC(spBoneData*, data->bonesCount); @@ -935,6 +948,7 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const const char* name = readString(input); /* TODO Avoid copying of name */ spPathConstraintData* data = spPathConstraintData_create(name); + data->order = readVarint(input, 1); FREE(name); data->bonesCount = readVarint(input, 1); CONST_CAST(spBoneData**, data->bones) = MALLOC(spBoneData*, data->bonesCount); diff --git a/spine-c/src/spine/SkeletonJson.c b/spine-c/src/spine/SkeletonJson.c index e42ed9e97..488b29052 100644 --- a/spine-c/src/spine/SkeletonJson.c +++ b/spine-c/src/spine/SkeletonJson.c @@ -604,6 +604,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha skeletonData->bones = MALLOC(spBoneData*, bones->size); for (boneMap = bones->child, i = 0; boneMap; boneMap = boneMap->next, ++i) { spBoneData* data; + const char* transformMode; spBoneData* parent = 0; const char* parentName = Json_getString(boneMap, "parent", 0); @@ -625,8 +626,18 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha data->scaleY = Json_getFloat(boneMap, "scaleY", 1); data->shearX = Json_getFloat(boneMap, "shearX", 0); data->shearY = Json_getFloat(boneMap, "shearY", 0); - data->inheritRotation = Json_getInt(boneMap, "inheritRotation", 1); - data->inheritScale = Json_getInt(boneMap, "inheritScale", 1); + transformMode = Json_getString(boneMap, "transform", "normal"); + data->transformMode = SP_TRANSFORMMODE_NORMAL; + if (strcmp(transformMode, "normal") == 0) + data->transformMode = SP_TRANSFORMMODE_NORMAL; + if (strcmp(transformMode, "onlyTranslation") == 0) + data->transformMode = SP_TRANSFORMMODE_ONLYTRANSLATION; + if (strcmp(transformMode, "noRotationOrReflection") == 0) + data->transformMode = SP_TRANSFORMMODE_NOROTATIONORREFLECTION; + if (strcmp(transformMode, "noScale") == 0) + data->transformMode = SP_TRANSFORMMODE_NOSCALE; + if (strcmp(transformMode, "noScaleOrReflection") == 0) + data->transformMode = SP_TRANSFORMMODE_NOSCALEORREFLECTION; skeletonData->bones[i] = data; skeletonData->bonesCount++; @@ -688,6 +699,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha const char* targetName; spIkConstraintData* data = spIkConstraintData_create(Json_getString(constraintMap, "name", 0)); + data->order = Json_getInt(constraintMap, "order", 0); boneMap = Json_getItem(constraintMap, "bones"); data->bonesCount = boneMap->size; @@ -726,6 +738,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha const char* name; spTransformConstraintData* data = spTransformConstraintData_create(Json_getString(constraintMap, "name", 0)); + data->order = Json_getInt(constraintMap, "order", 0); boneMap = Json_getItem(constraintMap, "bones"); data->bonesCount = boneMap->size; @@ -774,6 +787,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha const char* item; spPathConstraintData* data = spPathConstraintData_create(Json_getString(constraintMap, "name", 0)); + data->order = Json_getInt(constraintMap, "order", 0); boneMap = Json_getItem(constraintMap, "bones"); data->bonesCount = boneMap->size; diff --git a/spine-c/src/spine/TransformConstraint.c b/spine-c/src/spine/TransformConstraint.c index 8b2e0e83d..528cc6a8a 100644 --- a/spine-c/src/spine/TransformConstraint.c +++ b/spine-c/src/spine/TransformConstraint.c @@ -57,13 +57,17 @@ void spTransformConstraint_apply (spTransformConstraint* self) { float rotateMix = self->rotateMix, translateMix = self->translateMix, scaleMix = self->scaleMix, shearMix = self->shearMix; spBone* target = self->target; float ta = target->a, tb = target->b, tc = target->c, td = target->d; + float degRadReflect = ta * td - tb * tc > 0 ? DEG_RAD : -DEG_RAD; + float offsetRotation = self->data->offsetRotation * degRadReflect, offsetShearY = self->data->offsetShearY * degRadReflect; + int /*bool*/ modified; int i; for (i = 0; i < self->bonesCount; ++i) { spBone* bone = self->bones[i]; + modified = 0; - if (rotateMix > 0) { + if (rotateMix != 0) { float a = bone->a, b = bone->b, c = bone->c, d = bone->d; - float r = ATAN2(tc, ta) - ATAN2(c, a) + self->data->offsetRotation * DEG_RAD; + float r = ATAN2(tc, ta) - ATAN2(c, a) + offsetRotation; float cosine, sine; if (r > PI) r -= PI2; else if (r < -PI) r += PI2; @@ -74,26 +78,29 @@ void spTransformConstraint_apply (spTransformConstraint* self) { CONST_CAST(float, bone->b) = cosine * b - sine * d; CONST_CAST(float, bone->c) = sine * a + cosine * c; CONST_CAST(float, bone->d) = sine * b + cosine * d; + modified = 1; } - if (translateMix > 0) { + if (translateMix != 0) { float x, y; spBone_localToWorld(target, self->data->offsetX, self->data->offsetY, &x, &y); CONST_CAST(float, bone->worldX) += (x - bone->worldX) * translateMix; CONST_CAST(float, bone->worldY) += (y - bone->worldY) * translateMix; + modified = 1; } if (scaleMix > 0) { - float bs = SQRT(bone->a * bone->a + bone->c * bone->c); + float s = SQRT(bone->a * bone->a + bone->c * bone->c); float ts = SQRT(ta * ta + tc * tc); - float s = bs > 0.00001f ? (bs + (ts - bs + self->data->offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + self->data->offsetScaleX) * scaleMix) / s; CONST_CAST(float, bone->a) *= s; CONST_CAST(float, bone->c) *= s; - bs = SQRT(bone->b * bone->b + bone->d * bone->d); + s = SQRT(bone->b * bone->b + bone->d * bone->d); ts = SQRT(tb * tb + td * td); - s = bs > 0.00001f ? (bs + (ts - bs + self->data->offsetScaleY) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + self->data->offsetScaleY) * scaleMix) / s; CONST_CAST(float, bone->b) *= s; CONST_CAST(float, bone->d) *= s; + modified = 1; } if (shearMix > 0) { @@ -103,9 +110,12 @@ void spTransformConstraint_apply (spTransformConstraint* self) { float s = SQRT(b * b + d * d); if (r > PI) r -= PI2; else if (r < -PI) r += PI2; - r = by + (r + self->data->offsetShearY * DEG_RAD) * shearMix; + r = by + (r + offsetShearY) * shearMix; CONST_CAST(float, bone->b) = COS(r) * s; CONST_CAST(float, bone->d) = SIN(r) * s; + modified = 1; } + + if (modified) CONST_CAST(int, bone->appliedValid) = 0; } } diff --git a/spine-c/src/spine/VertexAttachment.c b/spine-c/src/spine/VertexAttachment.c index bc0cc0ccf..32357d3ca 100644 --- a/spine-c/src/spine/VertexAttachment.c +++ b/spine-c/src/spine/VertexAttachment.c @@ -43,7 +43,6 @@ void spVertexAttachment_computeWorldVertices (spVertexAttachment* self, spSlot* void spVertexAttachment_computeWorldVertices1 (spVertexAttachment* self, int start, int count, spSlot* slot, float* worldVertices, int offset) { spSkeleton* skeleton; - float x, y; int deformLength; float* deform; float* vertices; @@ -51,8 +50,6 @@ void spVertexAttachment_computeWorldVertices1 (spVertexAttachment* self, int sta count += offset; skeleton = slot->bone->skeleton; - x = skeleton->x; - y = skeleton->y; deformLength = slot->attachmentVerticesCount; deform = slot->attachmentVertices; vertices = self->vertices; @@ -60,10 +57,11 @@ void spVertexAttachment_computeWorldVertices1 (spVertexAttachment* self, int sta if (!bones) { spBone* bone; int v, w; + float x, y; if (deformLength > 0) vertices = deform; bone = slot->bone; - x += bone->worldX; - y += bone->worldY; + x = bone->worldX; + y = bone->worldY; for (v = start, w = offset; w < count; v += 2, w += 2) { float vx = vertices[v], vy = vertices[v + 1]; worldVertices[w] = vx * bone->a + vy * bone->b + x; @@ -81,7 +79,7 @@ void spVertexAttachment_computeWorldVertices1 (spVertexAttachment* self, int sta if (deformLength == 0) { int w, b; for (w = offset, b = skip * 3; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3) { @@ -96,7 +94,7 @@ void spVertexAttachment_computeWorldVertices1 (spVertexAttachment* self, int sta } else { int w, b, f; for (w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3, f += 2) { diff --git a/spine-cocos2d-objc/Resources/goblins-mesh.json b/spine-cocos2d-objc/Resources/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-cocos2d-objc/Resources/goblins-mesh.json +++ b/spine-cocos2d-objc/Resources/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-cocos2d-objc/Resources/raptor.json b/spine-cocos2d-objc/Resources/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-cocos2d-objc/Resources/raptor.json +++ b/spine-cocos2d-objc/Resources/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-cocos2d-objc/Resources/spineboy.json b/spine-cocos2d-objc/Resources/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-cocos2d-objc/Resources/spineboy.json +++ b/spine-cocos2d-objc/Resources/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-cocos2d-objc/Resources/tank.json b/spine-cocos2d-objc/Resources/tank.json index cab50642b..b483fe274 100644 --- a/spine-cocos2d-objc/Resources/tank.json +++ b/spine-cocos2d-objc/Resources/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-cocos2d-objc/example/SpineboyExample.m b/spine-cocos2d-objc/example/SpineboyExample.m index 905e73616..e8b108b33 100644 --- a/spine-cocos2d-objc/example/SpineboyExample.m +++ b/spine-cocos2d-objc/example/SpineboyExample.m @@ -48,26 +48,31 @@ [skeletonNode setMixFrom:@"jump" to:@"run" duration:0.2f]; __weak SkeletonAnimation* node = skeletonNode; - skeletonNode.startListener = ^(int trackIndex) { - spTrackEntry* entry = spAnimationState_getCurrent(node.state, trackIndex); - const char* animationName = (entry && entry->animation) ? entry->animation->name : 0; - NSLog(@"%d start: %s", trackIndex, animationName); + skeletonNode.startListener = ^(spTrackEntry* entry) { + const char* animationName = entry->animation->name; + NSLog(@"%d start: %s", entry->trackIndex, animationName); }; - skeletonNode.endListener = ^(int trackIndex) { - NSLog(@"%d end", trackIndex); + skeletonNode.interruptListener = ^(spTrackEntry* entry) { + NSLog(@"%d interrupt", entry->trackIndex); + }; + skeletonNode.endListener = ^(spTrackEntry* entry) { + NSLog(@"%d end", entry->trackIndex); }; - skeletonNode.completeListener = ^(int trackIndex, int loopCount) { - NSLog(@"%d complete: %d", trackIndex, loopCount); + skeletonNode.disposeListener = ^(spTrackEntry* entry) { + NSLog(@"%d dispose", entry->trackIndex); + }; + skeletonNode.completeListener = ^(spTrackEntry* entry) { + NSLog(@"%d complete", entry->trackIndex); }; - skeletonNode.eventListener = ^(int trackIndex, spEvent* event) { - NSLog(@"%d event: %s, %d, %f, %s", trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); + skeletonNode.eventListener = ^(spTrackEntry* entry, spEvent* event) { + NSLog(@"%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); }; [skeletonNode setAnimationForTrack:0 name:@"walk" loop:YES]; spTrackEntry* jumpEntry = [skeletonNode addAnimationForTrack:0 name:@"jump" loop:NO afterDelay:3]; [skeletonNode addAnimationForTrack:0 name:@"run" loop:YES afterDelay:0]; - [skeletonNode setListenerForEntry:jumpEntry onStart:^(int trackIndex) { + [skeletonNode setListenerForEntry:jumpEntry onStart:^(spTrackEntry* entry) { CCLOG(@"jumped!"); }]; diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h index f6edf63fd..4c2715c92 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h @@ -34,10 +34,12 @@ @class SkeletonAnimation; -typedef void(^spStartListener)(int trackIndex); -typedef void(^spEndListener)(int trackIndex); -typedef void(^spCompleteListener)(int trackIndex, int loopCount); -typedef void(^spEventListener)(int trackIndex, spEvent* event); +typedef void(^spStartListener)(spTrackEntry* entry); +typedef void(^spInterruptListener)(spTrackEntry* entry); +typedef void(^spEndListener)(spTrackEntry* entry); +typedef void(^spDisposeListener)(spTrackEntry* entry); +typedef void(^spCompleteListener)(spTrackEntry* entry); +typedef void(^spEventListener)(spTrackEntry* entry, spEvent* event); /** Draws an animated skeleton, providing an AnimationState for applying one or more animations and queuing animations to be * played later. */ @@ -47,7 +49,9 @@ typedef void(^spEventListener)(int trackIndex, spEvent* event); float _timeScale; spStartListener _startListener; + spInterruptListener _interruptListener; spEndListener _endListener; + spDisposeListener _disposeListener; spCompleteListener _completeListener; spEventListener _eventListener; } @@ -70,17 +74,21 @@ typedef void(^spEventListener)(int trackIndex, spEvent* event); - (void) clearTrack:(int)trackIndex; - (void) setListenerForEntry:(spTrackEntry*)entry onStart:(spStartListener)listener; +- (void) setListenerForEntry:(spTrackEntry*)entry onInterrupt:(spInterruptListener)listener; - (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener; +- (void) setListenerForEntry:(spTrackEntry*)entry onDispose:(spDisposeListener)listener; - (void) setListenerForEntry:(spTrackEntry*)entry onComplete:(spCompleteListener)listener; - (void) setListenerForEntry:(spTrackEntry*)entry onEvent:(spEventListener)listener; -- (void) onAnimationStateEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount; -- (void) onTrackEntryEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount; +- (void) onAnimationStateEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event; +- (void) onTrackEntryEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event; @property (nonatomic, readonly) spAnimationState* state; @property (nonatomic) float timeScale; @property (nonatomic, copy) spStartListener startListener; +@property (nonatomic, copy) spInterruptListener interruptListener; @property (nonatomic, copy) spEndListener endListener; +@property (nonatomic, copy) spDisposeListener disposeListener; @property (nonatomic, copy) spCompleteListener completeListener; @property (nonatomic, copy) spEventListener eventListener; diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m index b525562de..7be6cadf8 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m @@ -32,21 +32,33 @@ #import #import -static void animationCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) { - [(SkeletonAnimation*)state->rendererObject onAnimationStateEvent:trackIndex type:type event:event loopCount:loopCount]; -} - -void trackEntryCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) { - [(SkeletonAnimation*)state->rendererObject onTrackEntryEvent:trackIndex type:type event:event loopCount:loopCount]; -} - typedef struct _TrackEntryListeners { - spStartListener startListener; - spEndListener endListener; - spCompleteListener completeListener; - spEventListener eventListener; + spStartListener startListener; + spInterruptListener interruptListener; + spEndListener endListener; + spDisposeListener disposeListener; + spCompleteListener completeListener; + spEventListener eventListener; } _TrackEntryListeners; +static void animationCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) { + [(SkeletonAnimation*)state->rendererObject onAnimationStateEvent:entry type:type event:event]; +} + +void trackEntryCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) { + [(SkeletonAnimation*)state->rendererObject onTrackEntryEvent:entry type:type event:event]; + if (type == SP_ANIMATION_DISPOSE) { + if (entry->rendererObject) { + _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject; + [listeners->startListener release]; + [listeners->endListener release]; + [listeners->completeListener release]; + [listeners->eventListener release]; + FREE(listeners); + } + } +} + static _TrackEntryListeners* getListeners (spTrackEntry* entry) { if (!entry->rendererObject) { entry->rendererObject = NEW(_TrackEntryListeners); @@ -55,18 +67,6 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) { return (_TrackEntryListeners*)entry->rendererObject; } -void disposeTrackEntry (spTrackEntry* entry) { - if (entry->rendererObject) { - _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject; - [listeners->startListener release]; - [listeners->endListener release]; - [listeners->completeListener release]; - [listeners->eventListener release]; - FREE(listeners); - } - _spTrackEntry_dispose(entry); -} - // @interface SkeletonAnimation (Private) @@ -103,7 +103,6 @@ void disposeTrackEntry (spTrackEntry* entry) { _state->listener = animationCallback; _spAnimationState* stateInternal = (_spAnimationState*)_state; - stateInternal->disposeTrackEntry = disposeTrackEntry; } - (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData { @@ -138,7 +137,9 @@ void disposeTrackEntry (spTrackEntry* entry) { spAnimationState_dispose(_state); [_startListener release]; + [_interruptListener release]; [_endListener release]; + [_disposeListener release]; [_completeListener release]; [_eventListener release]; @@ -199,39 +200,50 @@ void disposeTrackEntry (spTrackEntry* entry) { spAnimationState_clearTrack(_state, trackIndex); } -- (void) onAnimationStateEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount { +- (void) onAnimationStateEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event { switch (type) { case SP_ANIMATION_START: - if (_startListener) _startListener(trackIndex); + if (_startListener) _startListener(entry); break; + case SP_ANIMATION_INTERRUPT: + if (_interruptListener) _interruptListener(entry); + break; case SP_ANIMATION_END: - if (_endListener) _endListener(trackIndex); + if (_endListener) _endListener(entry); break; + case SP_ANIMATION_DISPOSE: + if (_disposeListener) _disposeListener(entry); + break; case SP_ANIMATION_COMPLETE: - if (_completeListener) _completeListener(trackIndex, loopCount); + if (_completeListener) _completeListener(entry); break; case SP_ANIMATION_EVENT: - if (_eventListener) _eventListener(trackIndex, event); + if (_eventListener) _eventListener(entry, event); break; } } -- (void) onTrackEntryEvent:(int)trackIndex type:(spEventType)type event:(spEvent*)event loopCount:(int)loopCount { - spTrackEntry* entry = spAnimationState_getCurrent(_state, trackIndex); +- (void) onTrackEntryEvent:(spTrackEntry*)entry type:(spEventType)type event:(spEvent*)event { if (!entry->rendererObject) return; _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject; switch (type) { case SP_ANIMATION_START: - if (listeners->startListener) listeners->startListener(trackIndex); + if (listeners->startListener) listeners->startListener(entry); break; + case SP_ANIMATION_INTERRUPT: + if (listeners->interruptListener) listeners->interruptListener(entry); + break; case SP_ANIMATION_END: - if (listeners->endListener) listeners->endListener(trackIndex); + if (listeners->endListener) listeners->endListener(entry); break; + case SP_ANIMATION_DISPOSE: + if (listeners->disposeListener) listeners->disposeListener(entry); + break; case SP_ANIMATION_COMPLETE: - if (listeners->completeListener) listeners->completeListener(trackIndex, loopCount); + if (listeners->completeListener) listeners->completeListener(entry); break; case SP_ANIMATION_EVENT: - if (listeners->eventListener) listeners->eventListener(trackIndex, event); + if (listeners->eventListener) listeners->eventListener(entry, event); break; } } @@ -240,10 +252,18 @@ void disposeTrackEntry (spTrackEntry* entry) { getListeners(entry)->startListener = [listener copy]; } +- (void) setListenerForEntry:(spTrackEntry*)entry onInterrupt:(spInterruptListener)listener { + getListeners(entry)->interruptListener = [listener copy]; +} + - (void) setListenerForEntry:(spTrackEntry*)entry onEnd:(spEndListener)listener { getListeners(entry)->endListener = [listener copy]; } +- (void) setListenerForEntry:(spTrackEntry*)entry onDispose:(spDisposeListener)listener { + getListeners(entry)->disposeListener = [listener copy]; +} + - (void) setListenerForEntry:(spTrackEntry*)entry onComplete:(spCompleteListener)listener { getListeners(entry)->completeListener = [listener copy]; } diff --git a/spine-cocos2dx/example/Classes/SpineboyExample.cpp b/spine-cocos2dx/example/Classes/SpineboyExample.cpp index 8c8966663..e9eaa58e1 100644 --- a/spine-cocos2dx/example/Classes/SpineboyExample.cpp +++ b/spine-cocos2dx/example/Classes/SpineboyExample.cpp @@ -45,19 +45,23 @@ bool SpineboyExample::init () { skeletonNode = SkeletonAnimation::createWithJsonFile("spineboy.json", "spineboy.atlas", 0.6f); - skeletonNode->setStartListener( [this] (int trackIndex) { - spTrackEntry* entry = spAnimationState_getCurrent(skeletonNode->getState(), trackIndex); - const char* animationName = (entry && entry->animation) ? entry->animation->name : 0; - log("%d start: %s", trackIndex, animationName); + skeletonNode->setStartListener( [] (spTrackEntry* entry) { + log("%d start: %s", entry->trackIndex, entry->animation->name); }); - skeletonNode->setEndListener( [] (int trackIndex) { - log("%d end", trackIndex); + skeletonNode->setInterruptListener( [] (spTrackEntry* entry) { + log("%d interrupt", entry->trackIndex); + }); + skeletonNode->setEndListener( [] (spTrackEntry* entry) { + log("%d end", entry->trackIndex); }); - skeletonNode->setCompleteListener( [] (int trackIndex, int loopCount) { - log("%d complete: %d", trackIndex, loopCount); + skeletonNode->setCompleteListener( [] (spTrackEntry* entry) { + log("%d complete", entry->trackIndex); }); - skeletonNode->setEventListener( [] (int trackIndex, spEvent* event) { - log("%d event: %s, %d, %f, %s", trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); + skeletonNode->setDisposeListener( [] (spTrackEntry* entry) { + log("%d dispose", entry->trackIndex); + }); + skeletonNode->setEventListener( [] (spTrackEntry* entry, spEvent* event) { + log("%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); }); skeletonNode->setMix("walk", "jump", 0.2f); @@ -66,7 +70,7 @@ bool SpineboyExample::init () { spTrackEntry* jumpEntry = skeletonNode->addAnimation(0, "jump", false, 3); skeletonNode->addAnimation(0, "run", true); - skeletonNode->setTrackStartListener(jumpEntry, [] (int trackIndex) { + skeletonNode->setTrackStartListener(jumpEntry, [] (spTrackEntry* entry) { log("jumped!"); }); diff --git a/spine-cocos2dx/example/Resources/common/goblins-mesh.json b/spine-cocos2dx/example/Resources/common/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-cocos2dx/example/Resources/common/goblins-mesh.json +++ b/spine-cocos2dx/example/Resources/common/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-cocos2dx/example/Resources/common/raptor.json b/spine-cocos2dx/example/Resources/common/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-cocos2dx/example/Resources/common/raptor.json +++ b/spine-cocos2dx/example/Resources/common/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-cocos2dx/example/Resources/common/spineboy.json b/spine-cocos2dx/example/Resources/common/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-cocos2dx/example/Resources/common/spineboy.json +++ b/spine-cocos2dx/example/Resources/common/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-cocos2dx/example/Resources/common/tank.json b/spine-cocos2dx/example/Resources/common/tank.json index cab50642b..b483fe274 100644 --- a/spine-cocos2dx/example/Resources/common/tank.json +++ b/spine-cocos2dx/example/Resources/common/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-cocos2dx/src/spine/SkeletonAnimation.cpp b/spine-cocos2dx/src/spine/SkeletonAnimation.cpp index 56f3c6626..5b15d9de0 100644 --- a/spine-cocos2dx/src/spine/SkeletonAnimation.cpp +++ b/spine-cocos2dx/src/spine/SkeletonAnimation.cpp @@ -40,20 +40,24 @@ using std::vector; namespace spine { -void animationCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) { - ((SkeletonAnimation*)state->rendererObject)->onAnimationStateEvent(trackIndex, type, event, loopCount); -} - -void trackEntryCallback (spAnimationState* state, int trackIndex, spEventType type, spEvent* event, int loopCount) { - ((SkeletonAnimation*)state->rendererObject)->onTrackEntryEvent(trackIndex, type, event, loopCount); -} - typedef struct _TrackEntryListeners { - StartListener startListener; - EndListener endListener; - CompleteListener completeListener; - EventListener eventListener; + StartListener startListener; + InterruptListener interruptListener; + EndListener endListener; + DisposeListener disposeListener; + CompleteListener completeListener; + EventListener eventListener; } _TrackEntryListeners; + +void animationCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) { + ((SkeletonAnimation*)state->rendererObject)->onAnimationStateEvent(entry, type, event); +} + +void trackEntryCallback (spAnimationState* state, spEventType type, spTrackEntry* entry, spEvent* event) { + ((SkeletonAnimation*)state->rendererObject)->onTrackEntryEvent(entry, type, event); + if (type == SP_ANIMATION_DISPOSE) + if (entry->rendererObject) delete (spine::_TrackEntryListeners*)entry->rendererObject; +} static _TrackEntryListeners* getListeners (spTrackEntry* entry) { if (!entry->rendererObject) { @@ -62,12 +66,7 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) { } return (_TrackEntryListeners*)entry->rendererObject; } - -void disposeTrackEntry (spTrackEntry* entry) { - if (entry->rendererObject) delete (spine::_TrackEntryListeners*)entry->rendererObject; - _spTrackEntry_dispose(entry); -} - + // SkeletonAnimation* SkeletonAnimation::createWithData (spSkeletonData* skeletonData, bool ownsSkeletonData) { @@ -117,7 +116,6 @@ void SkeletonAnimation::initialize () { _state->listener = animationCallback; _spAnimationState* stateInternal = (_spAnimationState*)_state; - stateInternal->disposeTrackEntry = disposeTrackEntry; } SkeletonAnimation::SkeletonAnimation () @@ -188,39 +186,50 @@ void SkeletonAnimation::clearTrack (int trackIndex) { spAnimationState_clearTrack(_state, trackIndex); } -void SkeletonAnimation::onAnimationStateEvent (int trackIndex, spEventType type, spEvent* event, int loopCount) { +void SkeletonAnimation::onAnimationStateEvent (spTrackEntry* entry, spEventType type, spEvent* event) { switch (type) { case SP_ANIMATION_START: - if (_startListener) _startListener(trackIndex); + if (_startListener) _startListener(entry); break; + case SP_ANIMATION_INTERRUPT: + if (_interruptListener) _interruptListener(entry); + break; case SP_ANIMATION_END: - if (_endListener) _endListener(trackIndex); + if (_endListener) _endListener(entry); break; + case SP_ANIMATION_DISPOSE: + if (_disposeListener) _disposeListener(entry); + break; case SP_ANIMATION_COMPLETE: - if (_completeListener) _completeListener(trackIndex, loopCount); + if (_completeListener) _completeListener(entry); break; case SP_ANIMATION_EVENT: - if (_eventListener) _eventListener(trackIndex, event); + if (_eventListener) _eventListener(entry, event); break; } } -void SkeletonAnimation::onTrackEntryEvent (int trackIndex, spEventType type, spEvent* event, int loopCount) { - spTrackEntry* entry = spAnimationState_getCurrent(_state, trackIndex); +void SkeletonAnimation::onTrackEntryEvent (spTrackEntry* entry, spEventType type, spEvent* event) { if (!entry->rendererObject) return; _TrackEntryListeners* listeners = (_TrackEntryListeners*)entry->rendererObject; switch (type) { case SP_ANIMATION_START: - if (listeners->startListener) listeners->startListener(trackIndex); + if (listeners->startListener) listeners->startListener(entry); break; + case SP_ANIMATION_INTERRUPT: + if (listeners->interruptListener) listeners->interruptListener(entry); + break; case SP_ANIMATION_END: - if (listeners->endListener) listeners->endListener(trackIndex); + if (listeners->endListener) listeners->endListener(entry); break; + case SP_ANIMATION_DISPOSE: + if (listeners->disposeListener) listeners->disposeListener(entry); + break; case SP_ANIMATION_COMPLETE: - if (listeners->completeListener) listeners->completeListener(trackIndex, loopCount); + if (listeners->completeListener) listeners->completeListener(entry); break; case SP_ANIMATION_EVENT: - if (listeners->eventListener) listeners->eventListener(trackIndex, event); + if (listeners->eventListener) listeners->eventListener(entry, event); break; } } @@ -228,10 +237,18 @@ void SkeletonAnimation::onTrackEntryEvent (int trackIndex, spEventType type, spE void SkeletonAnimation::setStartListener (const StartListener& listener) { _startListener = listener; } - + +void SkeletonAnimation::setInterruptListener (const InterruptListener& listener) { + _interruptListener = listener; +} + void SkeletonAnimation::setEndListener (const EndListener& listener) { _endListener = listener; } + +void SkeletonAnimation::setDisposeListener (const DisposeListener& listener) { + _disposeListener = listener; +} void SkeletonAnimation::setCompleteListener (const CompleteListener& listener) { _completeListener = listener; @@ -244,10 +261,18 @@ void SkeletonAnimation::setEventListener (const EventListener& listener) { void SkeletonAnimation::setTrackStartListener (spTrackEntry* entry, const StartListener& listener) { getListeners(entry)->startListener = listener; } + +void SkeletonAnimation::setTrackInterruptListener (spTrackEntry* entry, const InterruptListener& listener) { + getListeners(entry)->interruptListener = listener; +} void SkeletonAnimation::setTrackEndListener (spTrackEntry* entry, const EndListener& listener) { getListeners(entry)->endListener = listener; } + +void SkeletonAnimation::setTrackDisposeListener (spTrackEntry* entry, const DisposeListener& listener) { + getListeners(entry)->disposeListener = listener; +} void SkeletonAnimation::setTrackCompleteListener (spTrackEntry* entry, const CompleteListener& listener) { getListeners(entry)->completeListener = listener; diff --git a/spine-cocos2dx/src/spine/SkeletonAnimation.h b/spine-cocos2dx/src/spine/SkeletonAnimation.h index 3535e6e4f..11b300f8a 100644 --- a/spine-cocos2dx/src/spine/SkeletonAnimation.h +++ b/spine-cocos2dx/src/spine/SkeletonAnimation.h @@ -37,10 +37,12 @@ namespace spine { -typedef std::function StartListener; -typedef std::function EndListener; -typedef std::function CompleteListener; -typedef std::function EventListener; +typedef std::function StartListener; +typedef std::function InterruptListener; +typedef std::function EndListener; +typedef std::function DisposeListener; +typedef std::function CompleteListener; +typedef std::function EventListener; /** Draws an animated skeleton, providing an AnimationState for applying one or more animations and queuing animations to be * played later. */ @@ -77,17 +79,21 @@ public: void clearTrack (int trackIndex = 0); void setStartListener (const StartListener& listener); + void setInterruptListener (const InterruptListener& listener); void setEndListener (const EndListener& listener); + void setDisposeListener (const DisposeListener& listener); void setCompleteListener (const CompleteListener& listener); void setEventListener (const EventListener& listener); void setTrackStartListener (spTrackEntry* entry, const StartListener& listener); + void setTrackInterruptListener (spTrackEntry* entry, const InterruptListener& listener); void setTrackEndListener (spTrackEntry* entry, const EndListener& listener); + void setTrackDisposeListener (spTrackEntry* entry, const DisposeListener& listener); void setTrackCompleteListener (spTrackEntry* entry, const CompleteListener& listener); void setTrackEventListener (spTrackEntry* entry, const EventListener& listener); - virtual void onAnimationStateEvent (int trackIndex, spEventType type, spEvent* event, int loopCount); - virtual void onTrackEntryEvent (int trackIndex, spEventType type, spEvent* event, int loopCount); + virtual void onAnimationStateEvent (spTrackEntry* entry, spEventType type, spEvent* event); + virtual void onTrackEntryEvent (spTrackEntry* entry, spEventType type, spEvent* event); spAnimationState* getState() const; @@ -102,7 +108,9 @@ protected: bool _ownsAnimationStateData; StartListener _startListener; + InterruptListener _interruptListener; EndListener _endListener; + DisposeListener _disposeListener; CompleteListener _completeListener; EventListener _eventListener; diff --git a/spine-corona/data/goblins-mesh.json b/spine-corona/data/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-corona/data/goblins-mesh.json +++ b/spine-corona/data/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-corona/data/raptor.json b/spine-corona/data/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-corona/data/raptor.json +++ b/spine-corona/data/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-corona/data/spineboy.json b/spine-corona/data/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-corona/data/spineboy.json +++ b/spine-corona/data/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-corona/data/stretchyman.json b/spine-corona/data/stretchyman.json index 63d89f419..1f852d0f2 100644 --- a/spine-corona/data/stretchyman.json +++ b/spine-corona/data/stretchyman.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "blOhTH+VBhIluqnZVQ+1mnv7uxQ", "spine": "3.4.02", "width": 264.48, "height": 570.1, "images": "./images/" }, +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, @@ -7,13 +14,11 @@ { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, - { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "inheritScale": false }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, - { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, - { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back foot 1", "parent": "hip", @@ -21,29 +26,28 @@ "rotation": -6.55, "x": -34, "y": -279.68, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, - { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "inheritScale": false }, - { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "inheritScale": false }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, - { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "inheritScale": false }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, - { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "inheritScale": false }, - { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, - { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, { "name": "front foot 1", "parent": "hip", @@ -51,11 +55,11 @@ "rotation": -10.97, "x": -77.04, "y": -285.03, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, { @@ -94,12 +98,13 @@ "y": -42.55, "color": "abe323ff" }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, - { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "inheritScale": false } + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } ], "slots": [ { "name": "back arm", "bone": "root", "attachment": "back arm" }, @@ -113,12 +118,14 @@ "ik": [ { "name": "back leg IK", + "order": 0, "bones": [ "back leg IK 1", "back leg IK 2" ], "target": "back leg IK target", "bendPositive": false }, { "name": "front leg IK", + "order": 1, "bones": [ "front leg IK 1", "front leg IK 2" ], "target": "front leg IK target", "bendPositive": false @@ -127,6 +134,7 @@ "transform": [ { "name": "back foot position", + "order": 4, "bones": [ "back foot 1" ], "target": "back leg 8", "rotation": 108.8, @@ -140,6 +148,7 @@ }, { "name": "front foot position", + "order": 5, "bones": [ "front foot 1" ], "target": "front leg 8", "rotation": 101.55, @@ -155,6 +164,7 @@ "path": [ { "name": "back leg path", + "order": 2, "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], "target": "back leg path", "spacingMode": "percent", @@ -163,6 +173,7 @@ }, { "name": "front leg path", + "order": 3, "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], "target": "front leg path", "spacingMode": "percent", @@ -177,7 +188,7 @@ "type": "mesh", "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], - "vertices": [ 1, 6, -7.68, -11.48, 1, 1, 6, 4.08, -13.62, 1, 1, 6, 23.48, -9.35, 1, 1, 7, 13.44, -9.22999, 1, 2, 7, 35.2, -9.62, 0.50649, 8, -0.57, -9.64999, 0.4935, 1, 8, 26.03, -6.38, 1, 1, 9, 14.15, -6.11, 1, 2, 9, 31.53, -5.56, 0.66492, 10, -3.33, -5.03, 0.33507, 1, 10, 13.08, -11.25, 1, 1, 10, 24.41, -14.88, 1, 1, 10, 30.15, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.07, -2.33, 1, 1, 10, 55.73, 14.14, 1, 1, 10, 41.39, 18.46999, 1, 1, 10, 37.28, 26.87, 1, 1, 10, 24.65, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.33, 6.77, 0.4788, 10, -1.11, 7.11, 0.52119, 1, 9, 13.77, 6.04, 1, 2, 8, 24.98, 6.17, 0.89217, 9, -5.47, 6.96, 0.10782, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.32, 7.44, 0.40157, 1, 7, 11.07, 8.84, 1, 1, 6, 17.89, 11.87, 1, 1, 6, -4.82, 9.45, 1, 1, 6, -13.68, -0.69, 1 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], "hull": 26, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], "width": 72, @@ -189,7 +200,7 @@ "type": "mesh", "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], - "vertices": [ 1, 11, -19.79, -5.66, 1, 2, 11, -5.61, -22.28, 0.83363, 16, -41.06, -23.3, 0.16636, 2, 11, 22.31, -21.98, 0.65187, 16, -13.17, -21.88, 0.34812, 3, 11, 50.83, -22.1, 0.3172, 16, 15.33, -20.86, 0.43086, 17, -19.67, -21.08, 0.25193, 4, 11, 79.83999, -23.28, 0.10791, 16, 44.37, -20.87999, 0.35417, 17, 9.3, -19.19, 0.31919, 18, -25.21, -20.06, 0.21871, 4, 16, 74.05, -20.98, 0.16485, 17, 38.93, -17.34, 0.32776, 18, 4.09, -15.38, 0.2983, 19, -30.1, -17.15, 0.20907, 3, 17, 65.53, -17.61, 0.17522, 18, 30.6, -13.1, 0.39172, 19, -4.11, -11.42, 0.43304, 3, 18, 57.03, -15.71, 0.19717, 19, 22.42, -10.53, 0.5297, 20, -12.96, -9.8, 0.27311, 3, 19, 46.04, -13.46, 0.40991, 20, 10.83, -10.17, 0.34747, 21, -24.93, -10.51, 0.24261, 3, 19, 73.37999, -18.69, 0.19432, 20, 38.58, -12.41, 0.37176, 21, 2.89, -10.98, 0.4339, 3, 20, 64.06, -14.98, 0.16664, 21, 28.48, -11.94, 0.56755, 12, -7.52, -11.48, 0.26578, 3, 21, 54.57, -12.36, 0.52113, 12, 18.54999, -10.93, 0.36167, 13, -3.08, 24.95, 0.11717, 4, 21, 82.97, -14.35, 0.35144, 12, 47, -11.86, 0.29521, 13, -13.06, -1.67, 0.25118, 14, -46.29, 1.83, 0.10216, 1, 13, 16.36, -4.67, 1, 2, 13, 34.31, -4.36, 0.53486, 14, 0.74, -4.42999, 0.46513, 3, 13, 51.09, -4.08, 0.1461, 14, 17.49, -5.42, 0.54314, 15, -15.5, -2.75, 0.31075, 2, 14, 34.66999, -4.01, 0.40714, 15, 1.64, -4.36, 0.59285, 2, 14, 45.08, -3.15, 0.25726, 15, 12.05, -5.34, 0.74273, 2, 14, 53.98, 5.81, 0.25311, 15, 22.38, 1.93, 0.74688, 2, 14, 37.18999, 9.56, 0.4029, 15, 6.5, 8.56, 0.59709, 3, 13, 57.07, 14.16, 0.1335, 14, 24.83, 12.32, 0.54644, 15, -5.17999, 13.44, 0.32003, 4, 21, 47.09, 33.09999, 0.13131, 13, 42.64, 19.07, 0.26349, 14, 10.81, 18.31, 0.49745, 15, -17.93, 21.78, 0.10773, 4, 21, 46.45, 16.09, 0.21158, 12, 9.35999, 17.2, 0.10679, 13, 26.5, 24.56, 0.4495, 14, -4.85, 25, 0.2321, 3, 21, 46.8, 8.62, 0.4011, 12, 9.99, 9.75, 0.24543, 13, 19.24, 26.37, 0.35346, 3, 21, 39.7, 8.6, 0.5825, 12, 2.9, 9.47, 0.30791, 13, 21.25, 33.16999, 0.10958, 3, 20, 59.16, 5.88, 0.21954, 21, 22.27, 8.58, 0.57946, 12, -14.51, 8.79, 0.20099, 3, 19, 71.83, 0.47, 0.21583, 20, 34.96, 6.47, 0.32262, 21, -1.92, 7.62, 0.46154, 3, 19, 45.8, 3.95, 0.40553, 20, 8.7, 7.12, 0.38601, 21, -28.16, 6.61, 0.20844, 3, 18, 56.78, 2.13, 0.25409, 19, 19.83, 7.12, 0.53004, 20, -17.45, 7.46, 0.21584, 3, 17, 66.18, 3.45, 0.22413, 18, 29.22, 7.92, 0.34135, 19, -8.25, 9.24, 0.43451, 4, 16, 76.6, 4.5, 0.19364, 17, 39.78, 8.26, 0.28886, 18, 2.48, 10.18, 0.33579, 19, -35.05, 7.97, 0.1817, 4, 11, 82.87999, 7.08, 0.11658, 16, 46.17, 9.57, 0.35727, 17, 9.08, 11.32, 0.35745, 18, -28.35, 10.29, 0.16869, 3, 11, 54.45, 12.1, 0.35356, 16, 17.57, 13.46, 0.44494, 17, -19.70999, 13.31, 0.20148, 2, 11, 24.65, 16.69, 0.65438, 16, -12.39, 16.85, 0.34561, 2, 11, -8.38, 15.21, 0.8533, 16, -45.34, 14.04, 0.14669, 1, 11, -20.18, 4.56, 1, 2, 14, 35.88, 2.53, 0.40509, 15, 3.98, 1.86, 0.5949, 3, 13, 54.37, 5.91, 0.1392, 14, 21.51, 4.29, 0.54494, 15, -9.85, 6.11, 0.31584, 2, 13, 37.78, 7.63, 0.44938, 14, 5.1, 7.26, 0.55061, 3, 21, 65.37999, 20.69, 0.11857, 13, 20.59, 11.34, 0.75134, 14, -11.76, 12.27, 0.13007, 3, 21, 65.41, 1.81, 0.39679, 12, 24.3, 0.23, 0.28257, 13, 2.06, 14.97, 0.32062, 3, 21, 48, 0.07, 0.55395, 12, 6.93, -0.32, 0.33293, 13, 3.37, 30.47, 0.11311, 3, 20, 65.94999, -2.96, 0.19447, 21, 24.95, -1.57, 0.57382, 12, -15.99, -0.42, 0.2317 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], "hull": 36, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], "width": 100, @@ -201,7 +212,7 @@ "type": "path", "lengths": [ 137.82, 291.73, 641.11 ], "vertexCount": 9, - "vertices": [ 1, 23, -43.14, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.07, -0.18, 1, 2, 23, 72.07, 13.65, 0.5, 24, -69.11, -16.07, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.02, 0.5, 2, 23, 202.92, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.03, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.81, 1 ] + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] } }, "body": { @@ -209,7 +220,7 @@ "type": "mesh", "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], - "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.42, 12.41, 0.24858, 5, 22.32, 18.17, 0.75141, 2, 4, 39.47, 25.24, 0.44331, 5, -1.05999, 25.71, 0.55668, 3, 3, 48.02, 29.46, 0.3743, 4, 14.54, 26.45, 0.47619, 5, -25.57, 21.01, 0.1495, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.64611, 4, -8.99, 30.49, 0.24146, 3, 32, -45.21, -8.8, 0.10611, 2, 28.68, 30.39, 0.49532, 3, 2.88, 30.84, 0.39856, 3, 32, -28.91, -12.44, 0.25801, 2, 12.15, 32.79, 0.60893, 3, -12.28, 37.83, 0.13304, 3, 32, -18.5, -14.05, 0.28713, 2, 2.33999, 35.97, 0.51935, 26, -7.59, 18.95, 0.1935, 4, 32, -10.78, -18.35, 0.28478, 25, -42.03, 75.56, 0.10294, 2, -6.36, 37.31, 0.37493, 26, -10.2, 10.25, 0.23733, 3, 32, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.2, -0.66, 0.33772, 4, 32, 10.64, -16.31, 0.3269, 37, -24.05, -14.89, 0.16082, 2, -27.57, 33.66, 0.14432, 26, -6.36, -11.04, 0.36794, 4, 32, 28.49, -15.62, 0.24236, 37, -9.54, -15.11, 0.27028, 38, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 32, 41.59, -14.89, 0.2176, 37, 6.92, -15.34, 0.33285, 38, -26.85, -17.48, 0.20377, 26, -1.29999, -43.27, 0.24577, 3, 37, 33.82, -15.8, 0.47178, 38, 0, -15.85, 0.42626, 39, -31.79, -17.82, 0.10194, 3, 37, 63.38, -16.48, 0.2126, 38, 29.52, -14.21, 0.42737, 39, -2.42, -14.38, 0.36002, 3, 38, 49.78, -15.51, 0.30177, 39, 14.85, -13.08, 0.47126, 40, -21.14, -15.63, 0.22694, 3, 38, 61.09, -13.4, 0.15443, 39, 29.03, -11.64, 0.50848, 40, -3.26, -12.45, 0.33708, 2, 39, 41.23, -10.79, 0.28077, 40, 8.39999, -8.79, 0.71921, 2, 40, 36.23, -8.59, 0.56512, 41, -3.02, -8.83, 0.43487, 3, 40, 67.93, -10.06, 0.16322, 41, 28.68, -7.81, 0.53712, 42, -8.10999, -7.69, 0.29965, 3, 41, 47.76, -8.47, 0.402, 42, 10.97, -7.89, 0.4513, 33, -26.34, -6.21, 0.14668, 3, 41, 64.61, -8.06, 0.25016, 42, 27.8, -8.39999, 0.46039, 33, -12.76, -8.81, 0.28943, 4, 41, 79.12, -10.24, 0.11858, 42, 42.33, -8.03, 0.26981, 33, 4.53, -8.37, 0.48104, 34, -1.55, 35.59999, 0.13056, 2, 33, 20.84, -9.18999, 0.72799, 34, -5.37, 19.54999, 0.272, 1, 34, -11.5, -7.29, 1, 4, 33, 43.23, 16.27, 0.2746, 34, 15.1, -7.51, 0.48158, 35, -12.29, -5.54, 0.12942, 36, -41.75999, 0.94, 0.11439, 4, 33, 36.99, 33.93999, 0.18804, 34, 33.7, -4.57, 0.34252, 35, 6.53, -5.75, 0.18296, 36, -23.19, -2.18, 0.28646, 3, 34, 53.35, -1.58, 0.21646, 35, 26.4, -6.08, 0.26516, 36, -3.61, -5.59, 0.51836, 2, 35, 47.99, -1.76, 0.15752, 36, 18.37, -4.66, 0.84247, 1, 36, 33.16, -0.11, 1, 2, 35, 47.97, 10.84, 0.17387, 36, 20.31, 7.79, 0.82612, 4, 33, 9.83, 48.43, 0.17571, 34, 53.28, 18.69, 0.17038, 35, 29.73, 13.92, 0.136, 36, 2.76, 13.66, 0.5179, 4, 33, 11.45, 34.57, 0.26313, 34, 39.25999, 20.54999, 0.23037, 35, 16.20999, 18.09, 0.15679, 36, -9.93999, 19.87999, 0.3497, 4, 33, 12.4, 17.12999, 0.37056, 34, 22.1, 22.5, 0.30409, 35, -0.37, 22.87, 0.18235, 36, -25.59, 27.17, 0.14297, 3, 33, 12.34, 10.43, 0.44639, 34, 15.56, 23.91, 0.2976, 35, -6.59, 25.36, 0.256, 5, 41, 75.94999, 9.06, 0.10562, 42, 38.15, 11.08, 0.25494, 33, 1.65, 10.97, 0.33578, 34, 17.98, 34.75, 0.16322, 35, -2.38, 35.64, 0.14041, 3, 41, 62.61, 10.94, 0.26063, 42, 26.04, 10.62, 0.49791, 33, -15.14, 10.14, 0.24144, 3, 41, 47.27, 9.67, 0.40348, 42, 9.53, 10.18999, 0.4787, 33, -26.59, 11.93, 0.11781, 3, 40, 69.23, 6.97, 0.16043, 41, 28.63, 9.26, 0.53934, 42, -7.94, 9.38, 0.30019, 2, 40, 37.36, 8, 0.57647, 41, -3.21, 7.8, 0.42351, 2, 39, 45.48, 7.1, 0.29349, 40, 8.38, 9.60999, 0.7065, 3, 38, 62.84, 9, 0.15445, 39, 29.4, 10.82, 0.49324, 40, -8.12, 9.49, 0.35229, 3, 38, 52.14, 9.27, 0.30575, 39, 12.84, 11.73, 0.46742, 40, -26.12, 8.77, 0.22682, 3, 37, 66.66, 11.26, 0.21798, 38, 30.61, 13.69, 0.42844, 39, -3.05, 13.53, 0.35357, 3, 37, 37.7, 16.76, 0.48245, 38, 1.30999, 16.92, 0.41751, 39, -32.49, 14.97, 0.10002, 4, 32, 44.34, 22.11, 0.23459, 37, 11.91, 21.43, 0.43853, 38, -24.76, 19.56, 0.20679, 2, -58.28, -7.19, 0.12007, 4, 32, 28.54, 23.57, 0.31079, 37, -3.76, 23.83, 0.19157, 25, -76.76, 29.22, 0.2153, 2, -42.42, -7.45, 0.2823, 3, 32, 22.31, 41.64, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37848, 3, 32, 19.77, 51.42, 0.1392, 25, -59.84, 2.52, 0.47895, 2, -23.89, -35.16, 0.38184, 3, 32, 6.03, 61.53, 0.10543, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.16, -13.13, 0.67426, 2, -1.22, -50.82, 0.32573, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.49, 0.89018, 2, 37.39, -48.18, 0.10981, 3, 25, 30.4, 0.96, 0.43019, 2, 66.35, -36.72, 0.16237, 3, 19.96999, -44.2, 0.40743, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.21, 0.31834, 2, 3, 50.68, -30.61, 0.51066, 4, 0.38, -31.99, 0.48933, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.28, 0.12041, 3, 3, 69.4, -22.88, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.52, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.55, -19.37, 0.1738, 5, 26.05, -13.63, 0.82619, 5, 32, 20.79, 3.26, 0.38867, 37, -12.73, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10105, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.24, 0.13748, 4, 32, 2.68, 26.81, 0.26409, 25, -50.86, 29.21, 0.2337, 2, -16.39, -8.72999, 0.34628, 26, 35.78, -0.48, 0.15592, 3, 32, -15.65, 28.57, 0.15678, 25, -33.53, 28.78, 0.29159, 2, 2.02, -9.1, 0.55161, 1, 25, -28.17, 8.37, 1, 1, 25, -5.01, 10.99, 1, 3, 25, 24.12, 24.17, 0.12051, 2, 60.06, -13.51, 0.21384, 3, 20.53, -20.16, 0.66563, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.65, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58729, 5, -3.66, 7.65, 0.4127, 2, 3, 39.52, 3.1, 0.47136, 4, -0.95, 3.49, 0.52863, 1, 3, 17.87999, 2.56, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 32, -2.63, 46, 0.10032, 25, -45.41, 10.26, 0.52611, 2, -9.64, -27.46, 0.37355, 2, 35, 47.98, 4.75, 0.16597, 36, 19.37, 1.77, 0.83402, 4, 33, 19.54999, 50.48, 0.12624, 34, 53.3, 9.5, 0.16908, 35, 28.21, 4.85, 0.24846, 36, -0.13, 4.94, 0.4562, 4, 33, 26.31, 16.82, 0.32786, 34, 18.95999, 9.25, 0.38307, 35, -5.68, 10.34, 0.15879, 36, -32.77, 15.61, 0.13026, 2, 33, 16.95999, -0.03, 0.66864, 34, 4.23, 21.71, 0.33135, 3, 33, 28.1, 2.85, 0.4826, 34, 4.91, 10.14, 0.31302, 35, -19.37999, 13.57, 0.20437, 3, 41, 63.21, -0.58, 0.21068, 42, 25.96, 0.78, 0.49386, 33, -11.01, 1.48, 0.29543, 3, 32, -14.83, 8.08, 0.24448, 25, -33.34, 51.23, 0.16324, 2, 2.58999, 13.53, 0.59226, 4, 32, 3.37, 4.96, 0.28616, 25, -51.81, 51.13, 0.16476, 2, -15.86, 13.44, 0.31891, 26, 13.85, -0.52, 0.23015, 4, 32, 46.08, 3.58, 0.24089, 37, 9.06, 3.09, 0.41151, 38, -28.46, 0.64, 0.21862, 26, 17.5, -43.07, 0.12896, 3, 37, 37.22, 1.25, 0.47744, 38, -0.08, 1.25, 0.42162, 39, -36.25, -5.25, 0.10092, 4, 32, -5.23, 6.29, 0.25594, 25, -43.1, 51.32, 0.15578, 2, -7.16, 13.62, 0.42092, 26, 14.16, 8.17, 0.16734, 4, 32, 33.03, 3.37, 0.36684, 37, -3.96, 3.6, 0.31093, 2, -45.32, 9.82, 0.17306, 26, 15.75, -30.14, 0.14914, 4, 41, 77.5, -1.16, 0.11479, 42, 40.23, 0.95, 0.26888, 33, 3.05, 0.72, 0.44972, 34, 7.66, 35.32, 0.16659, 4, 33, 22.72, 34.66999, 0.2209, 34, 37.18, 9.38, 0.26955, 35, 12.29, 7.43, 0.20636, 36, -15.46, 9.95, 0.30317 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], "hull": 60, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], "width": 141, @@ -221,7 +232,7 @@ "type": "mesh", "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], - "vertices": [ 1, 47, 21.66, 6.07, 1, 2, 46, 18.12999, 3.37, 0.16553, 47, 3.91, 4.23, 0.83446, 3, 27, -6.12, -15.23, 0.20965, 46, -0.04, 8.85, 0.53629, 5, 43.44, 6.81, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.88821, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.57, -9.68999, 0.30995, 28, 12.31, -9.60999, 0.69004, 2, 28, 24.21, -9.37, 0.86562, 29, -13.42, -6.2, 0.13437, 2, 28, 32.12, -9.21, 0.73143, 29, -5.72, -8.02, 0.26856, 2, 28, 39.34999, -7.58, 0.54007, 29, 1.68, -8.24, 0.45992, 2, 28, 46.9, -5.88, 0.29036, 29, 9.41, -8.47999, 0.70963, 2, 29, 18.58, -8.76, 0.66539, 30, -15.75, -5.12, 0.3346, 1, 30, 6.03, -8.58, 1, 2, 30, 31.42, -5.97, 0.39256, 31, 0.49, -6.36, 0.60743, 1, 31, 23.79, -9.31, 1, 1, 31, 52.37, -11.28, 1, 1, 31, 62.39, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.48, 1, 1, 31, 25.99, 28.24, 1, 1, 31, 8.33, 5.63, 1, 2, 30, 28.81, 6.64, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.66, 11.07, 0.10767, 29, 18.26, 6.74, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.87, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.35, 9.85999, 0.40816, 2, 28, 23.72, 9.68999, 0.83035, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.2992, 28, 13.67, 9.97, 0.70079, 2, 27, 32.18, 12.59, 0.84686, 28, -6.23, 12.54, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47199, 4, 29.16, -0.35, 0.528, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.45, -29.43, 1, 2, 5, -8.22999, -31.56, 0.51928, 4, 19, -28.73, 0.4807, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.69, -14.54, 0.25481, 47, 2.13, -14.4, 0.32231, 5, 42.47, -19.81, 0.42286, 1, 47, 13.63, -8.89, 1, 1, 27, 3.55, 0.9, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.33, 0.49989, 1, 5, 25.66, -11.24, 1, 3, 46, 13.39, -4.64, 0.33234, 47, 0.86, -4.56, 0.48165, 5, 48.11, -11.65, 0.186 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], "hull": 38, "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], "width": 145, @@ -233,7 +244,7 @@ "type": "path", "lengths": [ 140.43, 297.34, 652.04 ], "vertexCount": 9, - "vertices": [ 1, 44, -40.7, -0.41, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.42, 0.33, 1, 2, 44, 82.92, 8.49, 0.5, 45, -58.75, -8.53, 0.5, 2, 44, 141.34, 0.52, 0.5, 45, 0.45, 0.71, 0.5, 2, 44, 208.26, -14.83, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.81, 1.41, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.76, 1 ] + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] } }, "head": { @@ -241,7 +252,7 @@ "type": "mesh", "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], - "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.33, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.14, 26.24, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.06, 1, 1, 47, 10.7, -8.62, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.7, -44.64, 1, 1, 48, 27.89, -48.41, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.91, -45.89, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.05, 1, 1, 48, 86.81, -25.91, 1, 1, 48, 92.45, -10.29, 1, 1, 48, 60.63, -22.97, 1, 1, 48, 49.77, -12.03, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.73, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.7, 1, 1, 48, 63.85, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.66, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.39, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.07, -38.41999, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], "hull": 19, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], "width": 87, @@ -260,11 +271,11 @@ { "time": 0.3333, "angle": -31.29 }, { "time": 0.5333, "angle": -44.75 }, { "time": 0.7333, "angle": -25.49 }, - { "time": 0.9, "angle": -9.45 }, + { "time": 0.8999, "angle": -9.45 }, { "time": 1.0666, "angle": 30.27 }, { "time": 1.2333, "angle": -10.1 }, { "time": 1.6333, "angle": -41.47 }, - { "time": 1.8, "angle": 30.27 } + { "time": 1.7999, "angle": 30.27 } ], "translate": [ { "time": 0, "x": -57.43, "y": -40.92 }, @@ -284,7 +295,7 @@ { "time": 0.4333, "x": 344.29, "y": -134.94 }, { "time": 0.5333, "x": 543.13, "y": -81.1 }, { "time": 0.7333, "x": 569.68, "y": -62.13 }, - { "time": 0.9, "x": 591.8, "y": -46.32 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, { "time": 1.0666, "x": 653.14, @@ -296,7 +307,7 @@ { "time": 1.3333, "x": 986.94, "y": -153.35 }, { "time": 1.4333, "x": 1178.19, "y": -111.88 }, { "time": 1.6333, "x": 1195.1, "y": -62.1 }, - { "time": 1.8, "x": 1246.53, "y": -40.92 } + { "time": 1.7999, "x": 1246.53, "y": -40.92 } ] }, "front leg IK target": { @@ -311,32 +322,32 @@ "curve": [ 0.532, 0, 0.75, 1 ] }, { "time": 0.7333, "x": 566.43, "y": 107.27 }, - { "time": 0.9, "x": 1215.89, "y": 68.21 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, { "time": 1.0666, "x": 1235.47, "y": 15.8 }, { "time": 1.2333, "x": 1235.47, "y": 0.97 }, { "time": 1.5666, "x": 1230.15, "y": 3.76 }, { "time": 1.7, "x": 1244, "y": 26.76 }, - { "time": 1.8, "x": 1253.53, "y": 44.61 } + { "time": 1.7999, "x": 1253.53, "y": 44.61 } ] }, "front foot 1": { "rotate": [ { "time": 0, "angle": -48.38, "curve": "stepped" }, { "time": 0.3333, "angle": -48.38 }, - { "time": 0.7, "angle": -121.34 }, + { "time": 0.6999, "angle": -121.34 }, { "time": 0.8, "angle": -80.19 }, - { "time": 0.9, "angle": 45.59 }, + { "time": 0.8999, "angle": 45.59 }, { "time": 1.0666, "angle": 2.1 }, { "time": 1.2333, "angle": 4.65 }, { "time": 1.5666, "angle": 5.66 }, - { "time": 1.8, "angle": -48.38 } + { "time": 1.7999, "angle": -48.38 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.6, "x": 1, "y": 1 }, { "time": 0.6333, "x": 0.954, "y": 1 }, { "time": 0.7666, "x": 0.82, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, { "time": 1.0666, "x": 0.851, "y": 1 }, { "time": 1.3666, "x": 1, "y": 1 } ] @@ -348,12 +359,12 @@ { "time": 0.5, "angle": 34.84 }, { "time": 0.5333, "angle": 30.32 }, { "time": 0.5666, "angle": 61.67 }, - { "time": 0.7, "angle": -19.47 }, - { "time": 0.9, "angle": -0.12 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, { "time": 1.0666, "angle": -7.21 }, { "time": 1.2333, "angle": -11.34 }, { "time": 1.5666, "angle": -11.23 }, - { "time": 1.8, "angle": 36.32 } + { "time": 1.7999, "angle": 36.32 } ] }, "back leg IK target": { @@ -361,15 +372,15 @@ { "time": 0, "x": 516.79, "y": 86.68 }, { "time": 0.1666, "x": 523.71, "y": 16.63 }, { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, - { "time": 0.7, "x": 523.03, "y": -5 }, - { "time": 0.9, "x": 551.31, "y": 41.86 }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, { "time": 1.0666, "x": 554.24, "y": 44.45 }, { "time": 1.1333, "x": 555.44, "y": 44.74 }, { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, { "time": 1.4333, "x": 556.6, "y": 46.19 }, { "time": 1.5, "x": 746.96, "y": 74.82 }, { "time": 1.6333, "x": 1127.68, "y": 103.61 }, - { "time": 1.8, "x": 1820.75, "y": 86.68 } + { "time": 1.7999, "x": 1820.75, "y": 86.68 } ] }, "back foot 1": { @@ -377,32 +388,32 @@ { "time": 0, "angle": 74.17 }, { "time": 0.1666, "angle": -17.01 }, { "time": 0.3333, "angle": 5.05 }, - { "time": 0.7, "angle": 3.74 }, - { "time": 0.9, "angle": -65.56 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, { "time": 1.6333, "angle": -92.52 }, - { "time": 1.8, "angle": 74.17 } + { "time": 1.7999, "angle": 74.17 } ], "scale": [ { "time": 0, "x": 0.824, "y": 1 }, { "time": 0.1666, "x": 0.754, "y": 1 }, { "time": 0.3333, "x": 0.589, "y": 1 }, { "time": 0.5666, "x": 0.909, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 1.4, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, { "time": 1.5, "x": 0.844, "y": 1 }, - { "time": 1.8, "x": 0.824, "y": 1 } + { "time": 1.7999, "x": 0.824, "y": 1 } ] }, "back foot 2": { "rotate": [ { "time": 0, "angle": 8.13 }, { "time": 0.1666, "angle": -3.21 }, - { "time": 0.7, "angle": -1.14 }, - { "time": 0.9, "angle": 34.12 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, { "time": 1.4333, "angle": 46.68 }, { "time": 1.5333, "angle": -15.6 }, { "time": 1.6333, "angle": -11.91 }, - { "time": 1.8, "angle": 8.13 } + { "time": 1.7999, "angle": 8.13 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -416,12 +427,12 @@ { "time": 0.1666, "angle": -37.29 }, { "time": 0.3333, "angle": 30.66 }, { - "time": 0.9, + "time": 0.8999, "angle": -53.28, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 36 }, - { "time": 1.8, "angle": -39.71 } + { "time": 1.7999, "angle": -39.71 } ] }, "neck 1": { @@ -434,7 +445,7 @@ { "time": 1.1666, "angle": 23.95 }, { "time": 1.2333, "angle": 36.37 }, { "time": 1.6333, "angle": 41.16 }, - { "time": 1.8, "angle": 21.95 } + { "time": 1.7999, "angle": 21.95 } ] }, "neck 2": { @@ -444,11 +455,11 @@ { "time": 0.2666, "angle": 8.84 }, { "time": 0.3333, "angle": 30.71 }, { "time": 0.7333, "angle": -3.36 }, - { "time": 0.9, "angle": -17.57 }, + { "time": 0.8999, "angle": -17.57 }, { "time": 1.1666, "angle": 2.19 }, { "time": 1.2333, "angle": 15.25 }, { "time": 1.6333, "angle": 4.41 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "head": { @@ -459,11 +470,11 @@ { "time": 0.3333, "angle": 13.1 }, { "time": 0.5, "angle": 13.1 }, { "time": 0.7333, "angle": -18.9 }, - { "time": 0.9, "angle": -41.77 }, + { "time": 0.8999, "angle": -41.77 }, { "time": 1.1666, "angle": -4 }, { "time": 1.2333, "angle": -2.35 }, { "time": 1.6333, "angle": -22.89 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "back arm 1": { @@ -472,11 +483,11 @@ { "time": 0.1666, "angle": -18.65 }, { "time": 0.3333, "angle": 324.98 }, { "time": 0.5666, "angle": -6.41 }, - { "time": 0.9, "angle": -14.83 }, + { "time": 0.8999, "angle": -14.83 }, { "time": 1.0666, "angle": -16.9 }, { "time": 1.2333, "angle": 1.49 }, - { "time": 1.4, "angle": 2.56 }, - { "time": 1.8, "angle": -17.23 } + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } ], "translate": [ { "time": 0, "x": -14.25, "y": -6.6 } @@ -494,7 +505,7 @@ { "time": 1.2333, "x": 0.956, "y": 1 }, { "time": 1.4333, "x": 2.315, "y": 1 }, { "time": 1.6333, "x": 0.774, "y": 1 }, - { "time": 1.8, "x": 2.186, "y": 1 } + { "time": 1.7999, "x": 2.186, "y": 1 } ] }, "front leg 1": { @@ -518,18 +529,18 @@ "y": 1, "curve": [ 0.532, 0, 0.75, 1 ] }, - { "time": 0.7, "x": 1, "y": 1 }, - { "time": 0.9, "x": 2.248, "y": 1 }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, { "time": 1.0666, "x": 2.002, "y": 1 }, { "time": 1.2333, "x": 1.495, "y": 1 }, { - "time": 1.3, + "time": 1.2999, "x": 1.047, "y": 1, "curve": [ 0.339, 0.58, 0.764, 1 ] }, { "time": 1.4333, "x": 0.779, "y": 0.762 }, - { "time": 1.8, "x": 1, "y": 1 } + { "time": 1.7999, "x": 1, "y": 1 } ] }, "front leg IK 2": { @@ -543,12 +554,12 @@ { "time": 0.1666, "angle": 17.37 }, { "time": 0.3333, "angle": 31.94 }, { - "time": 0.9, + "time": 0.8999, "angle": 4.76, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 39.96 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "spine 2": { @@ -561,7 +572,7 @@ { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -6.69 }, { "time": 1.6333, "angle": -2.5 }, - { "time": 1.8, "angle": -3.49 } + { "time": 1.7999, "angle": -3.49 } ] }, "spine 3": { @@ -571,11 +582,11 @@ { "time": 0.3333, "angle": -9.02 }, { "time": 0.5, "angle": -2.65 }, { "time": 0.7333, "angle": -10.53 }, - { "time": 0.9, "angle": -16.16 }, + { "time": 0.8999, "angle": -16.16 }, { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -9.02 }, { "time": 1.6333, "angle": -7.26 }, - { "time": 1.8, "angle": -20.41 } + { "time": 1.7999, "angle": -20.41 } ] }, "back arm 3": { @@ -584,22 +595,22 @@ { "time": 0.1666, "angle": 53.14 }, { "time": 0.3333, "angle": 116.25 }, { "time": 0.5666, "angle": 35.72 }, - { "time": 0.9, "angle": 39.32 }, + { "time": 0.8999, "angle": 39.32 }, { "time": 1.0666, "angle": 41.19 }, { "time": 1.2333, "angle": 78.09 }, - { "time": 1.4, "angle": 36.16 }, - { "time": 1.8, "angle": 26.23 } + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } ] }, "back foot 3": { "rotate": [ { "time": 0, "angle": 11.35 }, - { "time": 0.7, "angle": -4.24 }, - { "time": 0.9, "angle": 25.48, "curve": "stepped" }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, { "time": 1.4333, "angle": 25.48 }, { "time": 1.5333, "angle": -30.51 }, { "time": 1.6333, "angle": -20.54 }, - { "time": 1.8, "angle": 11.35 } + { "time": 1.7999, "angle": 11.35 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -614,11 +625,11 @@ { "time": 0.3333, "angle": -24.32 }, { "time": 0.5, "angle": -13.37 }, { "time": 0.7333, "angle": 21.61 }, - { "time": 0.9, "angle": 46.61 }, + { "time": 0.8999, "angle": 46.61 }, { "time": 1.1666, "angle": -28.69 }, { "time": 1.2333, "angle": -43.33 }, { "time": 1.6333, "angle": 24.89 }, - { "time": 1.8, "angle": 10.81 } + { "time": 1.7999, "angle": 10.81 } ] }, "spine 4": { @@ -628,11 +639,11 @@ { "time": 0.3333, "angle": -0.82 }, { "time": 0.5, "angle": 4.13 }, { "time": 0.7333, "angle": -3.74 }, - { "time": 0.9, "angle": -9.37 }, + { "time": 0.8999, "angle": -9.37 }, { "time": 1.1666, "angle": -9.02 }, { "time": 1.2333, "angle": -0.82 }, { "time": 1.6333, "angle": 3.81 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "front foot 2": { @@ -642,12 +653,12 @@ { "time": 0.3333, "angle": -0.2 }, { "time": 0.5, "angle": 22.72 }, { "time": 0.5333, "angle": 26.87 }, - { "time": 0.7, "angle": -39.25 }, - { "time": 0.9, "angle": 11.26 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, { "time": 1.0666, "angle": -18.17 }, { "time": 1.2333, "angle": -2.64 }, { "time": 1.5666, "angle": -5.84 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "belly": { @@ -660,7 +671,7 @@ { "time": 1.1, "x": -0.44, "y": -1.45 }, { "time": 1.2333, "x": 12.37, "y": 2.32 }, { "time": 1.3666, "x": 11.51, "y": 5.52 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "butt": { @@ -669,7 +680,7 @@ { "time": 0.7666, "x": 9.88, "y": -25.41 }, { "time": 0.8333, "x": 15.89, "y": -41.88 }, { "time": 1.2333, "x": -12.49, "y": -32.99 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] } }, @@ -688,7 +699,7 @@ { "time": 1.4333, "offset": 110, - "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56073, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] }, { "time": 1.5 } ] @@ -698,11 +709,11 @@ { "time": 1.4333 }, { "time": 1.5, - "vertices": [ 4.67718, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17206 ] + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] }, { "time": 1.5666, - "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62085, -280.84912 ] + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] }, { "time": 1.6666 } ] @@ -713,7 +724,7 @@ { "time": 0.3333, "offset": 164, - "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28855, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] }, { "time": 0.5333, @@ -746,11 +757,11 @@ { "time": 0.5666 }, { "time": 0.6333, - "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] }, { - "time": 0.7, - "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] }, { "time": 0.8 } ] diff --git a/spine-corona/data/tank.json b/spine-corona/data/tank.json index cab50642b..b483fe274 100644 --- a/spine-corona/data/tank.json +++ b/spine-corona/data/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-corona/data/test.json b/spine-corona/data/test.json index 773d0b805..7c344afab 100644 --- a/spine-corona/data/test.json +++ b/spine-corona/data/test.json @@ -1,18 +1,25 @@ { -"skeleton": { "hash": "xbu5IFg+2tCx4+2MavNPurEogzA", "spine": "3.4.02", "width": 1333.78, "height": 1112.91, "images": "./images/" }, +"skeleton": { + "hash": "i05EldfljpjLC64I/kHnNrqzJ5A", + "spine": "3.5.03-beta", + "width": 1333.78, + "height": 1112.91, + "fps": 30, + "images": "./images/" +}, "bones": [ - { "name": "root", "x": 28.68, "y": -105.71 }, - { "name": "attachment", "parent": "root", "x": -267.71, "y": -366.62 }, - { "name": "color", "parent": "root", "x": -298.29, "y": 44.1 }, - { "name": "draworder", "parent": "root", "x": 283.53, "y": -356.27 }, - { "name": "mesh", "parent": "root", "x": -320.74, "y": 413.7 }, - { "name": "meshweighted", "parent": "root", "rotation": -11.22, "x": -353.28, "y": 627.53 }, - { "name": "pathfollower", "parent": "root", "x": 177.52, "y": 56.62 }, + { "name": "root", "x": 28.68, "y": -105.7 }, + { "name": "attachment", "parent": "root", "x": -267.7, "y": -366.61 }, + { "name": "color", "parent": "root", "x": -298.29, "y": 44.09 }, + { "name": "draworder", "parent": "root", "x": 283.52, "y": -356.26 }, + { "name": "mesh", "parent": "root", "x": -320.73, "y": 413.7 }, + { "name": "meshweighted", "parent": "root", "rotation": -11.22, "x": -353.27, "y": 627.53 }, + { "name": "pathfollower", "parent": "root", "x": 177.52, "y": 56.61 }, { "name": "rotate", "parent": "root", "x": -305, "y": 201 }, { "name": "scale", "parent": "root", "x": 183.99, "y": -138 }, { "name": "shear", "parent": "root", "x": -304, "y": -146 }, - { "name": "transformconstrainttarget", "parent": "root", "x": 604.27, "y": 420.7, "color": "abe323ff" }, { "name": "transformconstrained", "parent": "root", "x": 169.6, "y": 420.7 }, + { "name": "transformconstrainttarget", "parent": "root", "x": 604.27, "y": 420.7, "color": "abe323ff" }, { "name": "translate", "parent": "root", "x": 190.99, "y": 201, "color": "abe323ff" } ], "slots": [ @@ -34,6 +41,7 @@ "transform": [ { "name": "transformconstraint", + "order": 1, "bones": [ "transformconstrained" ], "target": "transformconstrainttarget", "x": -400, @@ -46,6 +54,7 @@ "path": [ { "name": "pathconstraint", + "order": 0, "bones": [ "pathfollower" ], "target": "path2", "rotation": 34.2 @@ -72,7 +81,7 @@ "path": "spine", "uvs": [ 0, 0, 0.25, 0, 0.5, 0, 0.75, 0, 1, 0, 1, 0.25, 1, 0.5, 1, 0.75, 1, 1, 0.75, 1, 0.5, 1, 0.25, 1, 0, 1, 0, 0.75, 0, 0.5, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.25, 0.75, 0.5, 0.25, 0.5, 0.5, 0.5, 0.75, 0.75, 0.25, 0.75, 0.5, 0.75, 0.75 ], "triangles": [ 15, 0, 1, 16, 1, 2, 15, 1, 16, 19, 2, 3, 16, 2, 19, 22, 3, 4, 19, 3, 22, 22, 4, 5, 14, 15, 16, 17, 16, 19, 14, 16, 17, 20, 19, 22, 17, 19, 20, 23, 22, 5, 20, 22, 23, 23, 5, 6, 13, 14, 17, 18, 17, 20, 13, 17, 18, 21, 20, 23, 18, 20, 21, 24, 23, 6, 21, 23, 24, 24, 6, 7, 12, 13, 18, 11, 18, 21, 12, 18, 11, 10, 21, 24, 11, 21, 10, 9, 24, 7, 10, 24, 9, 9, 7, 8 ], - "vertices": [ 1, 5, -194.67, 21.29, 1, 1, 5, -102.08, 38.91, 1, 1, 5, -9.49, 56.54, 1, 1, 5, 83.08, 74.16, 1, 1, 5, 175.67, 91.79, 1, 1, 5, 181.28, 62.32, 1, 1, 5, 186.89, 32.84, 1, 1, 5, 192.5, 3.38, 1, 1, 5, 198.11, -26.09, 1, 1, 5, 105.52, -43.71, 1, 1, 5, 12.94, -61.33, 1, 1, 5, -79.64, -78.96, 1, 1, 5, -172.23, -96.58, 1, 1, 5, -177.84, -67.11, 1, 1, 5, -183.45, -37.64, 1, 1, 5, -189.06, -8.17, 1, 1, 5, -96.47, 9.45, 1, 1, 5, -90.86, -20.01, 1, 1, 5, -85.25, -49.48, 1, 1, 5, -3.88, 27.07, 1, 1, 5, 1.72, -2.39, 1, 1, 5, 7.33, -31.86, 1, 1, 5, 88.7, 44.69, 1, 1, 5, 94.31, 15.22, 1, 1, 5, 99.92, -14.24, 1 ], + "vertices": [ 1, 5, -194.66, 21.29, 1, 1, 5, -102.08, 38.90999, 1, 1, 5, -9.47999, 56.54, 1, 1, 5, 83.08, 74.16, 1, 1, 5, 175.66, 91.79, 1, 1, 5, 181.27, 62.31, 1, 1, 5, 186.88, 32.84, 1, 1, 5, 192.5, 3.38, 1, 1, 5, 198.11, -26.09, 1, 1, 5, 105.51, -43.7, 1, 1, 5, 12.93, -61.33, 1, 1, 5, -79.62999, -78.94999, 1, 1, 5, -172.22, -96.58, 1, 1, 5, -177.83, -67.11, 1, 1, 5, -183.44, -37.63, 1, 1, 5, -189.05, -8.17, 1, 1, 5, -96.47, 9.43999, 1, 1, 5, -90.86, -20.01, 1, 1, 5, -85.25, -49.47, 1, 1, 5, -3.88, 27.05999, 1, 1, 5, 1.72, -2.39, 1, 1, 5, 7.32, -31.86, 1, 1, 5, 88.69, 44.68, 1, 1, 5, 94.3, 15.22, 1, 1, 5, 99.91, -14.22999, 1 ], "hull": 16, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 0 ], "width": 377, @@ -105,9 +114,9 @@ "images/spine": { "type": "mesh", "path": "spine", - "uvs": [ 1, 0.50124, 1, 1, 0.72412, 1, 0.49981, 1, 0.28581, 1, 0, 1, 0, 0.50124, 0, 0, 0.49207, 0, 1, 0, 0.56941, 0.57414, 0.84014, 0.50124, 0.61841, 0.22584, 0.20589, 0.20154, 0.19558, 0.67134, 0.39152, 0.86574, 0.3941, 0.41214, 0.3941, 0.12864, 0.76021, 0.19344, 0.76537, 0.59034, 0.74474, 0.84144, 0.57716, 0.81714 ], + "uvs": [ 1, 0.50124, 1, 1, 0.72412, 1, 0.49981, 1, 0.2858, 1, 0, 1, 0, 0.50124, 0, 0, 0.49206, 0, 1, 0, 0.56941, 0.57414, 0.84013, 0.50124, 0.6184, 0.22584, 0.20588, 0.20153, 0.19558, 0.67133, 0.39151, 0.86574, 0.3941, 0.41214, 0.3941, 0.12863, 0.7602, 0.19344, 0.76537, 0.59034, 0.74474, 0.84144, 0.57716, 0.81713 ], "triangles": [ 17, 7, 8, 18, 8, 9, 13, 7, 17, 12, 8, 18, 17, 8, 12, 16, 17, 12, 13, 17, 16, 6, 7, 13, 6, 13, 16, 18, 9, 0, 11, 18, 0, 10, 16, 12, 12, 18, 11, 10, 12, 11, 19, 10, 11, 14, 6, 16, 14, 16, 10, 21, 10, 19, 15, 14, 10, 20, 21, 19, 21, 15, 10, 5, 6, 14, 4, 5, 14, 15, 4, 14, 3, 15, 21, 4, 15, 3, 2, 21, 20, 3, 21, 2, 19, 11, 0, 0, 20, 19, 1, 20, 0, 2, 20, 1 ], - "vertices": [ 191.41, -1.12, 191.41, -60.97, 87.4, -60.97, 2.84, -60.97, -77.82, -60.97, -185.58, -60.97, -185.58, -1.12, -185.58, 59.02, -0.07, 59.02, 191.41, 59.02, 29.09, -9.85, 131.14, -1.12, 47.55, 31.92, -107.96, 34.84, -111.85, -21.53, -37.97, -44.86, -37, 9.57, -37, 43.59, 101.01, 35.81, 102.96, -11.81, 95.18, -41.93, 32, -39.02 ], + "vertices": [ 191.41, -1.12, 191.41, -60.97, 87.4, -60.97, 2.82999, -60.97, -77.80999, -60.97, -185.58, -60.97, -185.58, -1.12, -185.58, 59.02, -0.07, 59.02, 191.41, 59.02, 29.09, -9.85, 131.13, -1.12, 47.54, 31.92, -107.94999, 34.84, -111.83999, -21.53, -37.97, -44.86, -37, 9.56, -37, 43.59, 101.01, 35.81, 102.94999, -11.81, 95.18, -41.93, 32, -39.02 ], "hull": 10, "edges": [ 10, 12, 12, 14, 14, 16, 16, 18, 2, 0, 0, 18, 6, 8, 8, 10, 2, 4, 4, 6 ], "width": 377, @@ -120,7 +129,7 @@ "closed": true, "lengths": [ 128.85, 310.24, 465.06, 600.88, 773.97 ], "vertexCount": 15, - "vertices": [ 258.07, -42.67, 291.94, -17.53, 326.41, 7.22, 391.41, 2.75, 398.05, 46.72, 399.83, 84.07, 274.03, 106.4, 236.7, 117.74, 199.37, 129.09, 116.55, 135.12, 84.41, 115.47, 50.34, 94.04, 56.53, 1.48, 89.01, -5.59, 122.89, -13.58 ] + "vertices": [ 258.07, -42.65999, 291.94, -17.53, 326.41, 7.21, 391.41, 2.75, 398.04, 46.72, 399.82, 84.05999, 274.02, 106.4, 236.69, 117.73, 199.36, 129.08, 116.55, 135.11, 84.41, 115.47, 50.34, 94.04, 56.52, 1.48, 89.01, -5.59, 122.87999, -13.56999 ] } } } @@ -132,7 +141,7 @@ "color": [ { "time": 0, "color": "ffffffff" }, { "time": 0.4333, "color": "ff0901ff" }, - { "time": 0.9, "color": "2dff00ff" }, + { "time": 0.8999, "color": "2dff00ff" }, { "time": 1.3333, "color": "ffffffff" } ] }, @@ -159,40 +168,40 @@ "y": 0, "curve": [ 1, 0, 0, 1 ] }, - { "time": 0.6666, "x": 96.99, "y": -151 }, + { "time": 0.6666, "x": 96.98, "y": -151 }, { "time": 1.3333, "x": 0, "y": 0 } ] }, "scale": { "scale": [ { "time": 0, "x": 1, "y": 1 }, - { "time": 0.6666, "x": 1, "y": 2.34 }, + { "time": 0.6666, "x": 1, "y": 2.339 }, { "time": 1.3333, "x": 1, "y": 1 } ] }, "rotate": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.6666, "angle": -125.34 }, + { "time": 0.6666, "angle": -125.33 }, { "time": 1.3333, "angle": 0 } ] }, "shear": { "shear": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 29.4, "y": 0 }, + { "time": 0.6666, "x": 29.39, "y": 0 }, { "time": 1.3333, "x": 0, "y": 0 } ] }, "transformconstrainttarget": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.6666, "angle": -74.6 }, + { "time": 0.6666, "angle": -74.59 }, { "time": 1.3333, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 176.22, "y": -170.34 }, + { "time": 0.6666, "x": 176.22, "y": -170.33 }, { "time": 1.3333, "x": 0, "y": 0 } ], "scale": [ @@ -202,7 +211,7 @@ ], "shear": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 23.4, "y": 0 }, + { "time": 0.6666, "x": 23.39, "y": 0 }, { "time": 1.3333, "x": 0, "y": 0 } ] } @@ -221,11 +230,11 @@ { "time": 1.3333, "position": 1 } ], "spacing": [ - { "time": 0, "spacing": 40.1 }, + { "time": 0, "spacing": 40.0999 }, { "time": 1.3333 } ], "mix": [ - { "time": 0.6666, "rotateMix": 0.473, "translateMix": 0.473 }, + { "time": 0.6666, "rotateMix": 0.4729, "translateMix": 0.4729 }, { "time": 1.3333 } ] } @@ -237,7 +246,7 @@ { "time": 0 }, { "time": 0.6666, - "vertices": [ 43.09784, 58.11693, 0, 0, 0, 0, -0.653, -57.46399, -50.93396, -47.01593, -43.098, -24.81398, -43.098, -24.81399, -1.0E-5, 1.0E-5, 0, 1.0E-5, 43.09784, 58.11695, 0, 0, 43.09784, 58.11693, 1.0E-5, -1.0E-5, 0, 0, -43.09797, -24.81399, 0, 1.0E-5, 0, 0, 0, 0, 43.09784, 58.11694, 43.09784, 58.11693 ] + "vertices": [ 43.09783, 58.11693, 0, 0, 0, 0, -0.653, -57.46398, -50.93395, -47.01593, -43.098, -24.81398, -43.098, -24.81399, -1.0E-5, 1.0E-5, 0, 1.0E-5, 43.09783, 58.11695, 0, 0, 43.09783, 58.11693, 1.0E-5, -1.0E-5, 0, 0, -43.09797, -24.81399, 0, 1.0E-5, 0, 0, 0, 0, 43.09783, 58.11694, 43.09783, 58.11693 ] }, { "time": 1.3333 } ] @@ -248,16 +257,16 @@ { "time": 0.3333, "offset": 4, - "vertices": [ -9.45232, 83.5133, -3.90008, 44.76635, -3.90008, 44.76635, -3.90008, 44.76635, 0, 0, 0, 0, 0, 0, 0, 0, 5.15667, -29.57763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.90008, 44.76635 ] + "vertices": [ -9.45232, 83.51329, -3.90007, 44.76634, -3.90007, 44.76634, -3.90007, 44.76634, 0, 0, 0, 0, 0, 0, 0, 0, 5.15667, -29.57762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.90007, 44.76634 ] }, { "time": 0.6666 }, { "time": 0.6679, - "vertices": [ -1.21159, -14.52716, -2.76092, -7.75683, -4.30999, -0.98669, 2.38385, 9.78289, -1.56903, 5.49316, -2.93444, 6.75128, -4.30011, 8.00933, -5.66552, 9.2677, -7.031, 10.52575, -3.07855, 14.81561, 4.30986, 0.9859, 5.85907, -5.78436, 7.40826, -12.55462, 5.25317, -13.04797, 3.09832, -13.54083, 0.94323, -14.03411, -0.60595, -7.26379, 1.54907, -6.77056, 3.70422, -6.27746, -2.15495, -0.49346, 0, -3.0E-4, 2.15495, 0.49273, 1.01812, 11.04132, -0.3471, 12.29895, -1.71313, 13.557 ] + "vertices": [ -1.21159, -14.52715, -2.76092, -7.75683, -4.30998, -0.98668, 2.38385, 9.78289, -1.56903, 5.49315, -2.93443, 6.75127, -4.3001, 8.00932, -5.66552, 9.2677, -7.031, 10.52575, -3.07855, 14.8156, 4.30986, 0.98589, 5.85906, -5.78435, 7.40825, -12.55461, 5.25317, -13.04796, 3.09832, -13.54082, 0.94322, -14.03411, -0.60594, -7.26379, 1.54907, -6.77055, 3.70422, -6.27746, -2.15495, -0.49345, 0, -3.0E-4, 2.15495, 0.49272, 1.01812, 11.04131, -0.34709, 12.29895, -1.71312, 13.557 ] }, { "time": 1.3333, - "vertices": [ -10.57342, 25.16797, -9.16716, 14.48486, -7.76074, 3.80212, 131.25482, 21.05285, 128.23181, -0.04534, 121.51611, 0.91668, 114.80023, 1.8789, 108.08459, 2.84124, 101.3689, 3.80316, 104.39154, 24.90191, -21.3623, 2.01171, -22.76855, 12.69433, -24.17505, 23.37719, -20.77471, 23.82476, -17.37414, 24.27276, -13.97393, 24.72009, -12.56768, 14.03753, -15.96789, 13.58978, -19.36809, 13.14215, -11.16095, 3.35455, -14.56134, 2.90704, -17.96167, 2.45922, 124.53894, 22.01538, 117.82336, 22.97705, 111.10718, 23.93933 ] + "vertices": [ -10.57341, 25.16797, -9.16716, 14.48486, -7.76073, 3.80211, 131.25482, 21.05285, 128.23181, -0.04534, 121.51611, 0.91667, 114.80023, 1.8789, 108.08458, 2.84123, 101.36889, 3.80315, 104.39154, 24.90191, -21.3623, 2.0117, -22.76855, 12.69433, -24.17505, 23.37718, -20.7747, 23.82476, -17.37413, 24.27276, -13.97393, 24.72009, -12.56768, 14.03752, -15.96788, 13.58977, -19.36809, 13.14214, -11.16094, 3.35454, -14.56134, 2.90704, -17.96166, 2.45921, 124.53894, 22.01538, 117.82335, 22.97705, 111.10717, 23.93932 ] } ] } diff --git a/spine-corona/data/vine.json b/spine-corona/data/vine.json index 6fc78dc14..f4f48a1a2 100644 --- a/spine-corona/data/vine.json +++ b/spine-corona/data/vine.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "OTxn8PebJnSmjY8665bH7m360tk", "spine": "3.4.02", "width": 227.32, "height": 841.06, "images": "./images/" }, +"skeleton": { + "hash": "Lb8yfqsfTuFiRtjhPw5ZzTEPxik", + "spine": "3.5.03-beta", + "width": 227.32, + "height": 841.06, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "vine1", "parent": "root", "length": 74, "rotation": 90, "x": 339.09, "y": -467.15, "color": "f700ffff" }, @@ -27,6 +34,7 @@ "path": [ { "name": "vine-path", + "order": 0, "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], "target": "vine-path", "rotateMode": "chainScale" @@ -39,7 +47,7 @@ "type": "mesh", "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15384, 1, 0.1923, 1, 0.23076, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38461, 1, 0.42307, 1, 0.46153, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65384, 1, 0.6923, 1, 0.73076, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88461, 1, 0.92307, 1, 0.96153, 1, 1, 0.5, 1, 0, 1, 0, 0.96153, 0, 0.92307, 0, 0.88461, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73076, 0, 0.6923, 0, 0.65384, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46153, 0, 0.42307, 0, 0.38461, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23076, 0, 0.1923, 0, 0.15384, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15384, 0.5, 0.1923, 0.5, 0.23076, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38461, 0.5, 0.42307, 0.5, 0.46153, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65384, 0.5, 0.6923, 0.5, 0.73076, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88461, 0.5, 0.92307, 0.5, 0.96153 ], "triangles": [ 55, 0, 1, 56, 1, 2, 55, 1, 56, 56, 2, 3, 54, 55, 56, 57, 56, 3, 57, 3, 4, 53, 54, 57, 58, 57, 4, 53, 57, 58, 58, 4, 5, 52, 53, 58, 59, 58, 5, 54, 56, 57, 52, 58, 59, 59, 5, 6, 51, 52, 59, 60, 59, 6, 51, 59, 60, 60, 6, 7, 50, 51, 60, 61, 60, 7, 50, 60, 61, 61, 7, 8, 49, 50, 61, 62, 61, 8, 49, 61, 62, 62, 8, 9, 48, 49, 62, 63, 62, 9, 48, 62, 63, 63, 9, 10, 47, 48, 63, 64, 63, 10, 47, 63, 64, 64, 10, 11, 46, 47, 64, 65, 64, 11, 46, 64, 65, 65, 11, 12, 45, 46, 65, 66, 65, 12, 45, 65, 66, 66, 12, 13, 44, 45, 66, 67, 66, 13, 44, 66, 67, 67, 13, 14, 43, 44, 67, 68, 67, 14, 43, 67, 68, 68, 14, 15, 42, 43, 68, 69, 68, 15, 42, 68, 69, 69, 15, 16, 41, 42, 69, 70, 69, 16, 41, 69, 70, 70, 16, 17, 40, 41, 70, 71, 70, 17, 40, 70, 71, 71, 17, 18, 39, 40, 71, 72, 71, 18, 39, 71, 72, 72, 18, 19, 38, 39, 72, 73, 72, 19, 38, 72, 73, 73, 19, 20, 37, 38, 73, 74, 73, 20, 37, 73, 74, 74, 20, 21, 36, 37, 74, 75, 74, 21, 36, 74, 75, 75, 21, 22, 35, 36, 75, 76, 75, 22, 35, 75, 76, 76, 22, 23, 34, 35, 76, 77, 76, 23, 34, 76, 77, 77, 23, 24, 33, 77, 78, 78, 24, 25, 32, 33, 78, 79, 78, 25, 32, 78, 79, 33, 34, 77, 78, 77, 24, 31, 32, 79, 80, 79, 26, 31, 79, 80, 80, 26, 27, 30, 31, 80, 29, 80, 27, 30, 80, 29, 29, 27, 28, 79, 25, 26 ], - "vertices": [ 4, 10, 294, 33.89, 3.2E-4, 11, 220, 33.89, 0.01648, 12, 146, 33.89, 0.21526, 13, 72, 33.89, 0.76791, 3, 11, 220, -0.1, 0.00752, 12, 146, -0.1, 0.16869, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.2E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21526, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00195, 11, 183, -34.09999, 0.04739, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61714, 5, 9, 294, -34.09999, 2.4E-4, 10, 220, -34.09999, 0.01163, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.35531, 5, 9, 257, -34.09999, 0.00195, 10, 183, -34.09999, 0.04663, 11, 109, -34.09999, 0.31166, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.4E-4, 9, 220, -34.09999, 0.01163, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48685, 12, -1.99, -34.09999, 0.31174, 13, -75.99, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00195, 9, 183, -34.09999, 0.04663, 10, 109, -34.09999, 0.31166, 11, 35, -34.09999, 0.48685, 12, -38.99, -34.09999, 0.14101, 13, -112.99, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.4E-4, 8, 220, -34.09999, 0.01163, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48685, 11, -1.99, -34.09999, 0.31166, 12, -75.99, -34.09999, 0.04663, 13, -149.99, -34.09999, 0.00195, 7, 7, 257, -34.09999, 0.00195, 8, 183, -34.09999, 0.04663, 9, 109, -34.09999, 0.31166, 10, 35, -34.09999, 0.48685, 11, -38.99, -34.09999, 0.14101, 12, -112.99, -34.09999, 0.01163, 13, -186.99, -34.09999, 2.4E-4, 7, 6, 294, -34.09999, 2.4E-4, 7, 220, -34.09999, 0.01163, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48685, 10, -1.99, -34.09999, 0.31166, 11, -75.99, -34.09999, 0.04663, 12, -149.99, -34.09999, 0.00195, 7, 6, 257, -34.09999, 0.00195, 7, 183, -34.09999, 0.04663, 8, 109, -34.09999, 0.31166, 9, 35, -34.09999, 0.48685, 10, -38.99, -34.09999, 0.14101, 11, -112.99, -34.09999, 0.01163, 12, -186.99, -34.09999, 2.4E-4, 7, 5, 294, -34.09999, 2.4E-4, 6, 220, -34.09999, 0.01163, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48685, 9, -1.99, -34.09999, 0.31166, 10, -75.99, -34.09999, 0.04663, 11, -149.99, -34.09999, 0.00195, 7, 5, 257, -34.09999, 0.00195, 6, 183, -34.09999, 0.04663, 7, 109, -34.09999, 0.31166, 8, 35, -34.09999, 0.48685, 9, -38.99, -34.09999, 0.14101, 10, -112.99, -34.09999, 0.01163, 11, -186.99, -34.09999, 2.4E-4, 7, 4, 294, -34.09999, 2.4E-4, 5, 220, -34.09999, 0.01163, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48685, 8, -1.99, -34.09999, 0.31166, 9, -75.99, -34.09999, 0.04663, 10, -149.99, -34.09999, 0.00195, 7, 4, 257, -34.09999, 0.00195, 5, 183, -34.09999, 0.04663, 6, 109, -34.09999, 0.31166, 7, 35, -34.09999, 0.48685, 8, -38.99, -34.09999, 0.14101, 9, -112.99, -34.09999, 0.01163, 10, -186.99, -34.09999, 2.4E-4, 7, 3, 294, -34.09999, 2.4E-4, 4, 220, -34.09999, 0.01163, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48685, 7, -1.99, -34.09999, 0.31166, 8, -75.99, -34.09999, 0.04663, 9, -149.99, -34.09999, 0.00195, 7, 3, 257, -34.09999, 0.00195, 4, 183, -34.09999, 0.04663, 5, 109, -34.09999, 0.31166, 6, 35, -34.09999, 0.48685, 7, -38.99, -34.09999, 0.14101, 8, -112.99, -34.09999, 0.01163, 9, -186.99, -34.09999, 2.4E-4, 7, 2, 294, -34.09999, 2.4E-4, 3, 220, -34.09999, 0.01163, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48685, 6, -1.99, -34.09999, 0.31166, 7, -75.99, -34.09999, 0.04663, 8, -149.99, -34.09999, 0.00195, 7, 2, 257, -34.09999, 0.00195, 3, 183, -34.09999, 0.04663, 4, 109, -34.09999, 0.31166, 5, 35, -34.09999, 0.48685, 6, -38.99, -34.09999, 0.14101, 7, -112.99, -34.09999, 0.01163, 8, -186.99, -34.09999, 2.4E-4, 7, 1, 294, -34.09999, 2.4E-4, 2, 220, -34.09999, 0.01163, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48685, 5, -1.99, -34.09999, 0.31166, 6, -75.99, -34.09999, 0.04663, 7, -149.99, -34.09999, 0.00195, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31166, 4, 35, -34.09999, 0.48685, 5, -38.99, -34.09999, 0.14101, 6, -112.99, -34.09999, 0.01163, 7, -186.99, -34.09999, 2.4E-4, 6, 1, 220, -34.09999, 0.01033, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48685, 4, -1.99, -34.09999, 0.31166, 5, -75.99, -34.09999, 0.04663, 6, -149.99, -34.09999, 0.00195, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48685, 4, -38.99, -34.09999, 0.14101, 5, -112.99, -34.09999, 0.01163, 6, -186.99, -34.09999, 2.4E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51233, 3, -1.99, -34.09999, 0.31166, 4, -75.99, -34.09999, 0.04663, 5, -149.99, -34.09999, 0.00195, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54594, 3, -38.99, -34.09999, 0.14101, 4, -112.99, -34.09999, 0.01163, 5, -186.99, -34.09999, 2.4E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39738, 3, -75.99, -34.09999, 0.04663, 4, -149.99, -34.09999, 0.00195, 4, 1, 35, -34.09999, 0.77978, 2, -38.99, -34.09999, 0.20825, 3, -112.99, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.4E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.99, -34.09999, 0.10696, 3, -149.99, -34.09999, 0.00271, 3, 1, -1.99, -0.1, 0.9264, 2, -75.99, -0.1, 0.07272, 3, -149.99, -0.1, 8.6E-4, 3, 1, -1.99, 33.89, 0.89032, 2, -75.99, 33.89, 0.10696, 3, -149.99, 33.89, 0.00271, 4, 1, 35, 33.89, 0.77978, 2, -38.99, 33.89, 0.20825, 3, -112.99, 33.89, 0.01171, 4, -186.99, 33.89, 2.4E-4, 4, 1, 72, 33.89, 0.55403, 2, -1.99, 33.89, 0.39738, 3, -75.99, 33.89, 0.04663, 4, -149.99, 33.89, 0.00195, 5, 1, 109, 33.89, 0.30116, 2, 35, 33.89, 0.54594, 3, -38.99, 33.89, 0.14101, 4, -112.99, 33.89, 0.01163, 5, -186.99, 33.89, 2.4E-4, 5, 1, 146, 33.89, 0.1274, 2, 72, 33.89, 0.51233, 3, -1.99, 33.89, 0.31166, 4, -75.99, 33.89, 0.04663, 5, -149.99, 33.89, 0.00195, 6, 1, 183, 33.89, 0.04058, 2, 109, 33.89, 0.31966, 3, 35, 33.89, 0.48685, 4, -38.99, 33.89, 0.14101, 5, -112.99, 33.89, 0.01163, 6, -186.99, 33.89, 2.4E-4, 6, 1, 220, 33.89, 0.01033, 2, 146, 33.89, 0.14256, 3, 72, 33.89, 0.48685, 4, -1.99, 33.89, 0.31166, 5, -75.99, 33.89, 0.04663, 6, -149.99, 33.89, 0.00195, 7, 1, 257, 33.89, 0.0017, 2, 183, 33.89, 0.04687, 3, 109, 33.89, 0.31166, 4, 35, 33.89, 0.48685, 5, -38.99, 33.89, 0.14101, 6, -112.99, 33.89, 0.01163, 7, -186.99, 33.89, 2.4E-4, 7, 1, 294, 33.89, 2.4E-4, 2, 220, 33.89, 0.01163, 3, 146, 33.89, 0.14101, 4, 72, 33.89, 0.48685, 5, -1.99, 33.89, 0.31166, 6, -75.99, 33.89, 0.04663, 7, -149.99, 33.89, 0.00195, 7, 2, 257, 33.89, 0.00195, 3, 183, 33.89, 0.04663, 4, 109, 33.89, 0.31166, 5, 35, 33.89, 0.48685, 6, -38.99, 33.89, 0.14101, 7, -112.99, 33.89, 0.01163, 8, -186.99, 33.89, 2.4E-4, 7, 2, 294, 33.89, 2.4E-4, 3, 220, 33.89, 0.01163, 4, 146, 33.89, 0.14101, 5, 72, 33.89, 0.48685, 6, -1.99, 33.89, 0.31166, 7, -75.99, 33.89, 0.04663, 8, -149.99, 33.89, 0.00195, 7, 3, 257, 33.89, 0.00195, 4, 183, 33.89, 0.04663, 5, 109, 33.89, 0.31166, 6, 35, 33.89, 0.48685, 7, -38.99, 33.89, 0.14101, 8, -112.99, 33.89, 0.01163, 9, -186.99, 33.89, 2.4E-4, 7, 3, 294, 33.89, 2.4E-4, 4, 220, 33.89, 0.01163, 5, 146, 33.89, 0.14101, 6, 72, 33.89, 0.48685, 7, -1.99, 33.89, 0.31166, 8, -75.99, 33.89, 0.04663, 9, -149.99, 33.89, 0.00195, 7, 4, 257, 33.89, 0.00195, 5, 183, 33.89, 0.04663, 6, 109, 33.89, 0.31166, 7, 35, 33.89, 0.48685, 8, -38.99, 33.89, 0.14101, 9, -112.99, 33.89, 0.01163, 10, -186.99, 33.89, 2.4E-4, 7, 4, 294, 33.89, 2.4E-4, 5, 220, 33.89, 0.01163, 6, 146, 33.89, 0.14101, 7, 72, 33.89, 0.48685, 8, -1.99, 33.89, 0.31166, 9, -75.99, 33.89, 0.04663, 10, -149.99, 33.89, 0.00195, 7, 5, 257, 33.89, 0.00195, 6, 183, 33.89, 0.04663, 7, 109, 33.89, 0.31166, 8, 35, 33.89, 0.48685, 9, -38.99, 33.89, 0.14101, 10, -112.99, 33.89, 0.01163, 11, -186.99, 33.89, 2.4E-4, 7, 5, 294, 33.89, 2.4E-4, 6, 220, 33.89, 0.01163, 7, 146, 33.89, 0.14101, 8, 72, 33.89, 0.48685, 9, -1.99, 33.89, 0.31166, 10, -75.99, 33.89, 0.04663, 11, -149.99, 33.89, 0.00195, 7, 6, 257, 33.89, 0.00195, 7, 183, 33.89, 0.04663, 8, 109, 33.89, 0.31166, 9, 35, 33.89, 0.48685, 10, -38.99, 33.89, 0.14101, 11, -112.99, 33.89, 0.01163, 12, -186.99, 33.89, 2.4E-4, 7, 6, 294, 33.89, 2.4E-4, 7, 220, 33.89, 0.01163, 8, 146, 33.89, 0.14101, 9, 72, 33.89, 0.48685, 10, -1.99, 33.89, 0.31166, 11, -75.99, 33.89, 0.04663, 12, -149.99, 33.89, 0.00195, 7, 7, 257, 33.89, 0.00195, 8, 183, 33.89, 0.04663, 9, 109, 33.89, 0.31166, 10, 35, 33.89, 0.48685, 11, -38.99, 33.89, 0.14101, 12, -112.99, 33.89, 0.01163, 13, -186.99, 33.89, 2.4E-4, 7, 7, 294, 33.89, 2.4E-4, 8, 220, 33.89, 0.01163, 9, 146, 33.89, 0.14101, 10, 72, 33.89, 0.48685, 11, -1.99, 33.89, 0.31166, 12, -75.99, 33.89, 0.04663, 13, -149.99, 33.89, 0.00195, 6, 8, 257, 33.89, 0.00195, 9, 183, 33.89, 0.04663, 10, 109, 33.89, 0.31166, 11, 35, 33.89, 0.48685, 12, -38.99, 33.89, 0.14101, 13, -112.99, 33.89, 0.01188, 6, 8, 294, 33.89, 2.4E-4, 9, 220, 33.89, 0.01163, 10, 146, 33.89, 0.14101, 11, 72, 33.89, 0.48685, 12, -1.99, 33.89, 0.31174, 13, -75.99, 33.89, 0.0485, 5, 9, 257, 33.89, 0.00195, 10, 183, 33.89, 0.04663, 11, 109, 33.89, 0.31166, 12, 35, 33.89, 0.48761, 13, -38.99, 33.89, 0.15212, 5, 9, 294, 33.89, 2.4E-4, 10, 220, 33.89, 0.01163, 11, 146, 33.89, 0.14109, 12, 72, 33.89, 0.49171, 13, -1.99, 33.89, 0.35531, 4, 10, 257, 33.89, 0.00195, 11, 183, 33.89, 0.04739, 12, 109, 33.89, 0.33351, 13, 35, 33.89, 0.61714, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31658, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00542, 11, 146, -0.1, 0.11402, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33273, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03045, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00542, 10, 146, -0.1, 0.11402, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.99, -0.1, 0.0311, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03045, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11402, 13, -112.99, -0.1, 0.00542, 6, 8, 220, -0.1, 0.00542, 9, 146, -0.1, 0.11402, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.99, -0.1, 0.03045, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03045, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11402, 12, -112.99, -0.1, 0.00542, 6, 7, 220, -0.1, 0.00542, 8, 146, -0.1, 0.11402, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.99, -0.1, 0.03045, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03045, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11402, 11, -112.99, -0.1, 0.00542, 6, 6, 220, -0.1, 0.00542, 7, 146, -0.1, 0.11402, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.99, -0.1, 0.03045, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03045, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11402, 10, -112.99, -0.1, 0.00542, 6, 5, 220, -0.1, 0.00542, 6, 146, -0.1, 0.11402, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.99, -0.1, 0.03045, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03045, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11402, 9, -112.99, -0.1, 0.00542, 6, 4, 220, -0.1, 0.00542, 5, 146, -0.1, 0.11402, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.99, -0.1, 0.03045, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03045, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11402, 8, -112.99, -0.1, 0.00542, 6, 3, 220, -0.1, 0.00542, 4, 146, -0.1, 0.11402, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.99, -0.1, 0.03045, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03045, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11402, 7, -112.99, -0.1, 0.00542, 6, 2, 220, -0.1, 0.00542, 3, 146, -0.1, 0.11402, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.99, -0.1, 0.03045, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03045, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11402, 6, -112.99, -0.1, 0.00542, 6, 1, 220, -0.1, 0.00477, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.99, -0.1, 0.03045, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11402, 5, -112.99, -0.1, 0.00542, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.99, -0.1, 0.03045, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11402, 4, -112.99, -0.1, 0.00542, 4, 1, 72, -0.1, 0.55929, 2, -1.99, -0.1, 0.40959, 3, -75.99, -0.1, 0.03045, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81845, 2, -38.99, -0.1, 0.17611, 3, -112.99, -0.1, 0.00542 ], + "vertices": [ 4, 10, 294, 33.88999, 3.1E-4, 11, 220, 33.88999, 0.01648, 12, 146, 33.88999, 0.21525, 13, 72, 33.88999, 0.76791, 3, 11, 220, -0.1, 0.00751, 12, 146, -0.1, 0.16868, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.1E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21525, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00194, 11, 183, -34.09999, 0.04738, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61713, 5, 9, 294, -34.09999, 2.3E-4, 10, 220, -34.09999, 0.01162, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.3553, 5, 9, 257, -34.09999, 0.00194, 10, 183, -34.09999, 0.04662, 11, 109, -34.09999, 0.31165, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.3E-4, 9, 220, -34.09999, 0.01162, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48684, 12, -1.99, -34.09999, 0.31174, 13, -75.98999, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00194, 9, 183, -34.09999, 0.04662, 10, 109, -34.09999, 0.31165, 11, 35, -34.09999, 0.48684, 12, -38.99, -34.09999, 0.14101, 13, -112.98999, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.3E-4, 8, 220, -34.09999, 0.01162, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48684, 11, -1.99, -34.09999, 0.31165, 12, -75.98999, -34.09999, 0.04662, 13, -149.99, -34.09999, 0.00194, 7, 7, 257, -34.09999, 0.00194, 8, 183, -34.09999, 0.04662, 9, 109, -34.09999, 0.31165, 10, 35, -34.09999, 0.48684, 11, -38.99, -34.09999, 0.14101, 12, -112.98999, -34.09999, 0.01162, 13, -186.99, -34.09999, 2.3E-4, 7, 6, 294, -34.09999, 2.3E-4, 7, 220, -34.09999, 0.01162, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48684, 10, -1.99, -34.09999, 0.31165, 11, -75.98999, -34.09999, 0.04662, 12, -149.99, -34.09999, 0.00194, 7, 6, 257, -34.09999, 0.00194, 7, 183, -34.09999, 0.04662, 8, 109, -34.09999, 0.31165, 9, 35, -34.09999, 0.48684, 10, -38.99, -34.09999, 0.14101, 11, -112.98999, -34.09999, 0.01162, 12, -186.99, -34.09999, 2.3E-4, 7, 5, 294, -34.09999, 2.3E-4, 6, 220, -34.09999, 0.01162, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48684, 9, -1.99, -34.09999, 0.31165, 10, -75.98999, -34.09999, 0.04662, 11, -149.99, -34.09999, 0.00194, 7, 5, 257, -34.09999, 0.00194, 6, 183, -34.09999, 0.04662, 7, 109, -34.09999, 0.31165, 8, 35, -34.09999, 0.48684, 9, -38.99, -34.09999, 0.14101, 10, -112.98999, -34.09999, 0.01162, 11, -186.99, -34.09999, 2.3E-4, 7, 4, 294, -34.09999, 2.3E-4, 5, 220, -34.09999, 0.01162, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48684, 8, -1.99, -34.09999, 0.31165, 9, -75.98999, -34.09999, 0.04662, 10, -149.99, -34.09999, 0.00194, 7, 4, 257, -34.09999, 0.00194, 5, 183, -34.09999, 0.04662, 6, 109, -34.09999, 0.31165, 7, 35, -34.09999, 0.48684, 8, -38.99, -34.09999, 0.14101, 9, -112.98999, -34.09999, 0.01162, 10, -186.99, -34.09999, 2.3E-4, 7, 3, 294, -34.09999, 2.3E-4, 4, 220, -34.09999, 0.01162, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48684, 7, -1.99, -34.09999, 0.31165, 8, -75.98999, -34.09999, 0.04662, 9, -149.99, -34.09999, 0.00194, 7, 3, 257, -34.09999, 0.00194, 4, 183, -34.09999, 0.04662, 5, 109, -34.09999, 0.31165, 6, 35, -34.09999, 0.48684, 7, -38.99, -34.09999, 0.14101, 8, -112.98999, -34.09999, 0.01162, 9, -186.99, -34.09999, 2.3E-4, 7, 2, 294, -34.09999, 2.3E-4, 3, 220, -34.09999, 0.01162, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48684, 6, -1.99, -34.09999, 0.31165, 7, -75.98999, -34.09999, 0.04662, 8, -149.99, -34.09999, 0.00194, 7, 2, 257, -34.09999, 0.00194, 3, 183, -34.09999, 0.04662, 4, 109, -34.09999, 0.31165, 5, 35, -34.09999, 0.48684, 6, -38.99, -34.09999, 0.14101, 7, -112.98999, -34.09999, 0.01162, 8, -186.99, -34.09999, 2.3E-4, 7, 1, 294, -34.09999, 2.3E-4, 2, 220, -34.09999, 0.01162, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48684, 5, -1.99, -34.09999, 0.31165, 6, -75.98999, -34.09999, 0.04662, 7, -149.99, -34.09999, 0.00194, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31165, 4, 35, -34.09999, 0.48684, 5, -38.99, -34.09999, 0.14101, 6, -112.98999, -34.09999, 0.01162, 7, -186.99, -34.09999, 2.3E-4, 6, 1, 220, -34.09999, 0.01032, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48684, 4, -1.99, -34.09999, 0.31165, 5, -75.98999, -34.09999, 0.04662, 6, -149.99, -34.09999, 0.00194, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48684, 4, -38.99, -34.09999, 0.14101, 5, -112.98999, -34.09999, 0.01162, 6, -186.99, -34.09999, 2.3E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51232, 3, -1.99, -34.09999, 0.31165, 4, -75.98999, -34.09999, 0.04662, 5, -149.99, -34.09999, 0.00194, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54593, 3, -38.99, -34.09999, 0.14101, 4, -112.98999, -34.09999, 0.01162, 5, -186.99, -34.09999, 2.3E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39737, 3, -75.98999, -34.09999, 0.04662, 4, -149.99, -34.09999, 0.00194, 4, 1, 35, -34.09999, 0.77977, 2, -38.99, -34.09999, 0.20825, 3, -112.98999, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.3E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.98999, -34.09999, 0.10695, 3, -149.99, -34.09999, 0.0027, 3, 1, -1.99, -0.1, 0.9264, 2, -75.98999, -0.1, 0.07271, 3, -149.99, -0.1, 8.5E-4, 3, 1, -1.99, 33.88999, 0.89032, 2, -75.98999, 33.88999, 0.10695, 3, -149.99, 33.88999, 0.0027, 4, 1, 35, 33.88999, 0.77977, 2, -38.99, 33.88999, 0.20825, 3, -112.98999, 33.88999, 0.01171, 4, -186.99, 33.88999, 2.3E-4, 4, 1, 72, 33.88999, 0.55403, 2, -1.99, 33.88999, 0.39737, 3, -75.98999, 33.88999, 0.04662, 4, -149.99, 33.88999, 0.00194, 5, 1, 109, 33.88999, 0.30116, 2, 35, 33.88999, 0.54593, 3, -38.99, 33.88999, 0.14101, 4, -112.98999, 33.88999, 0.01162, 5, -186.99, 33.88999, 2.3E-4, 5, 1, 146, 33.88999, 0.1274, 2, 72, 33.88999, 0.51232, 3, -1.99, 33.88999, 0.31165, 4, -75.98999, 33.88999, 0.04662, 5, -149.99, 33.88999, 0.00194, 6, 1, 183, 33.88999, 0.04058, 2, 109, 33.88999, 0.31966, 3, 35, 33.88999, 0.48684, 4, -38.99, 33.88999, 0.14101, 5, -112.98999, 33.88999, 0.01162, 6, -186.99, 33.88999, 2.3E-4, 6, 1, 220, 33.88999, 0.01032, 2, 146, 33.88999, 0.14256, 3, 72, 33.88999, 0.48684, 4, -1.99, 33.88999, 0.31165, 5, -75.98999, 33.88999, 0.04662, 6, -149.99, 33.88999, 0.00194, 7, 1, 257, 33.88999, 0.0017, 2, 183, 33.88999, 0.04687, 3, 109, 33.88999, 0.31165, 4, 35, 33.88999, 0.48684, 5, -38.99, 33.88999, 0.14101, 6, -112.98999, 33.88999, 0.01162, 7, -186.99, 33.88999, 2.3E-4, 7, 1, 294, 33.88999, 2.3E-4, 2, 220, 33.88999, 0.01162, 3, 146, 33.88999, 0.14101, 4, 72, 33.88999, 0.48684, 5, -1.99, 33.88999, 0.31165, 6, -75.98999, 33.88999, 0.04662, 7, -149.99, 33.88999, 0.00194, 7, 2, 257, 33.88999, 0.00194, 3, 183, 33.88999, 0.04662, 4, 109, 33.88999, 0.31165, 5, 35, 33.88999, 0.48684, 6, -38.99, 33.88999, 0.14101, 7, -112.98999, 33.88999, 0.01162, 8, -186.99, 33.88999, 2.3E-4, 7, 2, 294, 33.88999, 2.3E-4, 3, 220, 33.88999, 0.01162, 4, 146, 33.88999, 0.14101, 5, 72, 33.88999, 0.48684, 6, -1.99, 33.88999, 0.31165, 7, -75.98999, 33.88999, 0.04662, 8, -149.99, 33.88999, 0.00194, 7, 3, 257, 33.88999, 0.00194, 4, 183, 33.88999, 0.04662, 5, 109, 33.88999, 0.31165, 6, 35, 33.88999, 0.48684, 7, -38.99, 33.88999, 0.14101, 8, -112.98999, 33.88999, 0.01162, 9, -186.99, 33.88999, 2.3E-4, 7, 3, 294, 33.88999, 2.3E-4, 4, 220, 33.88999, 0.01162, 5, 146, 33.88999, 0.14101, 6, 72, 33.88999, 0.48684, 7, -1.99, 33.88999, 0.31165, 8, -75.98999, 33.88999, 0.04662, 9, -149.99, 33.88999, 0.00194, 7, 4, 257, 33.88999, 0.00194, 5, 183, 33.88999, 0.04662, 6, 109, 33.88999, 0.31165, 7, 35, 33.88999, 0.48684, 8, -38.99, 33.88999, 0.14101, 9, -112.98999, 33.88999, 0.01162, 10, -186.99, 33.88999, 2.3E-4, 7, 4, 294, 33.88999, 2.3E-4, 5, 220, 33.88999, 0.01162, 6, 146, 33.88999, 0.14101, 7, 72, 33.88999, 0.48684, 8, -1.99, 33.88999, 0.31165, 9, -75.98999, 33.88999, 0.04662, 10, -149.99, 33.88999, 0.00194, 7, 5, 257, 33.88999, 0.00194, 6, 183, 33.88999, 0.04662, 7, 109, 33.88999, 0.31165, 8, 35, 33.88999, 0.48684, 9, -38.99, 33.88999, 0.14101, 10, -112.98999, 33.88999, 0.01162, 11, -186.99, 33.88999, 2.3E-4, 7, 5, 294, 33.88999, 2.3E-4, 6, 220, 33.88999, 0.01162, 7, 146, 33.88999, 0.14101, 8, 72, 33.88999, 0.48684, 9, -1.99, 33.88999, 0.31165, 10, -75.98999, 33.88999, 0.04662, 11, -149.99, 33.88999, 0.00194, 7, 6, 257, 33.88999, 0.00194, 7, 183, 33.88999, 0.04662, 8, 109, 33.88999, 0.31165, 9, 35, 33.88999, 0.48684, 10, -38.99, 33.88999, 0.14101, 11, -112.98999, 33.88999, 0.01162, 12, -186.99, 33.88999, 2.3E-4, 7, 6, 294, 33.88999, 2.3E-4, 7, 220, 33.88999, 0.01162, 8, 146, 33.88999, 0.14101, 9, 72, 33.88999, 0.48684, 10, -1.99, 33.88999, 0.31165, 11, -75.98999, 33.88999, 0.04662, 12, -149.99, 33.88999, 0.00194, 7, 7, 257, 33.88999, 0.00194, 8, 183, 33.88999, 0.04662, 9, 109, 33.88999, 0.31165, 10, 35, 33.88999, 0.48684, 11, -38.99, 33.88999, 0.14101, 12, -112.98999, 33.88999, 0.01162, 13, -186.99, 33.88999, 2.3E-4, 7, 7, 294, 33.88999, 2.3E-4, 8, 220, 33.88999, 0.01162, 9, 146, 33.88999, 0.14101, 10, 72, 33.88999, 0.48684, 11, -1.99, 33.88999, 0.31165, 12, -75.98999, 33.88999, 0.04662, 13, -149.99, 33.88999, 0.00194, 6, 8, 257, 33.88999, 0.00194, 9, 183, 33.88999, 0.04662, 10, 109, 33.88999, 0.31165, 11, 35, 33.88999, 0.48684, 12, -38.99, 33.88999, 0.14101, 13, -112.98999, 33.88999, 0.01188, 6, 8, 294, 33.88999, 2.3E-4, 9, 220, 33.88999, 0.01162, 10, 146, 33.88999, 0.14101, 11, 72, 33.88999, 0.48684, 12, -1.99, 33.88999, 0.31174, 13, -75.98999, 33.88999, 0.0485, 5, 9, 257, 33.88999, 0.00194, 10, 183, 33.88999, 0.04662, 11, 109, 33.88999, 0.31165, 12, 35, 33.88999, 0.48761, 13, -38.99, 33.88999, 0.15212, 5, 9, 294, 33.88999, 2.3E-4, 10, 220, 33.88999, 0.01162, 11, 146, 33.88999, 0.14109, 12, 72, 33.88999, 0.49171, 13, -1.99, 33.88999, 0.3553, 4, 10, 257, 33.88999, 0.00194, 11, 183, 33.88999, 0.04738, 12, 109, 33.88999, 0.33351, 13, 35, 33.88999, 0.61713, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31657, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00541, 11, 146, -0.1, 0.11401, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33272, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03044, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00541, 10, 146, -0.1, 0.11401, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.98999, -0.1, 0.03109, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03044, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11401, 13, -112.98999, -0.1, 0.00541, 6, 8, 220, -0.1, 0.00541, 9, 146, -0.1, 0.11401, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.98999, -0.1, 0.03044, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03044, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11401, 12, -112.98999, -0.1, 0.00541, 6, 7, 220, -0.1, 0.00541, 8, 146, -0.1, 0.11401, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.98999, -0.1, 0.03044, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03044, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11401, 11, -112.98999, -0.1, 0.00541, 6, 6, 220, -0.1, 0.00541, 7, 146, -0.1, 0.11401, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.98999, -0.1, 0.03044, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03044, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11401, 10, -112.98999, -0.1, 0.00541, 6, 5, 220, -0.1, 0.00541, 6, 146, -0.1, 0.11401, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.98999, -0.1, 0.03044, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03044, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11401, 9, -112.98999, -0.1, 0.00541, 6, 4, 220, -0.1, 0.00541, 5, 146, -0.1, 0.11401, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.98999, -0.1, 0.03044, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03044, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11401, 8, -112.98999, -0.1, 0.00541, 6, 3, 220, -0.1, 0.00541, 4, 146, -0.1, 0.11401, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.98999, -0.1, 0.03044, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03044, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11401, 7, -112.98999, -0.1, 0.00541, 6, 2, 220, -0.1, 0.00541, 3, 146, -0.1, 0.11401, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.98999, -0.1, 0.03044, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03044, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11401, 6, -112.98999, -0.1, 0.00541, 6, 1, 220, -0.1, 0.00476, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.98999, -0.1, 0.03044, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11401, 5, -112.98999, -0.1, 0.00541, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.98999, -0.1, 0.03044, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11401, 4, -112.98999, -0.1, 0.00541, 4, 1, 72, -0.1, 0.55928, 2, -1.99, -0.1, 0.40959, 3, -75.98999, -0.1, 0.03044, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81844, 2, -38.99, -0.1, 0.1761, 3, -112.98999, -0.1, 0.00541 ], "hull": 56, "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], "width": 68, @@ -51,7 +59,7 @@ "type": "path", "lengths": [ 223.68, 474.79, 780.31, 992.69, 1196.43, 2277.75 ], "vertexCount": 18, - "vertices": [ 1, 14, -31.64, 22.49, 1, 1, 14, -2.73, -6.56, 1, 1, 14, 56.89, -69, 1, 1, 14, 115.57, 75.01, 1, 1, 14, 198.6, 53.37, 1, 2, 14, 332.76, 19.74, 0.8, 15, 36.41, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.232, 15, -21.1, -68.01999, 0.76799, 1, 15, 96.09, -93.88, 1, 2, 15, 229.75, -122.63, 0.664, 16, -63.18, -122.45, 0.33599, 2, 15, 242.53, 29.31, 0.52, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.42, 47.85, 0.80799, 17, -63.65, 48.41, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.56, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.81, 6.41, 0.784, 1, 17, 138.78, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.02, 1 ] + "vertices": [ 1, 14, -31.63999, 22.48999, 1, 1, 14, -2.73, -6.55999, 1, 1, 14, 56.88999, -69, 1, 1, 14, 115.56999, 75.01, 1, 1, 14, 198.6, 53.36999, 1, 2, 14, 332.76, 19.73999, 0.8, 15, 36.40999, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.23199, 15, -21.1, -68.01999, 0.76798, 1, 15, 96.08999, -93.87999, 1, 2, 15, 229.75, -122.62999, 0.66399, 16, -63.18, -122.44999, 0.33599, 2, 15, 242.52998, 29.30999, 0.51999, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.41998, 47.84999, 0.80799, 17, -63.65, 48.40999, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.55999, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.80999, 6.40999, 0.78399, 1, 17, 138.77998, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.01999, 1 ] } } } @@ -110,7 +118,7 @@ "angle": 5.65, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": 1.35 } + { "time": 7.5999, "angle": 1.35 } ], "scale": [ { @@ -126,7 +134,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.568, 0.99 ] @@ -151,7 +159,7 @@ "angle": -8.18, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.96 } + { "time": 7.5999, "angle": -0.96 } ], "scale": [ { @@ -167,7 +175,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -197,7 +205,7 @@ "angle": -15.24, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.16 } + { "time": 7.5999, "angle": -0.16 } ], "scale": [ { @@ -213,7 +221,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -243,7 +251,7 @@ "angle": 15.02, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.5 } + { "time": 7.5999, "angle": -0.5 } ], "scale": [ { @@ -259,7 +267,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] diff --git a/spine-corona/main.lua b/spine-corona/main.lua index 819b3f57c..5477f1853 100644 --- a/spine-corona/main.lua +++ b/spine-corona/main.lua @@ -32,8 +32,8 @@ function loadSkeleton(atlasFile, jsonFile, x, y, scale, animation, skin) -- create an animation state object to apply animations to the skeleton local animationStateData = spine.AnimationStateData.new(skeletonData) + animationStateData.defaultMix = 0.2 local animationState = spine.AnimationState.new(animationStateData) - animationState:setAnimationByName(0, animation, true) -- set the skeleton invisible skeleton.group.isVisible = false @@ -42,18 +42,26 @@ function loadSkeleton(atlasFile, jsonFile, x, y, scale, animation, skin) skeleton.group.name = jsonFile -- set some event callbacks - animationState.onStart = function (trackIndex) - print(trackIndex.." start: "..animationState:getCurrent(trackIndex).animation.name) + animationState.onStart = function (entry) + print(entry.trackIndex.." start: "..entry.animation.name) end - animationState.onEnd = function (trackIndex) - print(trackIndex.." end: "..animationState:getCurrent(trackIndex).animation.name) + animationState.onInterrupt = function (entry) + print(entry.trackIndex.." interrupt: "..entry.animation.name) end - animationState.onComplete = function (trackIndex, loopCount) - print(trackIndex.." complete: "..animationState:getCurrent(trackIndex).animation.name..", "..loopCount) + animationState.onEnd = function (entry) + print(entry.trackIndex.." end: "..entry.animation.name) end - animationState.onEvent = function (trackIndex, event) - print(trackIndex.." event: "..animationState:getCurrent(trackIndex).animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'") + animationState.onComplete = function (entry) + print(entry.trackIndex.." complete: "..entry.animation.name) end + animationState.onDispose = function (entry) + print(entry.trackIndex.." dispose: "..entry.animation.name) + end + animationState.onEvent = function (entry, event) + print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'") + end + + animationState:setAnimationByName(0, animation, true) -- return the skeleton an animation state return { skeleton = skeleton, state = animationState } @@ -85,6 +93,15 @@ Runtime:addEventListener("enterFrame", function (event) -- print(skeleton.batches) end) +Runtime:addEventListener("key", function(event) + if activeSkeleton == 2 and event.phase == "down" then + state = skeletons[activeSkeleton].state + state:setAnimationByName(0, "Jump", false) + state:addAnimationByName(0, "walk", true, 0) + end + return false +end) + Runtime:addEventListener("tap", function(event) skeletons[activeSkeleton].skeleton.group.isVisible = false activeSkeleton = activeSkeleton + 1 diff --git a/spine-csharp/README.md b/spine-csharp/README.md index 3e72b28b8..a9de99082 100644 --- a/spine-csharp/README.md +++ b/spine-csharp/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-csharp works with data exported from Spine 3.4.02. +spine-csharp works with data exported from Spine 3.5.x. spine-csharp supports all Spine features. diff --git a/spine-csharp/spine-csharp.csproj b/spine-csharp/spine-csharp.csproj index b4916ee9b..ae5b583b9 100644 --- a/spine-csharp/spine-csharp.csproj +++ b/spine-csharp/spine-csharp.csproj @@ -53,18 +53,10 @@ - - Code - - - Code - - - Code - - - Code - + + + + @@ -74,69 +66,30 @@ - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - + + + + + + + + + + - - Code - + - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - + + + + + + + + + + diff --git a/spine-csharp/src/Animation.cs b/spine-csharp/src/Animation.cs index 80b9630a7..2b94995bd 100644 --- a/spine-csharp/src/Animation.cs +++ b/spine-csharp/src/Animation.cs @@ -49,10 +49,17 @@ namespace Spine { this.duration = duration; } - ///

Poses the skeleton at the specified time for this animation. + /// Applies all the animation's timelines to the specified skeleton. + /// The skeleton to be posed. /// The last time the animation was applied. + /// The point in time in the animation to apply to the skeleton. + /// If true, time wraps within the animation duration. /// Any triggered events are added. May be null. - public void Apply (Skeleton skeleton, float lastTime, float time, bool loop, ExposedList events) { + /// The percentage between this animation's pose and the current pose. + /// If true, the animation is mixed with the setup pose, else it is mixed with the current pose. Passing true when alpha is 1 is slightly more efficient. + /// True when mixing over time toward the setup or current pose, false when mixing toward the keyed pose. Irrelevant when alpha is 1. + /// + public void Apply (Skeleton skeleton, float lastTime, float time, bool loop, ExposedList events, float alpha, bool setupPose, bool mixingOut) { if (skeleton == null) throw new ArgumentNullException("skeleton", "skeleton cannot be null."); if (loop && duration != 0) { @@ -62,28 +69,11 @@ namespace Spine { ExposedList timelines = this.timelines; for (int i = 0, n = timelines.Count; i < n; i++) - timelines.Items[i].Apply(skeleton, lastTime, time, events, 1); - } - - /// Poses the skeleton at the specified time for this animation mixed with the current pose. - /// The last time the animation was applied. - /// Any triggered events are added. May be null. - /// The amount of this animation that affects the current pose. - public void Mix (Skeleton skeleton, float lastTime, float time, bool loop, ExposedList events, float alpha) { - if (skeleton == null) throw new ArgumentNullException("skeleton", "skeleton cannot be null."); - - if (loop && duration != 0) { - time %= duration; - if (lastTime > 0) lastTime %= duration; - } - - ExposedList timelines = this.timelines; - for (int i = 0, n = timelines.Count; i < n; i++) - timelines.Items[i].Apply(skeleton, lastTime, time, events, alpha); + timelines.Items[i].Apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); } /// After the first and before the last entry. - internal static int binarySearch (float[] values, float target, int step) { + internal static int BinarySearch (float[] values, float target, int step) { int low = 0; int high = values.Length / step - 2; if (high == 0) return step; @@ -99,7 +89,7 @@ namespace Spine { } /// After the first and before the last entry. - internal static int binarySearch (float[] values, float target) { + internal static int BinarySearch (float[] values, float target) { int low = 0; int high = values.Length - 2; if (high == 0) return 1; @@ -114,7 +104,7 @@ namespace Spine { } } - internal static int linearSearch (float[] values, float target, int step) { + internal static int LinearSearch (float[] values, float target, int step) { for (int i = 0, last = values.Length - step; i <= last; i += step) if (values[i] > target) return i; return -1; @@ -123,8 +113,20 @@ namespace Spine { public interface Timeline { /// Sets the value(s) for the specified time. - /// May be null to not collect fired events. - void Apply (Skeleton skeleton, float lastTime, float time, ExposedList events, float alpha); + /// Any triggered events are added. May be null. + /// True when the timeline is mixed with the setup pose, false when it is mixed with the current pose. Passing true when alpha is 1 is slightly more efficient. + /// True when mixing over time toward the setup or current pose, false when mixing toward the keyed pose. + /// Used for timelines with instant transitions, eg draw order, attachment visibility, scale sign. + void Apply (Skeleton skeleton, float lastTime, float time, ExposedList events, float alpha, bool setupPose, bool mixingOut); + int PropertyId { get; } + } + + internal enum TimelineType { + Rotate = 0, Translate, Scale, Shear, // + Attachment, Color, Deform, // + Event, DrawOrder, // + IkConstraint, TransformConstraint, // + PathConstraintPosition, PathConstraintSpacing, PathConstraintMix } /// Base class for frames that use an interpolation bezier curve. @@ -140,7 +142,9 @@ namespace Spine { curves = new float[(frameCount - 1) * BEZIER_SIZE]; } - abstract public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha); + abstract public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut); + + abstract public int PropertyId { get; } public void SetLinear (int frameIndex) { curves[frameIndex * BEZIER_SIZE] = LINEAR; @@ -218,6 +222,10 @@ namespace Spine { public int BoneIndex { get { return boneIndex; } set { boneIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, angle, ... + override public int PropertyId { + get { return ((int)TimelineType.Rotate << 24) + boneIndex; } + } + public RotateTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount << 1]; @@ -230,41 +238,43 @@ namespace Spine { frames[frameIndex + ROTATION] = degrees; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { Bone bone = skeleton.bones.Items[boneIndex]; - float amount; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - amount = bone.data.rotation + frames[frames.Length + PREV_ROTATION] - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + if (setupPose) { + bone.rotation = bone.data.rotation + frames[frames.Length + PREV_ROTATION] * alpha; + } else { + float rr = bone.data.rotation + frames[frames.Length + PREV_ROTATION] - bone.rotation; + rr -= (16384 - (int)(16384.499999999996 - rr / 360)) * 360; // Wrap within -180 and 180. + bone.rotation += rr * alpha; + } return; } // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); + int frame = Animation.BinarySearch(frames, time, ENTRIES); float prevRotation = frames[frame + PREV_ROTATION]; float frameTime = frames[frame]; float percent = GetCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - amount = frames[frame + ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + float r = frames[frame + ROTATION] - prevRotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone.rotation += r * alpha; + } } } @@ -279,6 +289,10 @@ namespace Spine { public int BoneIndex { get { return boneIndex; } set { boneIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, value, value, ... + override public int PropertyId { + get { return ((int)TimelineType.Translate << 24) + boneIndex; } + } + public TranslateTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; @@ -292,83 +306,150 @@ namespace Spine { frames[frameIndex + Y] = y; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { Bone bone = skeleton.bones.Items[boneIndex]; - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - bone.x += (bone.data.x + frames[frames.Length + PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.Length + PREV_Y] - bone.y) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. + x = frames[frames.Length + PREV_X]; + y = frames[frames.Length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.x += (bone.data.x + prevX + (frames[frame + X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + Y] - prevY) * percent - bone.y) * alpha; + x += (frames[frame + X] - x) * percent; + y += (frames[frame + 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; + } } } public class ScaleTimeline : TranslateTimeline { + override public int PropertyId { + get { return ((int)TimelineType.Scale << 24) + boneIndex; } + } + public ScaleTimeline (int frameCount) : base(frameCount) { } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { Bone bone = skeleton.bones.Items[boneIndex]; - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - bone.scaleX += (bone.data.scaleX * frames[frames.Length + PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.Length + PREV_Y] - bone.scaleY) * alpha; + + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. + x = frames[frames.Length + PREV_X] * bone.data.scaleX; + y = frames[frames.Length + PREV_Y] * bone.data.scaleY; + } else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + Y] - prevY) * percent) - bone.scaleY) * alpha; + x = (x + (frames[frame + X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } else { + float bx, by; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } else { + bx = bone.scaleX; + by = bone.scaleY; + } + // Mixing out uses sign of setup or current pose, else use sign of key. + if (mixingOut) { + x = Math.Abs(x) * Math.Sign(bx); + y = Math.Abs(y) * Math.Sign(by); + } else { + bx = Math.Abs(bx) * Math.Sign(x); + by = Math.Abs(by) * Math.Sign(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } } } public class ShearTimeline : TranslateTimeline { + override public int PropertyId { + get { return ((int)TimelineType.Shear << 24) + boneIndex; } + } + public ShearTimeline (int frameCount) : base(frameCount) { } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { Bone bone = skeleton.bones.Items[boneIndex]; - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - bone.shearX += (bone.data.shearX + frames[frames.Length + PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.Length + PREV_Y] - bone.shearY) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. + x = frames[frames.Length + PREV_X]; + y = frames[frames.Length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + Y] - prevY) * percent) - bone.shearY) * alpha; + x = x + (frames[frame + X] - x) * percent; + y = y + (frames[frame + 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; + } } } @@ -383,6 +464,10 @@ namespace Spine { public int SlotIndex { get { return slotIndex; } set { slotIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, r, g, b, a, ... + override public int PropertyId { + get { return ((int)TimelineType.Color << 24) + slotIndex; } + } + public ColorTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; @@ -398,9 +483,19 @@ namespace Spine { frames[frameIndex + A] = a; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { + Slot slot = skeleton.slots.Items[slotIndex]; float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) { + var slotData = slot.data; + slot.r = slotData.r; + slot.g = slotData.g; + slot.b = slotData.b; + slot.a = slotData.a; + } + return; + } float r, g, b, a; if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. @@ -411,7 +506,7 @@ namespace Spine { a = frames[i + PREV_A]; } else { // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); + int frame = Animation.BinarySearch(frames, time, ENTRIES); r = frames[frame + PREV_R]; g = frames[frame + PREV_G]; b = frames[frame + PREV_B]; @@ -425,17 +520,28 @@ namespace Spine { b += (frames[frame + B] - b) * percent; a += (frames[frame + A] - a) * percent; } - Slot slot = skeleton.slots.Items[slotIndex]; - if (alpha < 1) { - slot.r += (r - slot.r) * alpha; - slot.g += (g - slot.g) * alpha; - slot.b += (b - slot.b) * alpha; - slot.a += (a - slot.a) * alpha; - } else { + if (alpha == 1) { slot.r = r; slot.g = g; slot.b = b; slot.a = a; + } else { + float br, bg, bb, ba; + if (setupPose) { + br = slot.data.r; + bg = slot.data.g; + bb = slot.data.b; + ba = slot.data.a; + } else { + br = slot.r; + bg = slot.g; + bb = slot.b; + ba = slot.a; + } + slot.r = br + ((r - br) * alpha); + slot.g = bg + ((g - bg) * alpha); + slot.b = bb + ((b - bb) * alpha); + slot.a = ba + ((a - ba) * alpha); } } } @@ -450,6 +556,10 @@ namespace Spine { public String[] AttachmentNames { get { return attachmentNames; } set { attachmentNames = value; } } public int FrameCount { get { return frames.Length; } } + public int PropertyId { + get { return ((int)TimelineType.Attachment << 24) + slotIndex; } + } + public AttachmentTimeline (int frameCount) { frames = new float[frameCount]; attachmentNames = new String[frameCount]; @@ -461,19 +571,146 @@ namespace Spine { attachmentNames[frameIndex] = attachmentName; } - public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { + public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { + string attachmentName; + Slot slot = skeleton.slots.Items[slotIndex]; + if (mixingOut && setupPose) { + attachmentName = slot.data.attachmentName; + slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName); + return; + } + float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) { + attachmentName = slot.data.attachmentName; + slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName); + } + return; + } int frameIndex; if (time >= frames[frames.Length - 1]) // Time is after last frame. frameIndex = frames.Length - 1; else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; + frameIndex = Animation.BinarySearch(frames, time, 1) - 1; - String attachmentName = attachmentNames[frameIndex]; - skeleton.slots.Items[slotIndex] - .Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName); + attachmentName = attachmentNames[frameIndex]; + slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName); + } + } + + public class DeformTimeline : CurveTimeline { + internal int slotIndex; + internal float[] frames; + internal float[][] frameVertices; + internal VertexAttachment attachment; + + public int SlotIndex { get { return slotIndex; } set { slotIndex = value; } } + public float[] Frames { get { return frames; } set { frames = value; } } // time, ... + public float[][] Vertices { get { return frameVertices; } set { frameVertices = value; } } + public VertexAttachment Attachment { get { return attachment; } set { attachment = value; } } + + override public int PropertyId { + get { return ((int)TimelineType.Deform << 24) + slotIndex; } + } + + public DeformTimeline (int frameCount) + : base(frameCount) { + frames = new float[frameCount]; + frameVertices = new float[frameCount][]; + } + + /// Sets the time and value of the specified keyframe. + public void SetFrame (int frameIndex, float time, float[] vertices) { + frames[frameIndex] = time; + frameVertices[frameIndex] = vertices; + } + + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { + Slot slot = skeleton.slots.Items[slotIndex]; + VertexAttachment slotAttachment = slot.attachment as VertexAttachment; + if (slotAttachment == null || !slotAttachment.ApplyDeform(attachment)) return; + + var verticesArray = slot.attachmentVertices; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) verticesArray.Clear(); + return; + } + + float[][] frameVertices = this.frameVertices; + int vertexCount = frameVertices[0].Length; + + if (verticesArray.Count != vertexCount) 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; + float[] vertices = verticesArray.Items; + + if (time >= frames[frames.Length - 1]) { // Time is after last frame. + float[] lastVertices = frameVertices[frames.Length - 1]; + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. + Array.Copy(lastVertices, 0, vertices, 0, vertexCount); + } else if (setupPose) { + VertexAttachment vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + float[] setupVertices = vertexAttachment.vertices; + for (int i = 0; i < vertexCount; i++) { + float setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } else { + // Vertex positions or deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time); + float[] prevVertices = frameVertices[frame - 1]; + float[] nextVertices = frameVertices[frame]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } else if (setupPose) { + VertexAttachment vertexAttachment = (VertexAttachment)slotAttachment; + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + var setupVertices = vertexAttachment.vertices; + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } else { + // Vertex positions or deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } } } @@ -485,6 +722,10 @@ namespace Spine { public Event[] Events { get { return events; } set { events = value; } } public int FrameCount { get { return frames.Length; } } + public int PropertyId { + get { return ((int)TimelineType.Event << 24); } + } + public EventTimeline (int frameCount) { frames = new float[frameCount]; events = new Event[frameCount]; @@ -497,13 +738,13 @@ namespace Spine { } /// Fires events for frames > lastTime and <= time. - public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { + public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { if (firedEvents == null) return; float[] frames = this.frames; int frameCount = frames.Length; if (lastTime > time) { // Fire events after last time for looped animations. - Apply(skeleton, lastTime, int.MaxValue, firedEvents, alpha); + Apply(skeleton, lastTime, int.MaxValue, firedEvents, alpha, setupPose, mixingOut); lastTime = -1f; } else if (lastTime >= frames[frameCount - 1]) // Last time is after last frame. return; @@ -513,7 +754,7 @@ namespace Spine { if (lastTime < frames[0]) frame = 0; else { - frame = Animation.binarySearch(frames, lastTime); + frame = Animation.BinarySearch(frames, lastTime); float frameTime = frames[frame]; while (frame > 0) { // Fire multiple events with the same frame. if (frames[frame - 1] != frameTime) break; @@ -533,6 +774,10 @@ namespace Spine { public int[][] DrawOrders { get { return drawOrders; } set { drawOrders = value; } } public int FrameCount { get { return frames.Length; } } + public int PropertyId { + get { return ((int)TimelineType.DrawOrder << 24); } + } + public DrawOrderTimeline (int frameCount) { frames = new float[frameCount]; drawOrders = new int[frameCount][]; @@ -545,18 +790,26 @@ namespace Spine { drawOrders[frameIndex] = drawOrder; } - public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { + public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { + ExposedList drawOrder = skeleton.drawOrder; + ExposedList slots = skeleton.slots; + if (mixingOut && setupPose) { + Array.Copy(slots.Items, 0, drawOrder.Items, 0, slots.Count); + return; + } + float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) Array.Copy(slots.Items, 0, drawOrder.Items, 0, slots.Count); + return; + } int frame; if (time >= frames[frames.Length - 1]) // Time is after last frame. frame = frames.Length - 1; else - frame = Animation.binarySearch(frames, time) - 1; - - ExposedList drawOrder = skeleton.drawOrder; - ExposedList slots = skeleton.slots; + frame = Animation.BinarySearch(frames, time) - 1; + int[] drawOrderToSetupIndex = drawOrders[frame]; if (drawOrderToSetupIndex == null) { drawOrder.Clear(); @@ -571,81 +824,6 @@ namespace Spine { } } - public class DeformTimeline : CurveTimeline { - internal int slotIndex; - internal float[] frames; - private float[][] frameVertices; - internal VertexAttachment attachment; - - public int SlotIndex { get { return slotIndex; } set { slotIndex = value; } } - public float[] Frames { get { return frames; } set { frames = value; } } // time, ... - public float[][] Vertices { get { return frameVertices; } set { frameVertices = value; } } - public VertexAttachment Attachment { get { return attachment; } set { attachment = value; } } - - public DeformTimeline (int frameCount) - : base(frameCount) { - frames = new float[frameCount]; - frameVertices = new float[frameCount][]; - } - - /// Sets the time and value of the specified keyframe. - public void SetFrame (int frameIndex, float time, float[] vertices) { - frames[frameIndex] = time; - frameVertices[frameIndex] = vertices; - } - - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - Slot slot = skeleton.slots.Items[slotIndex]; - VertexAttachment slotAttachment = slot.attachment as VertexAttachment; - if (slotAttachment == null || !slotAttachment.ApplyDeform(attachment)) return; - - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - - float[][] frameVertices = this.frameVertices; - int vertexCount = frameVertices[0].Length; - - var verticesArray = slot.attachmentVertices; - if (verticesArray.Count != vertexCount) 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; - float[] vertices = verticesArray.Items; - - if (time >= frames[frames.Length - 1]) { // Time is after last frame. - float[] lastVertices = frameVertices[frames.Length - 1]; - if (alpha < 1) { - for (int i = 0; i < vertexCount; i++) { - float vertex = vertices[i]; - vertices[i] = vertex + (lastVertices[i] - vertex) * alpha; - } - } else - Array.Copy(lastVertices, 0, vertices, 0, vertexCount); - return; - } - - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time); - float[] prevVertices = frameVertices[frame - 1]; - float[] nextVertices = frameVertices[frame]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - - if (alpha < 1) { - for (int i = 0; i < vertexCount; i++) { - float prev = prevVertices[i]; - float vertex = vertices[i]; - vertices[i] = vertex + (prev + (nextVertices[i] - prev) * percent - vertex) * alpha; - } - } else { - for (int i = 0; i < vertexCount; i++) { - float prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - } - } - public class IkConstraintTimeline : CurveTimeline { public const int ENTRIES = 3; private const int PREV_TIME = -3, PREV_MIX = -2, PREV_BEND_DIRECTION = -1; @@ -657,11 +835,15 @@ namespace Spine { public int IkConstraintIndex { get { return ikConstraintIndex; } set { ikConstraintIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, mix, bendDirection, ... + override public int PropertyId { + get { return ((int)TimelineType.IkConstraint << 24) + ikConstraintIndex; } + } + public IkConstraintTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; } - + /// Sets the time, mix and bend direction of the specified keyframe. public void SetFrame (int frameIndex, float time, float mix, int bendDirection) { frameIndex *= ENTRIES; @@ -670,26 +852,42 @@ namespace Spine { frames[frameIndex + BEND_DIRECTION] = bendDirection; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { IkConstraint constraint = skeleton.ikConstraints.Items[ikConstraintIndex]; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - constraint.mix += (frames[frames.Length + PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = (int)frames[frames.Length + PREV_BEND_DIRECTION]; + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.Length + PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : (int)frames[frames.Length + PREV_BEND_DIRECTION]; + } else { + constraint.mix += (frames[frames.Length + PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = (int)frames[frames.Length + PREV_BEND_DIRECTION]; + } return; } // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); + int frame = Animation.BinarySearch(frames, time, ENTRIES); float mix = frames[frame + PREV_MIX]; float frameTime = frames[frame]; float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = (int)frames[frame + PREV_BEND_DIRECTION]; + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : (int)frames[frame + PREV_BEND_DIRECTION]; + } else { + constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = (int)frames[frame + PREV_BEND_DIRECTION]; + } } } @@ -704,6 +902,10 @@ namespace Spine { public int TransformConstraintIndex { get { return transformConstraintIndex; } set { transformConstraintIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, rotate mix, translate mix, scale mix, shear mix, ... + override public int PropertyId { + get { return ((int)TimelineType.TransformConstraint << 24) + transformConstraintIndex; } + } + public TransformConstraintTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; @@ -718,35 +920,55 @@ namespace Spine { frames[frameIndex + SHEAR] = shearMix; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { TransformConstraint constraint = skeleton.transformConstraints.Items[transformConstraintIndex]; - - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - int i = frames.Length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + PREV_SHEAR] - constraint.shearMix) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float rotate, translate, scale, shear; + if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. + int i = frames.Length; + rotate = frames[i + PREV_ROTATE]; + translate = frames[i + PREV_TRANSLATE]; + scale = frames[i + PREV_SCALE]; + shear = frames[i + PREV_SHEAR]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + scale = frames[frame + PREV_SCALE]; + shear = frames[frame + PREV_SHEAR]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - float rotate = frames[frame + PREV_ROTATE]; - float translate = frames[frame + PREV_TRANSLATE]; - float scale = frames[frame + PREV_SCALE]; - float shear = frames[frame + PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + SHEAR] - shear) * percent - constraint.shearMix) * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + TRANSLATE] - translate) * percent; + scale += (frames[frame + SCALE] - scale) * percent; + shear += (frames[frame + SHEAR] - shear) * percent; + } + if (setupPose) { + TransformConstraintData 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; + } } } @@ -758,6 +980,10 @@ namespace Spine { internal int pathConstraintIndex; internal float[] frames; + override public int PropertyId { + get { return ((int)TimelineType.PathConstraintPosition << 24) + pathConstraintIndex; } + } + public PathConstraintPositionTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; @@ -773,52 +999,69 @@ namespace Spine { frames[frameIndex + VALUE] = value; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { PathConstraint constraint = skeleton.pathConstraints.Items[pathConstraintIndex]; - - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - int i = frames.Length; - constraint.position += (frames[i + PREV_VALUE] - constraint.position) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) constraint.position = constraint.data.position; return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float position = frames[frame + PREV_VALUE]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float position; + if (time >= frames[frames.Length - ENTRIES]) // Time is after last frame. + position = frames[frames.Length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + position = frames[frame + PREV_VALUE]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.position += (position + (frames[frame + VALUE] - position) * percent - constraint.position) * alpha; + position += (frames[frame + VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; } } public class PathConstraintSpacingTimeline : PathConstraintPositionTimeline { + override public int PropertyId { + get { return ((int)TimelineType.PathConstraintSpacing << 24) + pathConstraintIndex; } + } + public PathConstraintSpacingTimeline (int frameCount) : base(frameCount) { } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { PathConstraint constraint = skeleton.pathConstraints.Items[pathConstraintIndex]; - - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - int i = frames.Length; - constraint.spacing += (frames[i + PREV_VALUE] - constraint.spacing) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) constraint.spacing = constraint.data.spacing; return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float spacing = frames[frame + PREV_VALUE]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float spacing; + if (time >= frames[frames.Length - ENTRIES]) // Time is after last frame. + spacing = frames[frames.Length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + spacing = frames[frame + PREV_VALUE]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.spacing += (spacing + (frames[frame + VALUE] - spacing) * percent - constraint.spacing) * alpha; + spacing += (frames[frame + VALUE] - spacing) * percent; + } + + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; } } @@ -833,12 +1076,16 @@ namespace Spine { public int PathConstraintIndex { get { return pathConstraintIndex; } set { pathConstraintIndex = value; } } public float[] Frames { get { return frames; } set { frames = value; } } // time, rotate mix, translate mix, ... + override public int PropertyId { + get { return ((int)TimelineType.PathConstraintMix << 24) + pathConstraintIndex; } + } + public PathConstraintMixTimeline (int frameCount) : base(frameCount) { frames = new float[frameCount * ENTRIES]; - } + } - /** Sets the time and mixes of the specified keyframe. */ + /// Sets the time and mixes of the specified keyframe. public void SetFrame (int frameIndex, float time, float rotateMix, float translateMix) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -846,29 +1093,41 @@ namespace Spine { frames[frameIndex + TRANSLATE] = translateMix; } - override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - + override public void Apply (Skeleton skeleton, float lastTime, float time, ExposedList firedEvents, float alpha, bool setupPose, bool mixingOut) { PathConstraint constraint = skeleton.pathConstraints.Items[pathConstraintIndex]; - - if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. - int i = frames.Length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = Animation.binarySearch(frames, time, ENTRIES); - float rotate = frames[frame + PREV_ROTATE]; - float translate = frames[frame + PREV_TRANSLATE]; - float frameTime = frames[frame]; - float percent = GetCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float rotate, translate; + if (time >= frames[frames.Length - ENTRIES]) { // Time is after last frame. + rotate = frames[frames.Length + PREV_ROTATE]; + translate = frames[frames.Length + PREV_TRANSLATE]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + float frameTime = frames[frame]; + float percent = GetCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + 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; + } } } } diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index 5cfd6f058..237ce5585 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -34,9 +34,14 @@ using System.Text; namespace Spine { public class AnimationState { + private static Animation EmptyAnimation = new Animation("", new ExposedList(), 0); + private AnimationStateData data; - private ExposedList tracks = new ExposedList(); - private ExposedList events = new ExposedList(); + private readonly ExposedList tracks = new ExposedList(); + private readonly HashSet propertyIDs = new HashSet(); + private readonly ExposedList events = new ExposedList(); + private readonly EventQueue queue; + private bool animationsChanged; private float timeScale = 1; public AnimationStateData Data { get { return data; } } @@ -44,169 +49,393 @@ namespace Spine { public ExposedList Tracks { get { return tracks; } } public float TimeScale { get { return timeScale; } set { timeScale = value; } } - public delegate void StartEndDelegate (AnimationState state, int trackIndex); - public event StartEndDelegate Start; - public event StartEndDelegate End; + public delegate void TrackEntryDelegate (TrackEntry trackEntry); + public event TrackEntryDelegate Start, Interrupt, End, Dispose, Complete; - public delegate void EventDelegate (AnimationState state, int trackIndex, Event e); - public event EventDelegate Event; - - public delegate void CompleteDelegate (AnimationState state, int trackIndex, int loopCount); - public event CompleteDelegate Complete; + public delegate void TrackEntryEventDelegate (TrackEntry trackEntry, Event e); + public event TrackEntryEventDelegate Event; public AnimationState (AnimationStateData data) { if (data == null) throw new ArgumentNullException("data", "data cannot be null."); this.data = data; + this.queue = new EventQueue(this, HandleAnimationsChanged); } + void HandleAnimationsChanged () { + this.animationsChanged = true; + } + + /// + /// Increments the track entry times, setting queued animations as current if needed + /// delta time public void Update (float delta) { delta *= timeScale; - for (int i = 0; i < tracks.Count; i++) { - TrackEntry current = tracks.Items[i]; + var tracksItems = tracks.Items; + for (int i = 0, n = tracks.Count; i < n; i++) { + TrackEntry current = tracksItems[i]; if (current == null) continue; - float trackDelta = delta * current.timeScale; - float time = current.time + trackDelta; - float endTime = current.endTime; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; - current.time = time; - if (current.previous != null) { - current.previous.time += trackDelta; - current.mixTime += trackDelta; - } + float currentDelta = delta * current.timeScale; - // Check if completed the animation or a loop iteration. - if (current.loop ? (current.lastTime % endTime > time % endTime) : (current.lastTime < endTime && time >= endTime)) { - int count = (int)(time / endTime); - current.OnComplete(this, i, count); - if (Complete != null) Complete(this, i, count); + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) continue; + currentDelta = -current.delay; + current.delay = 0; } TrackEntry next = current.next; if (next != null) { - next.time = current.lastTime - next.delay; - if (next.time >= 0) SetCurrent(i, next); - } else { - // End non-looping animation when it reaches its end time and there is no next entry. - if (!current.loop && current.lastTime >= current.endTime) ClearTrack(i); - } - } - } - - public void Apply (Skeleton skeleton) { - ExposedList events = this.events; - - for (int i = 0; i < tracks.Count; i++) { - TrackEntry current = tracks.Items[i]; - if (current == null) continue; - - events.Clear(); - - float time = current.time; - bool loop = current.loop; - if (!loop && time > current.endTime) time = current.endTime; - - TrackEntry previous = current.previous; - if (previous == null) { - if (current.mix == 1) - current.animation.Apply(skeleton, current.lastTime, time, loop, events); - else - current.animation.Mix(skeleton, current.lastTime, time, loop, events, current.mix); - } else { - float previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) previousTime = previous.endTime; - previous.animation.Apply(skeleton, previous.lastTime, previousTime, previous.loop, null); - // Remove the line above, and uncomment the line below, to allow previous animations to fire events during mixing. - //previous.animation.Apply(skeleton, previous.lastTime, previousTime, previous.loop, events); - previous.lastTime = previousTime; - - float alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + // When the next entry's delay is passed, change to the next entry, preserving leftover time. + float nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = nextTime + (delta * next.timeScale); + current.trackTime += currentDelta; + SetCurrent(i, next); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + UpdateMixingFrom(current, delta, true); + } else { + UpdateMixingFrom(current, delta, true); + // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracksItems[i] = null; + queue.End(current); + DisposeNext(current); + continue; } - current.animation.Mix(skeleton, current.lastTime, time, loop, events, alpha); } - for (int ii = 0, nn = events.Count; ii < nn; ii++) { - Event e = events.Items[ii]; - current.OnEvent(this, i, e); - if (Event != null) Event(this, i, e); - } - - current.lastTime = current.time; + current.trackTime += currentDelta; } + + queue.Drain(); } + private void UpdateMixingFrom (TrackEntry entry, float delta, bool canEnd) { + TrackEntry from = entry.mixingFrom; + if (from == null) return; + + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + queue.End(from); + TrackEntry newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + float mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + + UpdateMixingFrom(from, delta, canEnd && from.alpha == 1); + } + + + /// + /// 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) { + if (skeleton == null) throw new ArgumentNullException("skeleton", "skeleton cannot be null."); + if (animationsChanged) AnimationsChanged(); + + var events = this.events; + + 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; + + // Apply mixing from entries first. + float mix = current.alpha; + if (current.mixingFrom != null) mix *= ApplyMixingFrom(current, skeleton); + + // Apply current entry. + float animationLast = current.animationLast, animationTime = current.AnimationTime; + int timelineCount = current.animation.timelines.Count; + var timelines = current.animation.timelines; + var timelinesItems = timelines.Items; + if (mix == 1) { + for (int ii = 0; ii < timelineCount; ii++) + timelinesItems[ii].Apply(skeleton, animationLast, animationTime, events, 1, true, false); + } else { + bool firstFrame = current.timelinesRotation.Count == 0; + if (firstFrame) current.timelinesRotation.EnsureCapacity(timelines.Count << 1); + var timelinesRotation = current.timelinesRotation.Items; + + var timelinesFirstItems = current.timelinesFirst.Items; + for (int ii = 0; ii < timelineCount; ii++) { + Timeline timeline = timelinesItems[ii]; + var rotateTimeline = timeline as RotateTimeline; + if (rotateTimeline != null) { + ApplyRotateTimeline(rotateTimeline, skeleton, animationTime, mix, timelinesFirstItems[ii], timelinesRotation, ii << 1, + firstFrame); + } else { + timeline.Apply(skeleton, animationLast, animationTime, events, mix, timelinesFirstItems[ii], false); + } + } + } + QueueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + + queue.Drain(); + } + + private float ApplyMixingFrom (TrackEntry entry, Skeleton skeleton) { + TrackEntry from = entry.mixingFrom; + if (from.mixingFrom != null) ApplyMixingFrom(from, skeleton); + + float mix; + if (entry.mixDuration == 0) // Single frame mix to undo mixingFrom changes. + mix = 1; + else { + mix = entry.mixTime / entry.mixDuration; + if (mix > 1) mix = 1; + } + + var eventBuffer = mix < from.eventThreshold ? this.events : null; + bool attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + float animationLast = from.animationLast, animationTime = from.AnimationTime; + var timelines = from.animation.timelines; + var timelinesItems = timelines.Items; + int timelineCount = timelines.Count; + var timelinesFirst = from.timelinesFirst; + var timelinesFirstItems = timelinesFirst.Items; + float alpha = from.alpha * entry.mixAlpha * (1 - mix); + + bool firstFrame = entry.timelinesRotation.Count == 0; + if (firstFrame) entry.timelinesRotation.Capacity = timelineCount << 1; + var timelinesRotation = entry.timelinesRotation.Items; + + for (int i = 0; i < timelineCount; i++) { + Timeline timeline = timelinesItems[i]; + bool setupPose = timelinesFirstItems[i]; + var rotateTimeline = timeline as RotateTimeline; + if (rotateTimeline != null) { + ApplyRotateTimeline(rotateTimeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + } else { + if (setupPose) { + if (!attachments && timeline is AttachmentTimeline) continue; + if (!drawOrder && timeline is DrawOrderTimeline) continue; + } + timeline.Apply(skeleton, animationLast, animationTime, eventBuffer, alpha, setupPose, true); + } + } + + QueueEvents(entry, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + + return mix; + } + + static private void ApplyRotateTimeline (RotateTimeline rotateTimeline, Skeleton skeleton, float time, float alpha, bool setupPose, + float[] timelinesRotation, int i, bool firstFrame) { + if (alpha == 1) { + rotateTimeline.Apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + + Bone bone = skeleton.bones.Items[rotateTimeline.boneIndex]; + float[] frames = rotateTimeline.frames; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } + + float r2; + if (time >= frames[frames.Length - RotateTimeline.ENTRIES]) // Time is after last frame. + r2 = bone.data.rotation + frames[frames.Length + RotateTimeline.PREV_ROTATION]; + else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.BinarySearch(frames, time, RotateTimeline.ENTRIES); + float prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + float frameTime = frames[frame]; + float percent = rotateTimeline.GetCurvePercent((frame >> 1) - 1, + 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + + r2 = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + } + + // Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. + float r1 = setupPose ? bone.data.rotation : bone.rotation; + float total, diff = r2 - r1; + if (diff == 0) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } else + total = timelinesRotation[i]; + } else { + diff -= (16384 - (int)(16384.499999999996 - diff / 360)) * 360; + float lastTotal, lastDiff; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; // Angle and direction of mix, including loops. + lastDiff = timelinesRotation[i + 1]; // Difference between bones. + } + bool current = diff > 0, dir = lastTotal >= 0; + // Detect cross at 0 (not 180). + if (Math.Sign(lastDiff) != Math.Sign(diff) && Math.Abs(lastDiff) <= 90) { + // A cross after a 360 rotation is a loop. + if (Math.Abs(lastTotal) > 180) lastTotal += 360 * Math.Sign(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; // Store loops as part of lastTotal. + if (dir != current) total += 360 * Math.Sign(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - (int)(16384.499999999996 - r1 / 360)) * 360; + } + + private void QueueEvents (TrackEntry entry, float animationTime) { + float animationStart = entry.animationStart, animationEnd = entry.animationEnd; + float duration = animationEnd - animationStart; + float trackLastWrapped = entry.trackLast % duration; + + // Queue events before complete. + var events = this.events; + var eventsItems = events.Items; + int i = 0, n = events.Count; + for (; i < n; i++) { + var e = eventsItems[i]; + if (e.time < trackLastWrapped) break; + if (e.time > animationEnd) continue; // Discard events outside animation start/end. + queue.Event(entry, e); + } + + // Queue complete if completed a loop iteration or the animation. + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + queue.Complete(entry); + } + + // Queue events after complete. + for (; i < n; i++) { + Event e = eventsItems[i]; + if (e.time < animationStart) continue; // Discard events outside animation start/end. + queue.Event(entry, eventsItems[i]); + } + events.Clear(false); + } + + /// + /// Removes all animations from all tracks, leaving skeletons in their previous pose. + /// It may be desired to use to mix the skeletons back to the setup pose, + /// rather than leaving them in their previous pose. public void ClearTracks () { - for (int i = 0, n = tracks.Count; i < n; i++) + queue.drainDisabled = true; + for (int i = 0, n = tracks.Count; i < n; i++) { ClearTrack(i); + } tracks.Clear(); + queue.drainDisabled = false; + queue.Drain(); } + /// + /// Removes all animations from the tracks, leaving skeletons in their previous pose. + /// It may be desired to use to mix the skeletons back to the setup pose, + /// rather than leaving them in their previous pose. public void ClearTrack (int trackIndex) { if (trackIndex >= tracks.Count) return; TrackEntry current = tracks.Items[trackIndex]; if (current == null) return; - current.OnEnd(this, trackIndex); - if (End != null) End(this, trackIndex); + queue.End(current); - tracks.Items[trackIndex] = null; - } + DisposeNext(current); - private TrackEntry ExpandToIndex (int index) { - if (index < tracks.Count) return tracks.Items[index]; - while (index >= tracks.Count) - tracks.Add(null); - return null; - } - - private void SetCurrent (int index, TrackEntry entry) { - TrackEntry current = ExpandToIndex(index); - if (current != null) { - TrackEntry previous = current.previous; - current.previous = null; - - current.OnEnd(this, index); - if (End != null) End(this, index); - - entry.mixDuration = data.GetMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - // If a mix is in progress, mix from the closest animation. - if (previous != null && current.mixTime / current.mixDuration < 0.5f) - entry.previous = previous; - else - entry.previous = current; - } + TrackEntry entry = current; + while (true) { + TrackEntry from = entry.mixingFrom; + if (from == null) break; + queue.End(from); + entry.mixingFrom = null; + entry = from; } - tracks.Items[index] = entry; + tracks.Items[current.trackIndex] = null; - entry.OnStart(this, index); - if (Start != null) Start(this, index); + queue.Drain(); } - /// + private void SetCurrent (int index, TrackEntry current) { + TrackEntry from = ExpandToIndex(index); + tracks.Items[index] = current; + + if (from != null) { + queue.Interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + + from.timelinesRotation.Clear(); + + // If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. + if (from.mixingFrom != null) from.mixAlpha *= Math.Min(from.mixTime / from.mixDuration, 1); + } + + queue.Start(current); + } + + + /// Sets an animation by name. public TrackEntry SetAnimation (int trackIndex, String animationName, bool loop) { Animation animation = data.skeletonData.FindAnimation(animationName); if (animation == null) throw new ArgumentException("Animation not found: " + animationName, "animationName"); return SetAnimation(trackIndex, animation, loop); } - /// Set the current animation. Any queued animations are cleared. + /// Sets the current animation for a track, discarding any queued animations. + /// If true, the animation will repeat. + /// If false, it will not, instead its last frame is applied if played beyond its duration. + /// In either case determines when the track is cleared. + /// + /// A track entry to allow further customization of animation playback. References to the track entry must not be kept + /// after . public TrackEntry SetAnimation (int trackIndex, Animation animation, bool loop) { if (animation == null) throw new ArgumentNullException("animation", "animation cannot be null."); - TrackEntry entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.time = 0; - entry.endTime = animation.Duration; + TrackEntry current = ExpandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + // Don't mix from an entry that was never applied. + tracks.Items[trackIndex] = null; + queue.Interrupt(current); + queue.End(current); + DisposeNext(current); + current = null; + } else { + DisposeNext(current); + } + } + TrackEntry entry = NewTrackEntry(trackIndex, animation, loop, current); SetCurrent(trackIndex, entry); + queue.Drain(); return entry; } + /// Queues an animation by name. /// public TrackEntry AddAnimation (int trackIndex, String animationName, bool loop, float delay) { Animation animation = data.skeletonData.FindAnimation(animationName); @@ -214,93 +443,484 @@ namespace Spine { return AddAnimation(trackIndex, animation, loop, delay); } - /// Adds an animation to be played delay seconds after the current or last queued animation. - /// May be <= 0 to use duration of previous animation minus any mix duration plus the negative delay. + /// Adds an animation to be played delay seconds after the current or last queued animation + /// for a track. If the track is empty, it is equivalent to calling . + /// + /// Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation + /// duration of the previous track minus any mix duration plus the negative delay. + /// + /// A track entry to allow further customization of animation playback. References to the track entry must not be kept + /// after public TrackEntry AddAnimation (int trackIndex, Animation animation, bool loop, float delay) { if (animation == null) throw new ArgumentNullException("animation", "animation cannot be null."); - TrackEntry entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.time = 0; - entry.endTime = animation.Duration; TrackEntry last = ExpandToIndex(trackIndex); if (last != null) { while (last.next != null) last = last.next; - last.next = entry; - } else - tracks.Items[trackIndex] = entry; - - if (delay <= 0) { - if (last != null) - delay += last.endTime - data.GetMix(last.animation, animation); - else - delay = 0; } - entry.delay = delay; + TrackEntry entry = NewTrackEntry(trackIndex, animation, loop, last); + + if (last == null) { + SetCurrent(trackIndex, entry); + queue.Drain(); + } else { + last.next = entry; + if (delay <= 0) { + float duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + (int)(last.trackTime / duration)) - data.GetMix(last.animation, animation); + else + delay = 0; + } + } + + entry.delay = delay; return entry; } - /// May be null. + /// + /// Sets an empty animation for a track, discarding any queued animations, and mixes to it over the specified mix duration. + public TrackEntry SetEmptyAnimation (int trackIndex, float mixDuration) { + TrackEntry entry = SetAnimation(trackIndex, AnimationState.EmptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + /// + /// Adds an empty animation to be played after the current or last queued animation for a track, and mixes to it over the + /// specified mix duration. + /// + /// A track entry to allow further customization of animation playback. References to the track entry must not be kept after . + /// + /// Track number. + /// Mix duration. + /// Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation + /// duration of the previous track minus any mix duration plus the negative delay. + public TrackEntry AddEmptyAnimation (int trackIndex, float mixDuration, float delay) { + if (delay <= 0) delay -= mixDuration; + TrackEntry entry = AddAnimation(trackIndex, AnimationState.EmptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + /// + /// Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix duration. + public void SetEmptyAnimations (float mixDuration) { + queue.drainDisabled = true; + for (int i = 0, n = tracks.Count; i < n; i++) { + TrackEntry current = tracks.Items[i]; + if (current != null) SetEmptyAnimation(i, mixDuration); + } + queue.drainDisabled = false; + queue.Drain(); + } + + private TrackEntry ExpandToIndex (int index) { + if (index < tracks.Count) return tracks.Items[index]; + while (index >= tracks.Count) + tracks.Add(null); + return null; + } + + /// May be null. + private TrackEntry NewTrackEntry (int trackIndex, Animation animation, bool loop, TrackEntry last) { + return new TrackEntry { + trackIndex = trackIndex, + animation = animation, + loop = loop, + + eventThreshold = 0, + attachmentThreshold = 0, + drawOrderThreshold = 0, + + animationStart = 0, + animationEnd = animation.duration, + animationLast = -1, + nextAnimationLast = -1, + + delay = 0, + trackTime = 0, + trackLast = -1, + nextTrackLast = -1, + trackEnd = loop ? int.MaxValue : animation.duration, + timeScale = 1, + + alpha = 1, + mixAlpha = 1, + mixTime = 0, + mixDuration = (last == null) ? 0 : data.GetMix(last.animation, animation), + }; + } + + private void DisposeNext (TrackEntry entry) { + TrackEntry next = entry.next; + while (next != null) { + queue.Dispose(next); + next = next.next; + } + entry.next = null; + } + + private void AnimationsChanged () { + animationsChanged = false; + + var propertyIDs = this.propertyIDs; + + // Set timelinesFirst for all entries, from lowest track to highest. + int i = 0, n = tracks.Count; + propertyIDs.Clear(); + for (; i < n; i++) { // Find first non-null entry. + TrackEntry entry = tracks.Items[i]; + if (entry == null) continue; + SetTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { // Rest of entries. + TrackEntry entry = tracks.Items[i]; + if (entry != null) CheckTimelinesFirst(entry); + } + } + + /// From last to first mixingFrom entries, sets timelinesFirst to true on last, calls checkTimelineUsage on rest. + private void SetTimelinesFirst (TrackEntry entry) { + if (entry.mixingFrom != null) { + SetTimelinesFirst(entry.mixingFrom); + CheckTimelinesUsage(entry); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + int n = timelines.Count; + entry.timelinesFirst.EnsureCapacity(n); // entry.timelinesFirst.setSize(n); + var usage = entry.timelinesFirst.Items; + var timelinesItems = timelines.Items; + for (int i = 0; i < n; i++) { + propertyIDs.Add(timelinesItems[i].PropertyId); + usage[i] = true; + } + } + + /// From last to first mixingFrom entries, calls checkTimelineUsage. + private void CheckTimelinesFirst (TrackEntry entry) { + if (entry.mixingFrom != null) CheckTimelinesFirst(entry.mixingFrom); + CheckTimelinesUsage(entry); + } + + private void CheckTimelinesUsage (TrackEntry entry) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + int n = timelines.Count; + var usageArray = entry.timelinesFirst; + usageArray.EnsureCapacity(n); + var usage = usageArray.Items; + var timelinesItems = timelines.Items; + for (int i = 0; i < n; i++) + usage[i] = propertyIDs.Add(timelinesItems[i].PropertyId); + } + + /// The track entry for the animation currently playing on the track, or null if no animation is currently playing. public TrackEntry GetCurrent (int trackIndex) { - if (trackIndex >= tracks.Count) return null; - return tracks.Items[trackIndex]; + return (trackIndex >= tracks.Count) ? null : tracks.Items[trackIndex]; } override public String ToString () { - StringBuilder buffer = new StringBuilder(); + var buffer = new StringBuilder(); for (int i = 0, n = tracks.Count; i < n; i++) { TrackEntry entry = tracks.Items[i]; if (entry == null) continue; if (buffer.Length > 0) buffer.Append(", "); buffer.Append(entry.ToString()); } - if (buffer.Length == 0) return ""; - return buffer.ToString(); + return buffer.Length == 0 ? "" : buffer.ToString(); } + + internal void OnStart (TrackEntry entry) { if (Start != null) Start(entry); } + internal void OnInterrupt (TrackEntry entry) { if (Interrupt != null) Interrupt(entry); } + internal void OnEnd (TrackEntry entry) { if (End != null) End(entry); } + internal void OnDispose (TrackEntry entry) { if (Dispose != null) Dispose(entry); } + internal void OnComplete (TrackEntry entry) { if (Complete != null) Complete(entry); } + internal void OnEvent (TrackEntry entry, Event e) { if (Event != null) Event(entry, e); } } + /// State for the playback of an animation. public class TrackEntry { - internal TrackEntry next, previous; internal Animation animation; - internal bool loop; - internal float delay, time, lastTime = -1, endTime, timeScale = 1; - internal float mixTime, mixDuration, mix = 1; + internal TrackEntry next, mixingFrom; + internal int trackIndex; + + internal bool loop; + internal float eventThreshold, attachmentThreshold, drawOrderThreshold; + internal float animationStart, animationEnd, animationLast, nextAnimationLast; + internal float delay, trackTime, trackLast, nextTrackLast, trackEnd, timeScale = 1f; + internal float alpha, mixTime, mixDuration, mixAlpha; + internal readonly ExposedList timelinesFirst = new ExposedList(), timelinesLast = new ExposedList(); + internal readonly ExposedList timelinesRotation = new ExposedList(); + + /// The index of the track where this entry is either current or queued. + public int TrackIndex { get { return trackIndex; } } + + /// The animation to apply for this track entry. public Animation Animation { get { return animation; } } - public float Delay { get { return delay; } set { delay = value; } } - public float Time { get { return time; } set { time = value; } } - public float LastTime { get { return lastTime; } set { lastTime = value; } } - public float EndTime { get { return endTime; } set { endTime = value; } } - public float TimeScale { get { return timeScale; } set { timeScale = value; } } - public float Mix { get { return mix; } set { mix = value; } } + + /// + /// If true, the animation will repeat. If false, it will not, instead its last frame is applied if played beyond its duration. public bool Loop { get { return loop; } set { loop = value; } } - public event AnimationState.StartEndDelegate Start; - public event AnimationState.StartEndDelegate End; - public event AnimationState.EventDelegate Event; - public event AnimationState.CompleteDelegate Complete; + /// + /// Seconds to postpone playing the animation. When a track entry is the current track entry, delay postpones incrementing + /// the track time. When a track entry is queued, delay is the time from the start of the previous animation to when the + /// track entry will become the current track entry. + public float Delay { get { return delay; } set { delay = value; } } - internal void OnStart (AnimationState state, int index) { - if (Start != null) Start(state, index); + /// + /// Current time in seconds this track entry has been the current track entry. The track time determines + /// . The track time can be set to start the animation at a time other than 0, without affecting looping. + public float TrackTime { get { return trackTime; } set { trackTime = value; } } + + /// + /// The track time in seconds when this animation will be removed from the track. Defaults to the animation duration for + /// non-looping animations and to for looping animations. If the track end time is reached and no + /// other animations are queued for playback, and mixing from any previous animations is complete, then the track is cleared, + /// leaving skeletons in their previous pose. + /// + /// It may be desired to use to mix the skeletons back to the + /// setup pose, rather than leaving them in their previous pose. + /// + public float TrackEnd { get { return trackEnd; } set { trackEnd = value; } } + + /// + /// Seconds when this animation starts, both initially and after looping. Defaults to 0. + /// + /// When changing the animation start time, it often makes sense to set to the same value to + /// prevent timeline keys before the start time from triggering. + /// + public float AnimationStart { get { return animationStart; } set { animationStart = value; } } + + /// + /// Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will + /// loop back to at this time. Defaults to the animation duration. + public float AnimationEnd { get { return animationEnd; } } + + /// + /// The time in seconds this animation was last applied. Some timelines use this for one-time triggers. Eg, when this + /// animation is applied, event timelines will fire all events between the animation last time (exclusive) and animation time + /// (inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation is applied. + public float AnimationLast { + get { return animationLast; } + set { + animationLast = value; + nextAnimationLast = value; + } } - internal void OnEnd (AnimationState state, int index) { - if (End != null) End(state, index); + /// + /// Uses to compute the animation time between . and + /// . When the track time is 0, the animation time is equal to the animation start time. + /// + public float AnimationTime { + get { + if (loop) { + float duration = animationEnd - animationStart; + if (duration == 0) return animationStart; + return (trackTime % duration) + animationStart; + } + return Math.Min(trackTime + animationStart, animationEnd); + } } - internal void OnEvent (AnimationState state, int index, Event e) { - if (Event != null) Event(state, index, e); + /// + /// Multiplier for the delta time when the animation state is updated, causing time for this animation to play slower or + /// faster. Defaults to 1. + /// + public float TimeScale { get { return timeScale; } set { timeScale = value; } } + + /// + /// Values less than 1 mix this animation with the last skeleton pose. Defaults to 1, which overwrites the last skeleton pose with + /// this animation. + /// + /// Typically track 0 is used to completely pose the skeleton, then alpha can be used on higher tracks. It doesn't make sense + /// to use alpha on track 0 if the skeleton pose is from the last frame render. + /// + public float Alpha { get { return alpha; } set { alpha = value; } } + + /// + /// When the mix percentage (mix time / mix duration) is less than the event threshold, event timelines for the animation + /// being mixed out will be applied. Defaults to 0, so event timelines are not applied for an animation being mixed out. + public float EventThreshold { get { return eventThreshold; } set { eventThreshold = value; } } + + /// + /// When the mix percentage (mix time / mix duration) is less than the attachment threshold, attachment timelines for the + /// animation being mixed out will be applied. Defaults to 0, so attachment timelines are not applied for an animation being + /// mixed out. + public float AttachmentThreshold { get { return attachmentThreshold; } set { attachmentThreshold = value; } } + + /// + /// When the mix percentage (mix time / mix duration) is less than the draw order threshold, draw order timelines for the + /// animation being mixed out will be applied. Defaults to 0, so draw order timelines are not applied for an animation being + /// mixed out. + /// + public float DrawOrderThreshold { get { return drawOrderThreshold; } set { drawOrderThreshold = value; } } + + /// + /// The animation queued to start after this animation, or null. + public TrackEntry Next { get { return next; } } + + /// + /// Returns true if at least one loop has been completed. + public bool IsComplete { + get { return trackTime >= animationEnd - animationStart; } } - internal void OnComplete (AnimationState state, int index, int loopCount) { - if (Complete != null) Complete(state, index, loopCount); + /// + /// Seconds from 0 to the mix duration when mixing from the previous animation to this animation. May be slightly more than + /// . + public float MixTime { get { return mixTime; } set { mixTime = value; } } + + /// + /// Seconds for mixing from the previous animation to this animation. Defaults to the value provided by + /// based on the animation before this animation (if any). + /// + /// The mix duration must be set before is next called. + /// + public float MixDuration { get { return mixDuration; } set { mixDuration = value; } } + + /// + /// The track entry for the previous animation when mixing from the previous animation to this animation, or null if no + /// mixing is currently occuring. + public TrackEntry MixingFrom { get { return mixingFrom; } } + + public event AnimationState.TrackEntryDelegate Start, Interrupt, End, Dispose, Complete; + public event AnimationState.TrackEntryEventDelegate Event; + internal void OnStart () { if (Start != null) Start(this); } + internal void OnInterrupt () { if (Interrupt != null) Interrupt(this); } + internal void OnEnd () { if (End != null) End(this); } + internal void OnDispose () { if (Dispose != null) Dispose(this); } + internal void OnComplete () { if (Complete != null) Complete(this); } + internal void OnEvent (Event e) { if (Event != null) Event(this, e); } + + /// + /// Resets the rotation directions for mixing this entry's rotate timelines. This can be useful to avoid bones rotating the + /// long way around when using and starting animations on other tracks. + /// + /// Mixing involves finding a rotation between two others, which has two possible solutions: the short way or the long way around. + /// The two rotations likely change over time, so which direction is the short or long way also changes. + /// If the short way was always chosen, bones would flip to the other side when that direction became the long way. + /// TrackEntry chooses the short way the first time it is applied and remembers that direction. + public void ResetRotationDirections () { + timelinesRotation.Clear(); } override public String ToString () { return animation == null ? "" : animation.name; } } + + class EventQueue { + private readonly ExposedList eventQueueEntries = new ExposedList(); + public bool drainDisabled; + + private readonly AnimationState state; + public event Action AnimationsChanged; + + public EventQueue (AnimationState state, Action HandleAnimationsChanged) { + this.state = state; + this.AnimationsChanged += HandleAnimationsChanged; + } + + struct EventQueueEntry { + public EventType type; + public TrackEntry entry; + public Event e; + + public EventQueueEntry (EventType eventType, TrackEntry trackEntry, Event e = null) { + this.type = eventType; + this.entry = trackEntry; + this.e = e; + } + } + + enum EventType { + Start, Interrupt, End, Dispose, Complete, Event + } + + public void Start (TrackEntry entry) { + eventQueueEntries.Add(new EventQueueEntry(EventType.Start, entry)); + if (AnimationsChanged != null) AnimationsChanged(); + } + + public void Interrupt (TrackEntry entry) { + eventQueueEntries.Add(new EventQueueEntry(EventType.Interrupt, entry)); + } + + public void End (TrackEntry entry) { + eventQueueEntries.Add(new EventQueueEntry(EventType.End, entry)); + if (AnimationsChanged != null) AnimationsChanged(); + } + + public void Dispose (TrackEntry entry) { + eventQueueEntries.Add(new EventQueueEntry(EventType.Dispose, entry)); + } + + public void Complete (TrackEntry entry) { + eventQueueEntries.Add(new EventQueueEntry(EventType.Complete, entry)); + } + + public void Event (TrackEntry entry, Event e) { + eventQueueEntries.Add(new EventQueueEntry(EventType.Event, entry, e)); + } + + public void Drain () { + if (drainDisabled) return; + drainDisabled = true; + + var entries = this.eventQueueEntries; + var entriesItems = entries.Items; + AnimationState state = this.state; + + for (int i = 0, n = entries.Count; i < n; i++) { + var queueEntry = entriesItems[i]; + TrackEntry trackEntry = queueEntry.entry; + + switch (queueEntry.type) { + case EventType.Start: + trackEntry.OnStart(); + state.OnStart(trackEntry); + break; + case EventType.Interrupt: + trackEntry.OnInterrupt(); + state.OnInterrupt(trackEntry); + break; + case EventType.End: + trackEntry.OnEnd(); + state.OnEnd(trackEntry); + goto case EventType.Dispose; // Fall through. (C#) + case EventType.Dispose: + trackEntry.OnDispose(); + state.OnDispose(trackEntry); + break; + case EventType.Complete: + trackEntry.OnComplete(); + state.OnComplete(trackEntry); + break; + case EventType.Event: + trackEntry.OnEvent(queueEntry.e); + state.OnEvent(trackEntry, queueEntry.e); + break; + } + } + eventQueueEntries.Clear(); + + drainDisabled = false; + } + + public void Clear () { + eventQueueEntries.Clear(); + } + } } diff --git a/spine-csharp/src/AnimationStateData.cs b/spine-csharp/src/AnimationStateData.cs index c3350e347..77250d4f7 100644 --- a/spine-csharp/src/AnimationStateData.cs +++ b/spine-csharp/src/AnimationStateData.cs @@ -34,7 +34,8 @@ using System.Collections.Generic; namespace Spine { public class AnimationStateData { internal SkeletonData skeletonData; - private Dictionary animationToMixTime = new Dictionary(AnimationPairComparer.Instance); + + readonly Dictionary animationToMixTime = new Dictionary(AnimationPairComparer.Instance); internal float defaultMix; public SkeletonData SkeletonData { get { return skeletonData; } } @@ -62,6 +63,8 @@ namespace Spine { } public float GetMix (Animation from, Animation to) { + if (from == null) throw new ArgumentNullException("from", "from cannot be null."); + if (to == null) throw new ArgumentNullException("to", "to cannot be null."); AnimationPair key = new AnimationPair(from, to); float duration; if (animationToMixTime.TryGetValue(key, out duration)) return duration; @@ -76,6 +79,10 @@ namespace Spine { this.a1 = a1; this.a2 = a2; } + + public override string ToString () { + return a1.name + "->" + a2.name; + } } // Avoids boxing in the dictionary. diff --git a/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs b/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs index e184eeb2f..345282847 100644 --- a/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs +++ b/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs @@ -71,7 +71,7 @@ namespace Spine { attachment.regionOriginalWidth = region.originalWidth; attachment.regionOriginalHeight = region.originalHeight; return attachment; - } + } public BoundingBoxAttachment NewBoundingBoxAttachment (Skin skin, String name) { return new BoundingBoxAttachment(name); diff --git a/spine-csharp/src/Attachments/PathAttachment.cs b/spine-csharp/src/Attachments/PathAttachment.cs index 0ead00e79..b084de4ee 100644 --- a/spine-csharp/src/Attachments/PathAttachment.cs +++ b/spine-csharp/src/Attachments/PathAttachment.cs @@ -43,6 +43,6 @@ namespace Spine { public PathAttachment (String name) : base(name) { - } + } } } diff --git a/spine-csharp/src/Attachments/RegionAttachment.cs b/spine-csharp/src/Attachments/RegionAttachment.cs index 6db406b6e..145ce486f 100644 --- a/spine-csharp/src/Attachments/RegionAttachment.cs +++ b/spine-csharp/src/Attachments/RegionAttachment.cs @@ -135,8 +135,7 @@ namespace Spine { } public void ComputeWorldVertices (Bone bone, float[] worldVertices) { - Skeleton skeleton = bone.skeleton; - float x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; + float x = bone.worldX, y = bone.worldY; float a = bone.a, b = bone.b, c = bone.c, d = bone.d; float[] offset = this.offset; worldVertices[X1] = offset[X1] * a + offset[Y1] * b + x; diff --git a/spine-csharp/src/Attachments/VertexAttachment.cs b/spine-csharp/src/Attachments/VertexAttachment.cs index 04458a948..ffdcd9b28 100644 --- a/spine-csharp/src/Attachments/VertexAttachment.cs +++ b/spine-csharp/src/Attachments/VertexAttachment.cs @@ -50,18 +50,21 @@ namespace Spine { ComputeWorldVertices(slot, 0, worldVerticesLength, worldVertices, 0); } + /// Transforms local vertices to world coordinates. + /// The index of the first value to transform. Each vertex has 2 values, x and y. + /// The number of world vertex values to output. Must be less than or equal to - start. + /// The output world vertices. Must have a length greater than or equal to + . + /// The index to begin writing values. public void ComputeWorldVertices (Slot slot, int start, int count, float[] worldVertices, int offset) { count += offset; Skeleton skeleton = slot.Skeleton; - float x = skeleton.x, y = skeleton.y; var deformArray = slot.attachmentVertices; float[] vertices = this.vertices; int[] bones = this.bones; if (bones == null) { if (deformArray.Count > 0) vertices = deformArray.Items; Bone bone = slot.bone; - x += bone.worldX; - y += bone.worldY; + float x = bone.worldX, y = bone.worldY; float a = bone.a, b = bone.b, c = bone.c, d = bone.d; for (int vv = start, w = offset; w < count; vv += 2, w += 2) { float vx = vertices[vv], vy = vertices[vv + 1]; @@ -79,7 +82,7 @@ namespace Spine { Bone[] skeletonBones = skeleton.Bones.Items; if (deformArray.Count == 0) { for (int w = offset, b = skip * 3; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3) { @@ -94,7 +97,7 @@ namespace Spine { } else { float[] deform = deformArray.Items; for (int w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3, f += 2) { @@ -112,6 +115,6 @@ namespace Spine { /// Returns true if a deform originally applied to the specified attachment should be applied to this attachment. virtual public bool ApplyDeform (VertexAttachment sourceAttachment) { return this == sourceAttachment; - } + } } } diff --git a/spine-csharp/src/Bone.cs b/spine-csharp/src/Bone.cs index b588a9b5f..c760ec6ff 100644 --- a/spine-csharp/src/Bone.cs +++ b/spine-csharp/src/Bone.cs @@ -39,11 +39,15 @@ namespace Spine { internal Bone parent; internal ExposedList children = new ExposedList(); internal float x, y, rotation, scaleX, scaleY, shearX, shearY; - internal float appliedRotation; + internal float ax, ay, arotation, ascaleX, ascaleY, ashearX, ashearY; + internal bool appliedValid; internal float a, b, worldX; internal float c, d, worldY; - internal float worldSignX, worldSignY; + +// internal float worldSignX, worldSignY; +// public float WorldSignX { get { return worldSignX; } } +// public float WorldSignY { get { return worldSignY; } } internal bool sorted; @@ -55,7 +59,7 @@ namespace Spine { public float Y { get { return y; } set { y = value; } } public float Rotation { get { return rotation; } set { rotation = value; } } /// The rotation, as calculated by any constraints. - public float AppliedRotation { get { return appliedRotation; } set { appliedRotation = value; } } + public float AppliedRotation { get { return arotation; } set { arotation = value; } } public float ScaleX { get { return scaleX; } set { scaleX = value; } } public float ScaleY { get { return scaleY; } set { scaleY = value; } } public float ShearX { get { return shearX; } set { shearX = value; } } @@ -67,12 +71,13 @@ namespace Spine { public float D { get { return d; } } public float WorldX { get { return worldX; } } public float WorldY { get { return worldY; } } - public float WorldSignX { get { return worldSignX; } } - public float WorldSignY { get { return worldSignY; } } - public float WorldRotationX { get { return MathUtils.Atan2(c, a) * MathUtils.radDeg; } } - public float WorldRotationY { get { return MathUtils.Atan2(d, b) * MathUtils.radDeg; } } - public float WorldScaleX { get { return (float)Math.Sqrt(a * a + c * c) * worldSignX; } } - public float WorldScaleY { get { return (float)Math.Sqrt(b * b + d * d) * worldSignY; } } + public float WorldRotationX { get { return MathUtils.Atan2(c, a) * MathUtils.RadDeg; } } + public float WorldRotationY { get { return MathUtils.Atan2(d, b) * MathUtils.RadDeg; } } + + /// Returns the magnitide (always positive) of the world scale X. + public float WorldScaleX { get { return (float)Math.Sqrt(a * a + c * c); } } + /// Returns the magnitide (always positive) of the world scale Y. + public float WorldScaleY { get { return (float)Math.Sqrt(b * b + d * d); } } /// May be null. public Bone (BoneData data, Skeleton skeleton, Bone parent) { @@ -96,15 +101,23 @@ namespace Spine { /// Computes the world transform using the parent bone and the specified local transform. public void UpdateWorldTransform (float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY) { - appliedRotation = rotation; - - float rotationY = rotation + 90 + shearY; - float la = MathUtils.CosDeg(rotation + shearX) * scaleX, lb = MathUtils.CosDeg(rotationY) * scaleY; - float lc = MathUtils.SinDeg(rotation + shearX) * scaleX, ld = MathUtils.SinDeg(rotationY) * scaleY; + ax = x; + ay = y; + arotation = rotation; + ascaleX = scaleX; + ascaleY = scaleY; + ashearX = shearX; + ashearY = shearY; + appliedValid = true; + Skeleton skeleton = this.skeleton; Bone parent = this.parent; if (parent == null) { // Root bone. - Skeleton skeleton = this.skeleton; + float rotationY = rotation + 90 + shearY; + float la = MathUtils.CosDeg(rotation + shearX) * scaleX; + float lb = MathUtils.CosDeg(rotationY) * scaleY; + float lc = MathUtils.SinDeg(rotation + shearX) * scaleX; + float ld = MathUtils.SinDeg(rotationY) * scaleY; if (skeleton.flipX) { x = -x; la = -la; @@ -119,92 +132,101 @@ namespace Spine { b = lb; c = lc; d = ld; - worldX = x; - worldY = y; - worldSignX = Math.Sign(scaleX); - worldSignY = Math.Sign(scaleY); + worldX = x + skeleton.x; + worldY = y + skeleton.y; +// worldSignX = Math.Sign(scaleX); +// worldSignY = Math.Sign(scaleY); return; } float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; worldX = pa * x + pb * y + parent.worldX; worldY = pc * x + pd * y + parent.worldY; - worldSignX = parent.worldSignX * Math.Sign(scaleX); - worldSignY = parent.worldSignY * Math.Sign(scaleY); +// worldSignX = parent.worldSignX * Math.Sign(scaleX); +// worldSignY = parent.worldSignY * Math.Sign(scaleY); - if (data.inheritRotation && data.inheritScale) { - a = pa * la + pb * lc; - b = pa * lb + pb * ld; - c = pc * la + pd * lc; - d = pc * lb + pd * ld; - } else { - if (data.inheritRotation) { // No scale inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - float cos = MathUtils.CosDeg(parent.appliedRotation), sin = MathUtils.SinDeg(parent.appliedRotation); - float temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritRotation) break; - parent = parent.parent; - } while (parent != null); + switch (data.transformMode) { + case TransformMode.Normal: { + float rotationY = rotation + 90 + shearY; + float la = MathUtils.CosDeg(rotation + shearX) * scaleX; + float lb = MathUtils.CosDeg(rotationY) * scaleY; + float lc = MathUtils.SinDeg(rotation + shearX) * scaleX; + float ld = MathUtils.SinDeg(rotationY) * scaleY; a = pa * la + pb * lc; b = pa * lb + pb * ld; c = pc * la + pd * lc; d = pc * lb + pd * ld; - } else if (data.inheritScale) { // No rotation inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - float cos = MathUtils.CosDeg(parent.appliedRotation), sin = MathUtils.SinDeg(parent.appliedRotation); - float psx = parent.scaleX, psy = parent.scaleY; - float za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - float temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - - if (psx >= 0) sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritScale) break; - parent = parent.parent; - } while (parent != null); - a = pa * la + pb * lc; - b = pa * lb + pb * ld; + return; + } + case TransformMode.OnlyTranslation: { + float rotationY = rotation + 90 + shearY; + a = MathUtils.CosDeg(rotation + shearX) * scaleX; + b = MathUtils.CosDeg(rotationY) * scaleY; + c = MathUtils.SinDeg(rotation + shearX) * scaleX; + d = MathUtils.SinDeg(rotationY) * scaleY; + break; + } + case TransformMode.NoRotationOrReflection: { + float s = pa * pa + pc * pc, prx; + if (s > 0.0001f) { + s = Math.Abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = MathUtils.Atan2(pc, pa) * MathUtils.RadDeg; + } else { + pa = 0; + pc = 0; + prx = 90 - MathUtils.Atan2(pd, pb) * MathUtils.RadDeg; + } + float rx = rotation + shearX - prx; + float ry = rotation + shearY - prx + 90; + float la = MathUtils.CosDeg(rx) * scaleX; + float lb = MathUtils.CosDeg(ry) * scaleY; + float lc = MathUtils.SinDeg(rx) * scaleX; + float ld = MathUtils.SinDeg(ry) * scaleY; + a = pa * la - pb * lc; + b = pa * lb - pb * ld; c = pc * la + pd * lc; d = pc * lb + pd * ld; - } else { - a = la; - b = lb; - c = lc; - d = ld; + break; } - if (skeleton.flipX) { - a = -a; - b = -b; - } - if (skeleton.flipY != yDown) { - c = -c; - d = -d; + case TransformMode.NoScale: + case TransformMode.NoScaleOrReflection: { + float cos = MathUtils.CosDeg(rotation), sin = MathUtils.SinDeg(rotation); + float za = pa * cos + pb * sin; + float zc = pc * cos + pd * sin; + float s = (float)Math.Sqrt(za * za + zc * zc); + if (s > 0.00001f) s = 1 / s; + za *= s; + zc *= s; + s = (float)Math.Sqrt(za * za + zc * zc); + float r = MathUtils.PI / 2 + MathUtils.Atan2(zc, za); + float zb = MathUtils.Cos(r) * s; + float zd = MathUtils.Sin(r) * s; + float la = MathUtils.CosDeg(shearX) * scaleX; + float lb = MathUtils.CosDeg(90 + shearY) * scaleY; + float lc = MathUtils.SinDeg(shearX) * scaleX; + float ld = MathUtils.SinDeg(90 + shearY) * scaleY; + a = za * la + zb * lc; + b = za * lb + zb * ld; + c = zc * la + zd * lc; + d = zc * lb + zd * ld; + if (data.transformMode != TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : skeleton.flipX != skeleton.flipY) { + b = -b; + d = -d; + } + return; } } + + if (skeleton.flipX) { + a = -a; + b = -b; + } + if (skeleton.flipY) { + c = -c; + d = -d; + } } public void SetToSetupPose () { @@ -221,18 +243,18 @@ namespace Spine { public float WorldToLocalRotationX { get { Bone parent = this.parent; - if (parent == null) return rotation; + if (parent == null) return arotation; float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; - return MathUtils.Atan2(pa * c - pc * a, pd * a - pb * c) * MathUtils.radDeg; + return MathUtils.Atan2(pa * c - pc * a, pd * a - pb * c) * MathUtils.RadDeg; } } public float WorldToLocalRotationY { get { Bone parent = this.parent; - if (parent == null) return rotation; + if (parent == null) return arotation; float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; - return MathUtils.Atan2(pa * d - pc * b, pd * b - pb * d) * MathUtils.radDeg; + return MathUtils.Atan2(pa * d - pc * b, pd * b - pb * d) * MathUtils.RadDeg; } } @@ -243,33 +265,33 @@ namespace Spine { this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + appliedValid = false; } /// - /// Computes the local transform from the world transform. This can be useful to perform processing on the local transform - /// after the world transform has been modified directly (eg, by a constraint). + /// Computes the individual applied transform values from the world transform. This can be useful to perform processing using + /// the applied transform after the world transform has been modified directly (eg, by a constraint).. /// - /// Some redundant information is lost by the world transform, such as -1,-1 scale versus 180 rotation. The computed local - /// transform values may differ from the original values but are functionally the same. + /// Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. /// - public void UpdateLocalTransform () { + internal void UpdateAppliedTransform () { + appliedValid = true; Bone parent = this.parent; if (parent == null) { - x = worldX; - y = worldY; - rotation = MathUtils.Atan2(c, a) * MathUtils.radDeg; - scaleX = (float)Math.Sqrt(a * a + c * c); - scaleY = (float)Math.Sqrt(b * b + d * d); - float det = a * d - b * c; - shearX = 0; - shearY = MathUtils.Atan2(a * b + c * d, det) * MathUtils.radDeg; + ax = worldX; + ay = worldY; + arotation = MathUtils.Atan2(c, a) * MathUtils.RadDeg; + ascaleX = (float)Math.Sqrt(a * a + c * c); + ascaleY = (float)Math.Sqrt(b * b + d * d); + ashearX = 0; + ashearY = MathUtils.Atan2(a * b + c * d, a * d - b * c) * MathUtils.RadDeg; return; } float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; float pid = 1 / (pa * pd - pb * pc); float dx = worldX - parent.worldX, dy = worldY - parent.worldY; - x = (dx * pd * pid - dy * pb * pid); - y = (dy * pa * pid - dx * pc * pid); + ax = (dx * pd * pid - dy * pb * pid); + ay = (dy * pa * pid - dx * pc * pid); float ia = pid * pd; float id = pid * pa; float ib = pid * pb; @@ -278,23 +300,22 @@ namespace Spine { float rb = ia * b - ib * d; float rc = id * c - ic * a; float rd = id * d - ic * b; - shearX = 0; - scaleX = (float)Math.Sqrt(ra * ra + rc * rc); - if (scaleX > 0.0001f) { + ashearX = 0; + ascaleX = (float)Math.Sqrt(ra * ra + rc * rc); + if (ascaleX > 0.0001f) { float det = ra * rd - rb * rc; - scaleY = det / scaleX; - shearY = MathUtils.Atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; - rotation = MathUtils.Atan2(rc, ra) * MathUtils.radDeg; + ascaleY = det / ascaleX; + ashearY = MathUtils.Atan2(ra * rb + rc * rd, det) * MathUtils.RadDeg; + arotation = MathUtils.Atan2(rc, ra) * MathUtils.RadDeg; } else { - scaleX = 0; - scaleY = (float)Math.Sqrt(rb * rb + rd * rd); - shearY = 0; - rotation = 90 - MathUtils.Atan2(rd, rb) * MathUtils.radDeg; + ascaleX = 0; + ascaleY = (float)Math.Sqrt(rb * rb + rd * rd); + ashearY = 0; + arotation = 90 - MathUtils.Atan2(rd, rb) * MathUtils.RadDeg; } - appliedRotation = rotation; } - public void WorldToLocal (float worldX, float worldY, out float localX, out float localY) { + public void WorldToLocal (float worldX, float worldY, out float localX, out float localY) { float a = this.a, b = this.b, c = this.c, d = this.d; float invDet = 1 / (a * d - b * c); float x = worldX - this.worldX, y = worldY - this.worldY; diff --git a/spine-csharp/src/BoneData.cs b/spine-csharp/src/BoneData.cs index 1e2b8a6c6..3933374fd 100644 --- a/spine-csharp/src/BoneData.cs +++ b/spine-csharp/src/BoneData.cs @@ -37,7 +37,8 @@ namespace Spine { internal BoneData parent; internal float length; internal float x, y, rotation, scaleX = 1, scaleY = 1, shearX, shearY; - internal bool inheritRotation = true, inheritScale = true; + internal TransformMode transformMode = TransformMode.Normal; + //internal bool inheritRotation = true, inheritScale = true; /// May be null. public int Index { get { return index; } } @@ -51,8 +52,10 @@ namespace Spine { public float ScaleY { get { return scaleY; } set { scaleY = value; } } public float ShearX { get { return shearX; } set { shearX = value; } } public float ShearY { get { return shearY; } set { shearY = value; } } - public bool InheritRotation { get { return inheritRotation; } set { inheritRotation = value; } } - public bool InheritScale { get { return inheritScale; } set { inheritScale = value; } } + public TransformMode TransformMode { get { return transformMode; } set { transformMode = value; } } +// public bool InheritRotation { get { return inheritRotation; } set { inheritRotation = value; } } +// public bool InheritScale { get { return inheritScale; } set { inheritScale = value; } } + /// May be null. public BoneData (int index, String name, BoneData parent) { @@ -67,4 +70,14 @@ namespace Spine { return name; } } + + [Flags] + public enum TransformMode { + //0000 0FSR + Normal = 0, // 0000 + OnlyTranslation = 7, // 0111 + NoRotationOrReflection = 1, // 0001 + NoScale = 2, // 0010 + NoScaleOrReflection = 6, // 0110 + } } diff --git a/spine-csharp/src/Event.cs b/spine-csharp/src/Event.cs index 71c6da50b..9d1df7497 100644 --- a/spine-csharp/src/Event.cs +++ b/spine-csharp/src/Event.cs @@ -32,20 +32,26 @@ using System; namespace Spine { public class Event { - public EventData Data { get; private set; } - public int Int { get; set; } - public float Float { get; set; } - public String String { get; set; } - public float Time { get; private set; } + internal readonly EventData data; + internal readonly float time; + internal int intValue; + internal float floatValue; + internal string stringValue; + + public EventData Data { get { return data; } } + public float Time { get { return time; } } + public int Int { get { return intValue; } set { intValue = value; } } + public float Float { get { return floatValue; } set { floatValue = value; } } + public String String { get { return stringValue; } set { stringValue = value; } } public Event (float time, EventData data) { if (data == null) throw new ArgumentNullException("data", "data cannot be null."); - Time = time; - Data = data; + this.time = time; + this.data = data; } - override public String ToString () { - return Data.Name; + override public string ToString () { + return this.data.Name; } } } diff --git a/spine-csharp/src/ExposedList.cs b/spine-csharp/src/ExposedList.cs index a24db4a93..421c6a2c3 100644 --- a/spine-csharp/src/ExposedList.cs +++ b/spine-csharp/src/ExposedList.cs @@ -95,6 +95,15 @@ namespace Spine { return this; } + public void EnsureCapacity (int min) { + if (Items.Length < min) { + int newCapacity = Items.Length == 0 ? DefaultCapacity : Items.Length * 2; + //if ((uint)newCapacity > Array.MaxArrayLength) newCapacity = Array.MaxArrayLength; + if (newCapacity < min) newCapacity = min; + Capacity = newCapacity; + } + } + private void CheckRange (int idx, int count) { if (idx < 0) throw new ArgumentOutOfRangeException("index"); @@ -182,6 +191,8 @@ namespace Spine { Array.Copy(Items, index, array, arrayIndex, count); } + + public bool Exists (Predicate match) { CheckMatch(match); return GetIndex(0, Count, match) != -1; diff --git a/spine-csharp/src/IConstraint.cs b/spine-csharp/src/IConstraint.cs new file mode 100644 index 000000000..25f375049 --- /dev/null +++ b/spine-csharp/src/IConstraint.cs @@ -0,0 +1,5 @@ +namespace Spine { + public interface IConstraint : IUpdatable { + int Order { get; } + } +} \ No newline at end of file diff --git a/spine-csharp/src/IkConstraint.cs b/spine-csharp/src/IkConstraint.cs index 2c3b4d833..a9822bfb6 100644 --- a/spine-csharp/src/IkConstraint.cs +++ b/spine-csharp/src/IkConstraint.cs @@ -31,16 +31,15 @@ using System; namespace Spine { - public class IkConstraint : IUpdatable { + public class IkConstraint : IConstraint { internal IkConstraintData data; internal ExposedList bones = new ExposedList(); internal Bone target; internal float mix; internal int bendDirection; - internal int level; - public IkConstraintData Data { get { return data; } } + public int Order { get { return data.order; } } public ExposedList Bones { get { return bones; } } public Bone Target { get { return target; } set { target = value; } } public int BendDirection { get { return bendDirection; } set { bendDirection = value; } } @@ -83,17 +82,18 @@ namespace Spine { /// Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified /// in the world coordinate system. static public void Apply (Bone bone, float targetX, float targetY, float alpha) { - Bone pp = bone.parent; - float id = 1 / (pp.a * pp.d - pp.b * pp.c); - float x = targetX - pp.worldX, y = targetY - pp.worldY; - float tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - float rotationIK = MathUtils.Atan2(ty, tx) * MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) rotationIK += 180; + if (!bone.appliedValid) bone.UpdateAppliedTransform(); + Bone p = bone.parent; + float id = 1 / (p.a * p.d - p.b * p.c); + float x = targetX - p.worldX, y = targetY - p.worldY; + float tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + float rotationIK = MathUtils.Atan2(ty, tx) * MathUtils.RadDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; - bone.UpdateWorldTransform(bone.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, - bone.shearX, bone.shearY); + bone.UpdateWorldTransform(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, + bone.ashearY); } /// Adjusts the parent and child bone rotations so the tip of the child is as close to the target position as @@ -104,7 +104,10 @@ namespace Spine { child.UpdateWorldTransform (); return; } - float px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + //float px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + if (!parent.appliedValid) parent.UpdateAppliedTransform(); + if (!child.appliedValid) child.UpdateAppliedTransform(); + float px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; int os1, os2, s2; if (psx < 0) { psx = -psx; @@ -123,14 +126,14 @@ namespace Spine { os2 = 180; } else os2 = 0; - float cx = child.x, cy, cwx, cwy, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + float cx = child.ax, cy, cwx, cwy, a = parent.a, b = parent.b, c = parent.c, d = parent.d; bool u = Math.Abs(psx - psy) <= 0.0001f; if (!u) { cy = 0; cwx = a * cx + parent.worldX; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -217,18 +220,18 @@ namespace Spine { } outer: float os = MathUtils.Atan2(cy, cx) * s2; - float rotation = parent.rotation; - a1 = (a1 - os) * MathUtils.radDeg + os1 - rotation; + float rotation = parent.arotation; + a1 = (a1 - os) * MathUtils.RadDeg + os1 - rotation; if (a1 > 180) a1 -= 360; else if (a1 < -180) a1 += 360; - parent.UpdateWorldTransform(px, py, rotation + a1 * alpha, parent.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + parent.UpdateWorldTransform(px, py, rotation + a1 * alpha, parent.scaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * MathUtils.RadDeg - child.ashearX) * s2 + os2 - rotation; if (a2 > 180) a2 -= 360; else if (a2 < -180) a2 += 360; - child.UpdateWorldTransform(cx, cy, rotation + a2 * alpha, child.scaleX, child.scaleY, child.shearX, child.shearY); + child.UpdateWorldTransform(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); } } } diff --git a/spine-csharp/src/IkConstraintData.cs b/spine-csharp/src/IkConstraintData.cs index fc7591290..52ae64664 100644 --- a/spine-csharp/src/IkConstraintData.cs +++ b/spine-csharp/src/IkConstraintData.cs @@ -34,12 +34,14 @@ using System.Collections.Generic; namespace Spine { public class IkConstraintData { internal String name; + internal int order; internal List bones = new List(); internal BoneData target; internal int bendDirection = 1; internal float mix = 1; public String Name { get { return name; } } + public int Order { get { return order; } set { order = value; } } public List Bones { get { return bones; } } public BoneData Target { get { return target; } set { target = value; } } public int BendDirection { get { return bendDirection; } set { bendDirection = value; } } diff --git a/spine-csharp/src/Json.cs b/spine-csharp/src/Json.cs index 3534339ea..8dd10604b 100644 --- a/spine-csharp/src/Json.cs +++ b/spine-csharp/src/Json.cs @@ -54,7 +54,7 @@ namespace Spine { * * Changes made: * - * - Optimized parser speed (deserialize roughly near 3x faster than original) + * - Optimized parser speed (deserialize roughly near 3x faster than original) * - Added support to handle lexer/parser error messages with line numbers * - Added more fine grained control over type conversions during the parsing * - Refactory API (Separate Lexer code from Parser code and the Encoder from Decoder) @@ -133,19 +133,19 @@ namespace SharpJson { int idx = 0; StringBuilder builder = null; - + SkipWhiteSpaces(); - + // " char c = json[index++]; - + bool failed = false; bool complete = false; - + while (!complete && !failed) { if (index == json.Length) break; - + c = json[index++]; if (c == '"') { complete = true; @@ -153,9 +153,9 @@ namespace SharpJson } else if (c == '\\') { if (index == json.Length) break; - + c = json[index++]; - + switch (c) { case '"': stringBuffer[idx++] = '"'; @@ -185,10 +185,10 @@ namespace SharpJson int remainingLength = json.Length - index; if (remainingLength >= 4) { var hex = new string(json, index, 4); - + // XXX: handle UTF stringBuffer[idx++] = (char) Convert.ToInt32(hex, 16); - + // skip 4 chars index += 4; } else { @@ -199,38 +199,38 @@ namespace SharpJson } else { stringBuffer[idx++] = c; } - + if (idx >= stringBuffer.Length) { if (builder == null) builder = new StringBuilder(); - + builder.Append(stringBuffer, 0, idx); idx = 0; } } - + if (!complete) { success = false; return null; } - + if (builder != null) return builder.ToString (); else return new string (stringBuffer, 0, idx); } - + string GetNumberString() { SkipWhiteSpaces(); int lastIndex = GetLastIndexOfNumber(index); int charLength = (lastIndex - index) + 1; - + var result = new string (json, index, charLength); - + index = lastIndex + 1; - + return result; } @@ -238,10 +238,10 @@ namespace SharpJson { float number; var str = GetNumberString (); - + if (!float.TryParse (str, NumberStyles.Float, CultureInfo.InvariantCulture, out number)) return 0; - + return number; } @@ -249,24 +249,25 @@ namespace SharpJson { double number; var str = GetNumberString (); - + if (!double.TryParse(str, NumberStyles.Any, CultureInfo.InvariantCulture, out number)) return 0; - + return number; } - + int GetLastIndexOfNumber(int index) { int lastIndex; - + for (lastIndex = index; lastIndex < json.Length; lastIndex++) { char ch = json[lastIndex]; - - if ((ch < '0' || ch > '9') && ch != '+' && ch != '-' && ch != '.' && ch != 'e' && ch != 'E') + + if ((ch < '0' || ch > '9') && ch != '+' && ch != '-' + && ch != '.' && ch != 'e' && ch != 'E') break; } - + return lastIndex - 1; } @@ -301,9 +302,9 @@ namespace SharpJson { if (index == json.Length) return Token.None; - + char c = json[index++]; - + switch (c) { case '{': return Token.CurlyOpen; @@ -326,41 +327,38 @@ namespace SharpJson } index--; - + int remainingLength = json.Length - index; - + // false if (remainingLength >= 5) { if (json[index] == 'f' && - json[index + 1] == 'a' && - json[index + 2] == 'l' && - json[index + 3] == 's' && - json[index + 4] == 'e' - ) { + json[index + 1] == 'a' && + json[index + 2] == 'l' && + json[index + 3] == 's' && + json[index + 4] == 'e') { index += 5; return Token.False; } } - + // true if (remainingLength >= 4) { if (json[index] == 't' && - json[index + 1] == 'r' && - json[index + 2] == 'u' && - json[index + 3] == 'e' - ) { + json[index + 1] == 'r' && + json[index + 2] == 'u' && + json[index + 3] == 'e') { index += 4; return Token.True; } } - + // null if (remainingLength >= 4) { if (json[index] == 'n' && - json[index + 1] == 'u' && - json[index + 2] == 'l' && - json[index + 3] == 'l' - ) { + json[index + 1] == 'u' && + json[index + 2] == 'l' && + json[index + 3] == 'l') { index += 4; return Token.Null; } @@ -440,25 +438,25 @@ namespace SharpJson TriggerError("Invalid token; expected ':'"); return null; } - + // value object value = ParseValue(); if (errorMessage != null) return null; - + table[name] = value; break; } } - + //return null; // Unreachable code } IList ParseArray() { var array = new List(); - + // [ lexer.NextToken(); @@ -485,7 +483,7 @@ namespace SharpJson break; } } - + //return null; // Unreachable code } diff --git a/spine-csharp/src/MathUtils.cs b/spine-csharp/src/MathUtils.cs index 792240a47..62bb46dcd 100644 --- a/spine-csharp/src/MathUtils.cs +++ b/spine-csharp/src/MathUtils.cs @@ -34,43 +34,43 @@ namespace Spine { public static class MathUtils { public const float PI = 3.1415927f; public const float PI2 = PI * 2; - public const float radDeg = 180f / PI; - public const float degRad = PI / 180; + public const float RadDeg = 180f / PI; + public const float DegRad = PI / 180; const int SIN_BITS = 14; // 16KB. Adjust for accuracy. const int SIN_MASK = ~(-1 << SIN_BITS); const int SIN_COUNT = SIN_MASK + 1; - const float radFull = PI * 2; - const float degFull = 360; - const float radToIndex = SIN_COUNT / radFull; - const float degToIndex = SIN_COUNT / degFull; + const float RadFull = PI * 2; + const float DegFull = 360; + const float RadToIndex = SIN_COUNT / RadFull; + const float DegToIndex = SIN_COUNT / DegFull; static float[] sin = new float[SIN_COUNT]; static MathUtils () { for (int i = 0; i < SIN_COUNT; i++) - sin[i] = (float)Math.Sin((i + 0.5f) / SIN_COUNT * radFull); + sin[i] = (float)Math.Sin((i + 0.5f) / SIN_COUNT * RadFull); for (int i = 0; i < 360; i += 90) - sin[(int)(i * degToIndex) & SIN_MASK] = (float)Math.Sin(i * degRad); + sin[(int)(i * DegToIndex) & SIN_MASK] = (float)Math.Sin(i * DegRad); } /// Returns the sine in radians from a lookup table. static public float Sin (float radians) { - return sin[(int)(radians * radToIndex) & SIN_MASK]; + return sin[(int)(radians * RadToIndex) & SIN_MASK]; } /// Returns the cosine in radians from a lookup table. static public float Cos (float radians) { - return sin[(int)((radians + PI / 2) * radToIndex) & SIN_MASK]; + return sin[(int)((radians + PI / 2) * RadToIndex) & SIN_MASK]; } - + /// Returns the sine in radians from a lookup table. static public float SinDeg (float degrees) { - return sin[(int)(degrees * degToIndex) & SIN_MASK]; + return sin[(int)(degrees * DegToIndex) & SIN_MASK]; } - + /// Returns the cosine in radians from a lookup table. static public float CosDeg (float degrees) { - return sin[(int)((degrees + 90) * degToIndex) & SIN_MASK]; + return sin[(int)((degrees + 90) * DegToIndex) & SIN_MASK]; } /// Returns atan2 in radians, faster but less accurate than Math.Atan2. Average error of 0.00231 radians (0.1323 diff --git a/spine-csharp/src/PathConstraint.cs b/spine-csharp/src/PathConstraint.cs index b5de5c04b..240085ef7 100644 --- a/spine-csharp/src/PathConstraint.cs +++ b/spine-csharp/src/PathConstraint.cs @@ -31,7 +31,7 @@ using System; namespace Spine { - public class PathConstraint : IUpdatable { + public class PathConstraint : IConstraint { private const int NONE = -1, BEFORE = -2, AFTER = -3; internal PathConstraintData data; @@ -43,6 +43,7 @@ namespace Spine { internal ExposedList world = new ExposedList(), curves = new ExposedList(), lengths = new ExposedList(); internal float[] segments = new float[10]; + public int Order { get { return data.order; } } public float Position { get { return position; } set { position = value; } } public float Spacing { get { return spacing; } set { spacing = value; } } public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } @@ -68,7 +69,7 @@ namespace Spine { public void Apply () { Update(); } - + public void Update () { PathAttachment attachment = target.Attachment as PathAttachment; if (attachment == null) return; @@ -102,14 +103,19 @@ namespace Spine { float[] positions = ComputeWorldPositions(attachment, spacesCount, tangents, data.positionMode == PositionMode.Percent, spacingMode == SpacingMode.Percent); - Skeleton skeleton = target.Skeleton; - float skeletonX = skeleton.x, skeletonY = skeleton.y; float boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - bool tip = rotateMode == RotateMode.Chain && offsetRotation == 0; + bool tip; + if (offsetRotation == 0) { + tip = rotateMode == RotateMode.Chain; + } else { + tip = false; + Bone p = target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? MathUtils.DegRad : -MathUtils.DegRad; + } for (int i = 0, p = 3; i < boneCount; i++, p += 3) { Bone bone = (Bone)bones[i]; - bone.worldX += (boneX - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; float x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; if (scale) { float length = lengths.Items[i]; @@ -129,13 +135,15 @@ namespace Spine { r = positions[p + 2]; else r = MathUtils.Atan2(dy, dx); - r -= MathUtils.Atan2(c, a) - offsetRotation * MathUtils.degRad; + r -= MathUtils.Atan2(c, a); if (tip) { cos = MathUtils.Cos(r); sin = MathUtils.Sin(r); float length = bone.data.length; boneX += (length * (cos * a - sin * c) - dx) * rotateMix; boneY += (length * (sin * a + cos * c) - dy) * rotateMix; + } else { + r += offsetRotation; } if (r > MathUtils.PI) r -= MathUtils.PI2; @@ -149,6 +157,7 @@ namespace Spine { bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } } @@ -387,7 +396,7 @@ namespace Spine { private void AddCurvePosition (float p, float x1, float y1, float cx1, float cy1, float cx2, float cy2, float x2, float y2, float[] output, int o, bool tangents) { - if (p == 0) p = 0.0001f; + if (p == 0 || float.IsNaN(p)) p = 0.0001f; float tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; float ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; float x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; diff --git a/spine-csharp/src/PathConstraintData.cs b/spine-csharp/src/PathConstraintData.cs index eabbb0785..d52126a37 100644 --- a/spine-csharp/src/PathConstraintData.cs +++ b/spine-csharp/src/PathConstraintData.cs @@ -32,7 +32,8 @@ using System; namespace Spine { public class PathConstraintData { - internal String name; + internal string name; + internal int order; internal ExposedList bones = new ExposedList(); internal SlotData target; internal PositionMode positionMode; @@ -41,8 +42,10 @@ namespace Spine { internal float offsetRotation; internal float position, spacing, rotateMix, translateMix; + public string Name { get { return name; } } + public int Order { get { return order; } set { order = value; } } public ExposedList Bones { get { return bones; } } - public SlotData Target { get { return target; } set { target = value; } } + public SlotData Target { get { return target; } set { target = value; } } public PositionMode PositionMode { get { return positionMode; } set { positionMode = value; } } public SpacingMode SpacingMode { get { return spacingMode; } set { spacingMode = value; } } public RotateMode RotateMode { get { return rotateMode; } set { rotateMode = value; } } @@ -51,16 +54,19 @@ namespace Spine { public float Spacing { get { return spacing; } set { spacing = value; } } public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } public float TranslateMix { get { return translateMix; } set { translateMix = value; } } - public String Name { get { return name; } } public PathConstraintData (String name) { if (name == null) throw new ArgumentNullException("name", "name cannot be null."); this.name = name; } - } + public override string ToString () { + return name; + } + } + public enum PositionMode { - Fixed, Percent + Fixed, Percent } public enum SpacingMode { diff --git a/spine-csharp/src/Skeleton.cs b/spine-csharp/src/Skeleton.cs index 0bd64a99a..c53cc9e85 100644 --- a/spine-csharp/src/Skeleton.cs +++ b/spine-csharp/src/Skeleton.cs @@ -37,10 +37,11 @@ namespace Spine { internal ExposedList bones; internal ExposedList slots; internal ExposedList drawOrder; - internal ExposedList ikConstraints, ikConstraintsSorted; + internal ExposedList ikConstraints; internal ExposedList transformConstraints; internal ExposedList pathConstraints; internal ExposedList updateCache = new ExposedList(); + internal ExposedList updateCacheReset = new ExposedList(); internal Skin skin; internal float r = 1, g = 1, b = 1, a = 1; internal float time; @@ -78,7 +79,7 @@ namespace Spine { foreach (BoneData boneData in data.bones) { Bone bone; if (boneData.parent == null) { - bone = new Bone(boneData, this, null); + bone = new Bone(boneData, this, null); } else { Bone parent = bones.Items[boneData.parent.index]; bone = new Bone(boneData, this, parent); @@ -97,7 +98,6 @@ namespace Spine { } ikConstraints = new ExposedList(data.ikConstraints.Count); - ikConstraintsSorted = new ExposedList(data.ikConstraints.Count); foreach (IkConstraintData ikConstraintData in data.ikConstraints) ikConstraints.Add(new IkConstraint(ikConstraintData, this)); @@ -123,112 +123,120 @@ namespace Spine { for (int i = 0, n = bones.Count; i < n; i++) bones.Items[i].sorted = false; - ExposedList ikConstraints = this.ikConstraintsSorted; - ikConstraints.Clear(); - ikConstraints.AddRange(this.ikConstraints); - int ikCount = ikConstraints.Count; - for (int i = 0, level, n = ikCount; i < n; i++) { - IkConstraint ik = ikConstraints.Items[i]; - Bone bone = ik.bones.Items[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (int i = 1, ii; i < ikCount; i++) { - IkConstraint ik = ikConstraints.Items[i]; - int level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - IkConstraint other = ikConstraints.Items[ii]; - if (other.level < level) break; - ikConstraints.Items[ii + 1] = other; + ExposedList ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + int ikCount = IkConstraints.Count, transformCount = transformConstraints.Count, pathCount = pathConstraints.Count; + int constraintCount = ikCount + transformCount + pathCount; + //outer: + for (int i = 0; i < constraintCount; i++) { + for (int ii = 0; ii < ikCount; ii++) { + IkConstraint constraint = ikConstraints.Items[ii]; + if (constraint.data.order == i) { + SortIkConstraint(constraint); + goto outer; //continue outer; + } } - ikConstraints.Items[ii + 1] = ik; - } - for (int i = 0, n = ikConstraints.Count; i < n; i++) { - IkConstraint constraint = ikConstraints.Items[i]; - Bone target = constraint.target; - SortBone(target); - - ExposedList constrained = constraint.bones; - Bone parent = constrained.Items[0]; - SortBone(parent); - - updateCache.Add(constraint); - - SortReset(parent.children); - constrained.Items[constrained.Count - 1].sorted = true; - } - - ExposedList pathConstraints = this.pathConstraints; - for (int i = 0, n = pathConstraints.Count; i < n; i++) { - PathConstraint constraint = pathConstraints.Items[i]; - - Slot slot = constraint.target; - int slotIndex = slot.data.index; - Bone slotBone = slot.bone; - if (skin != null) SortPathConstraintAttachment(skin, slotIndex, slotBone); - if (data.defaultSkin != null && data.defaultSkin != skin) - SortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); - for (int ii = 0, nn = data.skins.Count; ii < nn; ii++) - SortPathConstraintAttachment(data.skins.Items[ii], slotIndex, slotBone); - - PathAttachment attachment = slot.Attachment as PathAttachment; - if (attachment != null) SortPathConstraintAttachment(attachment, slotBone); - - ExposedList constrained = constraint.bones; - int boneCount = constrained.Count; - for (int ii = 0; ii < boneCount; ii++) - SortBone(constrained.Items[ii]); - - updateCache.Add(constraint); - - for (int ii = 0; ii < boneCount; ii++) - SortReset(constrained.Items[ii].children); - for (int ii = 0; ii < boneCount; ii++) - constrained.Items[ii].sorted = true; - } - - ExposedList transformConstraints = this.transformConstraints; - for (int i = 0, n = transformConstraints.Count; i < n; i++) { - TransformConstraint constraint = transformConstraints.Items[i]; - - SortBone(constraint.target); - - ExposedList constrained = constraint.bones; - int boneCount = constrained.Count; - for (int ii = 0; ii < boneCount; ii++) - SortBone(constrained.Items[ii]); - - updateCache.Add(constraint); - - for (int ii = 0; ii < boneCount; ii++) - SortReset(constrained.Items[ii].children); - for (int ii = 0; ii < boneCount; ii++) - constrained.Items[ii].sorted = true; + for (int ii = 0; ii < transformCount; ii++) { + TransformConstraint constraint = transformConstraints.Items[ii]; + if (constraint.data.order == i) { + SortTransformConstraint(constraint); + goto outer; //continue outer; + } + } + for (int ii = 0; ii < pathCount; ii++) { + PathConstraint constraint = pathConstraints.Items[ii]; + if (constraint.data.order == i) { + SortPathConstraint(constraint); + goto outer; //continue outer; + } + } + outer: {} } for (int i = 0, n = bones.Count; i < n; i++) SortBone(bones.Items[i]); } + private void SortIkConstraint (IkConstraint constraint) { + Bone target = constraint.target; + SortBone(target); + + var constrained = constraint.bones; + Bone parent = constrained.Items[0]; + SortBone(parent); + + if (constrained.Count > 1) { + Bone child = constrained.Items[constrained.Count - 1]; + if (!updateCache.Contains(child)) + updateCacheReset.Add(child); + } + + updateCache.Add(constraint); + + SortReset(parent.children); + constrained.Items[constrained.Count - 1].sorted = true; + } + + private void SortPathConstraint (PathConstraint constraint) { + Slot slot = constraint.target; + int slotIndex = slot.data.index; + Bone slotBone = slot.bone; + if (skin != null) SortPathConstraintAttachment(skin, slotIndex, slotBone); + if (data.defaultSkin != null && data.defaultSkin != skin) + SortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); + for (int ii = 0, nn = data.skins.Count; ii < nn; ii++) + SortPathConstraintAttachment(data.skins.Items[ii], slotIndex, slotBone); + + Attachment attachment = slot.attachment; + if (attachment is PathAttachment) SortPathConstraintAttachment(attachment, slotBone); + + var constrained = constraint.bones; + int boneCount = constrained.Count; + for (int ii = 0; ii < boneCount; ii++) + SortBone(constrained.Items[ii]); + + updateCache.Add(constraint); + + for (int ii = 0; ii < boneCount; ii++) + SortReset(constrained.Items[ii].children); + for (int ii = 0; ii < boneCount; ii++) + constrained.Items[ii].sorted = true; + } + + private void SortTransformConstraint (TransformConstraint constraint) { + SortBone(constraint.target); + + var constrained = constraint.bones; + int boneCount = constrained.Count; + for (int ii = 0; ii < boneCount; ii++) + SortBone(constrained.Items[ii]); + + updateCache.Add(constraint); + + for (int ii = 0; ii < boneCount; ii++) + SortReset(constrained.Items[ii].children); + for (int ii = 0; ii < boneCount; ii++) + constrained.Items[ii].sorted = true; + } + private void SortPathConstraintAttachment (Skin skin, int slotIndex, Bone slotBone) { foreach (var entry in skin.Attachments) if (entry.Key.slotIndex == slotIndex) SortPathConstraintAttachment(entry.Value, slotBone); } private void SortPathConstraintAttachment (Attachment attachment, Bone slotBone) { - var pathAttachment = attachment as PathAttachment; - if (pathAttachment == null) return; - int[] pathBones = pathAttachment.bones; + if (!(attachment is PathAttachment)) return; + int[] pathBones = ((PathAttachment)attachment).bones; if (pathBones == null) SortBone(slotBone); else { - var bonesItems = this.bones.Items; + var bones = this.bones; for (int i = 0, n = pathBones.Length; i < n;) { int nn = pathBones[i++]; nn += i; while (i < nn) - SortBone(bonesItems[pathBones[i++]]); + SortBone(bones.Items[pathBones[i++]]); } } } @@ -252,6 +260,19 @@ namespace Spine { /// Updates the world transform for each bone and applies constraints. public void UpdateWorldTransform () { + var updateCacheReset = this.updateCacheReset; + var updateCacheResetItems = updateCacheReset.Items; + for (int i = 0, n = updateCacheReset.Count; i < n; i++) { + Bone bone = updateCacheResetItems[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 updateItems = this.updateCache.Items; for (int i = 0, n = updateCache.Count; i < n; i++) updateItems[i].Update(); @@ -416,7 +437,7 @@ namespace Spine { } throw new Exception("Slot not found: " + slotName); } - + /// May be null. public IkConstraint FindIkConstraint (String constraintName) { if (constraintName == null) throw new ArgumentNullException("constraintName", "constraintName cannot be null."); diff --git a/spine-csharp/src/SkeletonBinary.cs b/spine-csharp/src/SkeletonBinary.cs index ba18de27e..acd464bc8 100644 --- a/spine-csharp/src/SkeletonBinary.cs +++ b/spine-csharp/src/SkeletonBinary.cs @@ -74,7 +74,7 @@ namespace Spine { this.attachmentLoader = attachmentLoader; Scale = 1; } - + #if !ISUNITY && WINDOWS_STOREAPP private async Task ReadFile(string path) { var folder = Windows.ApplicationModel.Package.Current.InstalledLocation; @@ -103,6 +103,14 @@ namespace Spine { #endif // WINDOWS_STOREAPP + public static readonly TransformMode[] TransformModeValues = { + TransformMode.Normal, + TransformMode.OnlyTranslation, + TransformMode.NoRotationOrReflection, + TransformMode.NoScale, + TransformMode.NoScaleOrReflection + }; + public SkeletonData ReadSkeletonData (Stream input) { if (input == null) throw new ArgumentNullException("input"); float scale = Scale; @@ -118,6 +126,7 @@ namespace Spine { bool nonessential = ReadBoolean(input); if (nonessential) { + skeletonData.fps = ReadFloat(input); skeletonData.imagesPath = ReadString(input); if (skeletonData.imagesPath.Length == 0) skeletonData.imagesPath = null; } @@ -127,7 +136,7 @@ namespace Spine { String name = ReadString(input); BoneData parent = i == 0 ? null : skeletonData.bones.Items[ReadVarint(input, true)]; BoneData data = new BoneData(i, name, parent); - data.rotation = ReadFloat(input); + data.rotation = ReadFloat(input); data.x = ReadFloat(input) * scale; data.y = ReadFloat(input) * scale; data.scaleX = ReadFloat(input); @@ -135,8 +144,7 @@ namespace Spine { data.shearX = ReadFloat(input); data.shearY = ReadFloat(input); data.length = ReadFloat(input) * scale; - data.inheritRotation = ReadBoolean(input); - data.inheritScale = ReadBoolean(input); + data.transformMode = TransformModeValues[ReadVarint(input, true)]; if (nonessential) ReadInt(input); // Skip bone color. skeletonData.bones.Add(data); } @@ -159,6 +167,7 @@ namespace Spine { // IK constraints. for (int i = 0, n = ReadVarint(input, true); i < n; i++) { IkConstraintData data = new IkConstraintData(ReadString(input)); + data.order = ReadVarint(input, true); for (int ii = 0, nn = ReadVarint(input, true); ii < nn; ii++) data.bones.Add(skeletonData.bones.Items[ReadVarint(input, true)]); data.target = skeletonData.bones.Items[ReadVarint(input, true)]; @@ -170,8 +179,9 @@ namespace Spine { // Transform constraints. for (int i = 0, n = ReadVarint(input, true); i < n; i++) { TransformConstraintData data = new TransformConstraintData(ReadString(input)); + data.order = ReadVarint(input, true); for (int ii = 0, nn = ReadVarint(input, true); ii < nn; ii++) - data.bones.Add(skeletonData.bones.Items[ReadVarint(input, true)]); + data.bones.Add(skeletonData.bones.Items[ReadVarint(input, true)]); data.target = skeletonData.bones.Items[ReadVarint(input, true)]; data.offsetRotation = ReadFloat(input); data.offsetX = ReadFloat(input) * scale; @@ -189,6 +199,7 @@ namespace Spine { // Path constraints for (int i = 0, n = ReadVarint(input, true); i < n; i++) { PathConstraintData data = new PathConstraintData(ReadString(input)); + data.order = ReadVarint(input, true); for (int ii = 0, nn = ReadVarint(input, true); ii < nn; ii++) data.bones.Add(skeletonData.bones.Items[ReadVarint(input, true)]); data.target = skeletonData.slots.Items[ReadVarint(input, true)]; @@ -261,7 +272,8 @@ namespace Spine { int slotIndex = ReadVarint(input, true); for (int ii = 0, nn = ReadVarint(input, true); ii < nn; ii++) { String name = ReadString(input); - skin.AddAttachment(slotIndex, name, ReadAttachment(input, skin, slotIndex, name, nonessential)); + Attachment attachment = ReadAttachment(input, skin, slotIndex, name, nonessential); + if (attachment != null) skin.AddAttachment(slotIndex, name, attachment); } } return skin; @@ -277,7 +289,7 @@ namespace Spine { switch (type) { case AttachmentType.Region: { String path = ReadString(input); - float rotation = ReadFloat(input); + float rotation = ReadFloat(input); float x = ReadFloat(input); float y = ReadFloat(input); float scaleX = ReadFloat(input); @@ -308,18 +320,18 @@ namespace Spine { int vertexCount = ReadVarint(input, true); Vertices vertices = ReadVertices(input, vertexCount); if (nonessential) ReadInt(input); //int color = nonessential ? ReadInt(input) : 0; // Avoid unused local warning. - + BoundingBoxAttachment box = attachmentLoader.NewBoundingBoxAttachment(skin, name); if (box == null) return null; box.worldVerticesLength = vertexCount << 1; box.vertices = vertices.vertices; - box.bones = vertices.bones; + box.bones = vertices.bones; return box; } case AttachmentType.Mesh: { String path = ReadString(input); int color = ReadInt(input); - int vertexCount = ReadVarint(input, true); + int vertexCount = ReadVarint(input, true); float[] uvs = ReadFloatArray(input, vertexCount << 1, 1); int[] triangles = ReadShortArray(input); Vertices vertices = ReadVertices(input, vertexCount); @@ -400,8 +412,8 @@ namespace Spine { path.vertices = vertices.vertices; path.bones = vertices.bones; path.lengths = lengths; - return path; - } + return path; + } } return null; } @@ -540,7 +552,7 @@ namespace Spine { } // IK timelines. - for (int i = 0, n = ReadVarint(input, true); i < n; i++) { + for (int i = 0, n = ReadVarint(input, true); i < n; i++) { int index = ReadVarint(input, true); int frameCount = ReadVarint(input, true); IkConstraintTimeline timeline = new IkConstraintTimeline(frameCount); @@ -587,7 +599,7 @@ namespace Spine { if (data.positionMode == PositionMode.Fixed) timelineScale = scale; } timeline.pathConstraintIndex = index; - for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) { + for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) { timeline.SetFrame(frameIndex, ReadFloat(input), ReadFloat(input) * timelineScale); if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline); } @@ -651,7 +663,7 @@ namespace Spine { timeline.SetFrame(frameIndex, time, deform); if (frameIndex < frameCount - 1) ReadCurve(input, frameIndex, timeline); - } + } timelines.Add(timeline); duration = Math.Max(duration, timeline.frames[frameCount - 1]); } diff --git a/spine-csharp/src/SkeletonBounds.cs b/spine-csharp/src/SkeletonBounds.cs index d9ca1daed..c55abbb54 100644 --- a/spine-csharp/src/SkeletonBounds.cs +++ b/spine-csharp/src/SkeletonBounds.cs @@ -81,7 +81,14 @@ namespace Spine { boundingBox.ComputeWorldVertices(slot, polygon.Vertices); } - if (updateAabb) aabbCompute(); + if (updateAabb) { + aabbCompute(); + } else { + minX = int.MinValue; + minY = int.MinValue; + maxX = int.MaxValue; + maxY = int.MaxValue; + } } private void aabbCompute () { diff --git a/spine-csharp/src/SkeletonData.cs b/spine-csharp/src/SkeletonData.cs index 001d0454e..6ddb34f87 100644 --- a/spine-csharp/src/SkeletonData.cs +++ b/spine-csharp/src/SkeletonData.cs @@ -32,7 +32,7 @@ using System; namespace Spine { public class SkeletonData { - internal String name; + internal string name; internal ExposedList bones = new ExposedList(); internal ExposedList slots = new ExposedList(); internal ExposedList skins = new ExposedList(); @@ -43,7 +43,11 @@ namespace Spine { internal ExposedList transformConstraints = new ExposedList(); internal ExposedList pathConstraints = new ExposedList(); internal float width, height; - internal String version, hash, imagesPath; + internal string version, hash; + + // Nonessential. + internal float fps; + internal string imagesPath; public String Name { get { return name; } set { name = value; } } public ExposedList Bones { get { return bones; } } // Ordered parents first. @@ -56,11 +60,14 @@ namespace Spine { public ExposedList IkConstraints { get { return ikConstraints; } set { ikConstraints = value; } } public ExposedList TransformConstraints { get { return transformConstraints; } set { transformConstraints = value; } } public ExposedList PathConstraints { get { return pathConstraints; } set { pathConstraints = value; } } + public float Width { get { return width; } set { width = value; } } public float Height { get { return height; } set { height = value; } } - /// The Spine version used to export this data. - public String Version { get { return version; } set { version = value; } } - public String Hash { get { return hash; } set { hash = value; } } + /// The Spine version used to export this data, or null. + public string Version { get { return version; } set { version = value; } } + public string Hash { get { return hash; } set { hash = value; } } + public string ImagesPath { get { return imagesPath; } set { imagesPath = value; } } + public float Fps { get { return fps; } set { fps = value; } } // --- Bones. diff --git a/spine-csharp/src/SkeletonJson.cs b/spine-csharp/src/SkeletonJson.cs index 54e0fd85c..eb9835014 100644 --- a/spine-csharp/src/SkeletonJson.cs +++ b/spine-csharp/src/SkeletonJson.cs @@ -103,6 +103,8 @@ namespace Spine { skeletonData.version = (String)skeletonMap["spine"]; skeletonData.width = GetFloat(skeletonMap, "width", 0); skeletonData.height = GetFloat(skeletonMap, "height", 0); + skeletonData.fps = GetFloat(skeletonMap, "fps", 0); + skeletonData.imagesPath = GetString(skeletonMap, "images", null); } // Bones. @@ -122,8 +124,9 @@ namespace Spine { data.scaleY = GetFloat(boneMap, "scaleY", 1); data.shearX = GetFloat(boneMap, "shearX", 0); data.shearY = GetFloat(boneMap, "shearY", 0); - data.inheritRotation = GetBoolean(boneMap, "inheritRotation", true); - data.inheritScale = GetBoolean(boneMap, "inheritScale", true); + + string tm = GetString(boneMap, "transform", TransformMode.Normal.ToString()); + data.transformMode = (TransformMode)Enum.Parse(typeof(TransformMode), tm, true); skeletonData.bones.Add(data); } @@ -144,7 +147,7 @@ namespace Spine { data.b = ToColor(color, 2); data.a = ToColor(color, 3); } - + data.attachmentName = GetString(slotMap, "attachment", null); if (slotMap.ContainsKey("blend")) data.blendMode = (BlendMode)Enum.Parse(typeof(BlendMode), (String)slotMap["blend"], false); @@ -158,13 +161,14 @@ namespace Spine { if (root.ContainsKey("ik")) { foreach (Dictionary constraintMap in (List)root["ik"]) { IkConstraintData data = new IkConstraintData((String)constraintMap["name"]); + data.order = GetInt(constraintMap, "order", 0); foreach (String boneName in (List)constraintMap["bones"]) { BoneData bone = skeletonData.FindBone(boneName); if (bone == null) throw new Exception("IK constraint bone not found: " + boneName); data.bones.Add(bone); } - + String targetName = (String)constraintMap["target"]; data.target = skeletonData.FindBone(targetName); if (data.target == null) throw new Exception("Target bone not found: " + targetName); @@ -180,6 +184,7 @@ namespace Spine { if (root.ContainsKey("transform")) { foreach (Dictionary constraintMap in (List)root["transform"]) { TransformConstraintData data = new TransformConstraintData((String)constraintMap["name"]); + data.order = GetInt(constraintMap, "order", 0); foreach (String boneName in (List)constraintMap["bones"]) { BoneData bone = skeletonData.FindBone(boneName); @@ -211,6 +216,7 @@ namespace Spine { if(root.ContainsKey("path")) { foreach (Dictionary constraintMap in (List)root["path"]) { PathConstraintData data = new PathConstraintData((String)constraintMap["name"]); + data.order = GetInt(constraintMap, "order", 0); foreach (String boneName in (List)constraintMap["bones"]) { BoneData bone = skeletonData.FindBone(boneName); @@ -276,7 +282,7 @@ namespace Spine { var data = new EventData(entry.Key); data.Int = GetInt(entryMap, "int", 0); data.Float = GetFloat(entryMap, "float", 0); - data.String = GetString(entryMap, "string", null); + data.String = GetString(entryMap, "string", string.Empty); skeletonData.events.Add(data); } } @@ -289,7 +295,7 @@ namespace Spine { } catch (Exception e) { throw new Exception("Error reading animation: " + entry.Key, e); } - } + } } skeletonData.bones.TrimExcess(); @@ -632,7 +638,7 @@ namespace Spine { var timeline = new DeformTimeline(values.Count); timeline.slotIndex = slotIndex; timeline.attachment = attachment; - + int frameIndex = 0; foreach (Dictionary valueMap in values) { float[] deform; diff --git a/spine-csharp/src/Skin.cs b/spine-csharp/src/Skin.cs index 5fff9c9c6..318779f77 100644 --- a/spine-csharp/src/Skin.cs +++ b/spine-csharp/src/Skin.cs @@ -79,7 +79,7 @@ namespace Spine { foreach (KeyValuePair entry in oldSkin.attachments) { int slotIndex = entry.Key.slotIndex; Slot slot = skeleton.slots.Items[slotIndex]; - if (slot.attachment == entry.Value) { + if (slot.Attachment == entry.Value) { Attachment attachment = GetAttachment(slotIndex, entry.Key.name); if (attachment != null) slot.Attachment = attachment; } diff --git a/spine-csharp/src/TransformConstraint.cs b/spine-csharp/src/TransformConstraint.cs index 4d76e0085..3e368f14c 100644 --- a/spine-csharp/src/TransformConstraint.cs +++ b/spine-csharp/src/TransformConstraint.cs @@ -31,13 +31,14 @@ using System; namespace Spine { - public class TransformConstraint : IUpdatable { + public class TransformConstraint : IConstraint { internal TransformConstraintData data; internal ExposedList bones; internal Bone target; internal float rotateMix, translateMix, scaleMix, shearMix; public TransformConstraintData Data { get { return data; } } + public int Order { get { return data.order; } } public ExposedList Bones { get { return bones; } } public Bone Target { get { return target; } set { target = value; } } public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } @@ -57,7 +58,7 @@ namespace Spine { bones = new ExposedList(); foreach (BoneData boneData in data.bones) bones.Add (skeleton.FindBone (boneData.name)); - + target = skeleton.FindBone(data.target.name); } @@ -69,13 +70,17 @@ namespace Spine { float rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; Bone target = this.target; float ta = target.a, tb = target.b, tc = target.c, td = target.d; - ExposedList bones = this.bones; + float degRadReflect = (ta * td - tb * tc > 0) ? MathUtils.DegRad : -MathUtils.DegRad; + float offsetRotation = data.offsetRotation * degRadReflect, offsetShearY = data.offsetShearY * degRadReflect; + var bones = this.bones; + var bonesItems = bones.Items; for (int i = 0, n = bones.Count; i < n; i++) { - Bone bone = bones.Items[i]; + Bone bone = bonesItems[i]; + bool modified = false; - if (rotateMix > 0) { + if (rotateMix != 0) { float a = bone.a, b = bone.b, c = bone.c, d = bone.d; - float r = (float)Math.Atan2(tc, ta) - (float)Math.Atan2(c, a) + data.offsetRotation * MathUtils.degRad; + float r = MathUtils.Atan2(tc, ta) - MathUtils.Atan2(c, a) + offsetRotation; if (r > MathUtils.PI) r -= MathUtils.PI2; else if (r < -MathUtils.PI) r += MathUtils.PI2; @@ -85,26 +90,29 @@ namespace Spine { bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + if (translateMix != 0) { float tempx, tempy; target.LocalToWorld(data.offsetX, data.offsetY, out tempx, out tempy); bone.worldX += (tempx - bone.worldX) * translateMix; bone.worldY += (tempy - bone.worldY) * translateMix; + modified = true; } if (scaleMix > 0) { - float bs = (float)Math.Sqrt(bone.a * bone.a + bone.c * bone.c); + float s = (float)Math.Sqrt(bone.a * bone.a + bone.c * bone.c); float ts = (float)Math.Sqrt(ta * ta + tc * tc); - float s = bs > 0.00001f ? (bs + (ts - bs + data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = (float)Math.Sqrt(bone.b * bone.b + bone.d * bone.d); + s = (float)Math.Sqrt(bone.b * bone.b + bone.d * bone.d); ts = (float)Math.Sqrt(tb * tb + td * td); - s = bs > 0.00001f ? (bs + (ts - bs + data.offsetScaleY) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + data.offsetScaleY) * scaleMix) / s; bone.b *= s; bone.d *= s; + modified = true; } if (shearMix > 0) { @@ -114,11 +122,14 @@ namespace Spine { if (r > MathUtils.PI) r -= MathUtils.PI2; else if (r < -MathUtils.PI) r += MathUtils.PI2; - r = by + (r + data.offsetShearY * MathUtils.degRad) * shearMix; + r = by + (r + offsetShearY) * shearMix; float s = (float)Math.Sqrt(b * b + d * d); bone.b = MathUtils.Cos(r) * s; bone.d = MathUtils.Sin(r) * s; + modified = true; } + + if (modified) bone.appliedValid = false; } } diff --git a/spine-csharp/src/TransformConstraintData.cs b/spine-csharp/src/TransformConstraintData.cs index bcb9f2031..71fbd30f9 100644 --- a/spine-csharp/src/TransformConstraintData.cs +++ b/spine-csharp/src/TransformConstraintData.cs @@ -33,12 +33,14 @@ using System; namespace Spine { public class TransformConstraintData { internal String name; + internal int order; internal ExposedList bones = new ExposedList(); internal BoneData target; internal float rotateMix, translateMix, scaleMix, shearMix; internal float offsetRotation, offsetX, offsetY, offsetScaleX, offsetScaleY, offsetShearY; public String Name { get { return name; } } + public int Order { get { return order; } set { order = value; } } public ExposedList Bones { get { return bones; } } public BoneData Target { get { return target; } set { target = value; } } public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } diff --git a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.json b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.json +++ b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.skel b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins-mesh.skel index 48d702d367519e22bcccd63d81a208bfd9be3d09..11d72ac71801ae2541584fad792db08c73c30515 100644 GIT binary patch delta 201 zcmaFd#dy7o(NrcVtUSv&#XLwq+sE5K&$J-5z#up~FwE4@JDJB=&s5LAST`xPB+KaW6*44-5h$TcQYAe)yNM7l5o&7NEaCRZ?nR9*v|?0a2?U)O|*M5Rab;OxZK( zfOt7fU?mG7f)|-gL4xeeV9J&mWY^?82sNJ>tlR5`6+uKklJj) HA#V!+Dz-7u diff --git a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.json b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.json index fb8c3f1da..d4ff7de2c 100644 --- a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.json +++ b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "XWev9W//Ru9qTfd6z9xOs5YG8F0", "spine": "3.4.02", "width": 234.01, "height": 354.84, "images": "./images/" }, +"skeleton": { + "hash": "9Twfw0ImCCb/C3Vx15ucH1FZP6U", + "spine": "3.5.03-beta", + "width": 234.01, + "height": 354.84, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -208,7 +215,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } diff --git a/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.skel b/spine-libgdx/spine-libgdx-tests/assets/goblins/goblins.skel index 8af1c6c941a77ed617bd1867f339356cdbbc0559..1f88764a4035f02bc16e61b3e5203c49eed2cf33 100644 GIT binary patch delta 166 zcmaE;dqdY$#xkTlt=zyf*V#Eq-`O~7#SwUX#$B(Z6L8t3rIWy5|jBDje(>yqaKhfW;6kkE5YP_MtvY# pfC)r8GU))xd?t|WQn1K1CQ~4rml;I5Fayn=Tm~XHuVA(m1_1u$DXahh delta 175 zcmcbi`%qU$CL%nw%rabGKd98QFeEL-tje;&zt}X=-NMa)-B`~=&%nqzi#gVLWA+Qi ziKYfjjEoc0G(qG9Z4kLf3q(E#k&}fOjX{(fqaKJVWi$a%t02^UMtu;Ep9xIaGwFbM hIZR+B3n79RnM^@~?95=wmKkK%4PZ3Jc-Vtph)@zwX!PI(IcSs{5aOSp2f%p`y!_^S-}mOdnd}(7J4QpU z=C)X(^Gs8DQ@WcHNP|bjJLGHH({ULv4(ASwr$72uHnq#+qE|ci0AdFO0 z5@Dp>!*QpA;}u|0A_8*~ne!y!1{)+^&S%I^B*3+ShBzbC&v}_vaXz8}LfJZWmD*^ zm}+#wW{Rzv3Rt~)A5R~ecd>zOb$Gj8!P;T*@j7aO4gJU$7I@1%(r5)OBjdO-5uS@crRgt_CiTVEmreZtR&(}M^`eL z#yE%i16~aBF!+B>&t~m=iGh8$m+UZ7TYet&Y>KILkD^@b6SV@zx`9e6+vzNYBkYvn zP`0X!a|5bOQFFeeQh!5s!IKS+X6k~Hs{JXNBoL0dO7}=A@imIiho+bNCSX4GHSRyP zR9E(U7FyXiR|9k&bjz-};XuQU^Pc+KbMGLkoOwB#nf6Am9vyP`X#MUX9esUT+bEeA z>6c&Hyyu=swV>7~sUi$mKZ0*OP>aWj+Ho*{)Rwv>wL0q<_&W1uG!udKa&*=lnfb82 OJ``@}joSUNujL=2iRh#N delta 893 zcmXw!OH30{6o$FCuW4xzP(w>vB4~&OI&HZv;Z?yF#ki34w(sqlp_LEel-~V|>Jfuuy^gIlP&i|kDpP8Jc*;!iS z7`a$ie=0ECf2QlirATZz9QK_|d4^6$N%fc)(4#ZK@j#EOSM_)VHK4{gx;dr{nD<75miL=i)kbu78nJoL7=)ml zR%zHZ;t`?={#fZSRRcyjp7Z9K2`v@@(I{ZLBrtH!@#aSkof$36jCtJ}v?Hd>9z7vn zM-*Z?sH~eSU~JFa0BEq(17waxj!lajn#K8;)6Q`t9}k=7_=K3WVy}jy!-`{fI9?#s z4XaOYr~3~Sx7^ChBZUcB>Q6@#l9Z12NU=UeEV7kQd#Mf7y#hHNlcO>DGS{M@iJmH) z2U8s_!kwV6(7|O1@vTS;$g)yeSEqzKrlpK|1j1hNOSR7m4N;psv`u>9f#lX#o`HF?{u|}=2k)SW}Z#YELQ~wj*XSQQrn$lI=VEVzB{xg z(2cOV;JPo+mn&*(?Og#DtTy6R+Z@iOIcR2^DxHkgWs9$U%e9!nq_OvMR*gC_NxK%0I{~DZUcuZh1pskdD$oD` delta 175 zcmZ2xv))EW#>KPTH?qLFBF!?R+{rvL-8tASBse(0Ti?`?-B`~=&%nr8QU03q>Qi2f z6HN`67#Sy~X@bZJ+8}a|7KnTfA}0$m8iOb|Mm-Q!%4h$*uB3CO(L*g8Ss}0k@F;EEC z1Z=!Ewd!d$jogi)(|A*@3Dg;?y*7i~?xkr{xv93L7mc0dIwa9@)?^Ye(N_A~1N>v3 zcc1rppXdF(zvtukox#q!f?fT!ds@W)${o8Jnzwd-<6HG@?a#G*v&LE3*Pl^aRaaGA zyRogK*C{Se-nYHs=6`A7Q;IsWp_-&r4Bvno?BjaEj`6 zHYpP+>KR@OFjAv-1LT0V0y3DC7qn{R|0QKbs`}rOTB)Tzyqvozozmq=ucsE#jP!?8 z3#3-3-oH(U*b_avV$CLs$y%3b9j2(odt5zT&-U(ib#?Xb{%$8tvl;3(ow>B#+tqGZ1M-lmga3X5m7$SMyLCYuB+l-D>QxvI)+btzOozn|{8E2(anbmF0 zir#iMp z=C#~VEG=B-a>U<=8#2+yKbxi|f3~wl3 zkY5>$TkkDDXdqo?xBP^cx6F(kr3=L3jHq%61ga%gAZB}ccX7{p|4{ZielaXuyu1q-XOPYKdv<84JX|s+rC&*S5 zO;Qu6`3TwT4@kxwt~zcfH&%|3%fpno>PyGcF|lfGLexE&4A1cLj}YRb*)2VtbKg*R zko4m{@2)Cf3dzyjfG|Q)R(E2CCy&4sXo{Mh<@eKtWX5S1Vkl$v+Cp+-zgf<~L1-yP zVPrlc1W=9aFaKPqJOGAz!1Kt-@A2d?ipDk{vE;N=7)TB45iZ5jEcUbSF+9%81LOpBtf0`qWqHiCcm0=lL0R; zP34uCP;OIq?_G}q8t;oNAL}k(P!3=sz{#+mmWs-zO!Q;G~Cuqv6XoPIwqy+W^WBWsEYc5JvA6BjZ`~eohz$`qEaD<#JXv zO#eY{cuc7;R$bzR*Wk4dY17_HFf7rav&;Me%aqJI!g5ZfYtVjVF!ibf@ESU?!~wsx})dh0hq4NV~D_wwLPf#6mgkvR-PGW<$%kT49P0h_0!RF zzU8K7<?wi%Akh<7-16F~RJ?GrrTKpRo$Z(xKSLmc(cnpTtW2F958 zib>gr{ybceJ#nCLMlh_rOF_^vOv@2JLkGwzW zR>ByOCx}n^6Uyp&Ot9CRq9hl?%MYDHHaDU8Sc;NcaAzYX;bVhw(uhf(3v7E~YePD$ zu>BmPa1KPKzkD$v{1E*!hW?)`F*5tjQhI4#<8)NmiCn#TazVHQ2-hwqNJXnj)D1X< z+klEmVk;Spi<$<9l7%n{K=>J;VE8Gg`ywI({oECkxaOEi>MG51;Wa4-qGTUXd;k>v zsF2Y#Gs(w_IukI>$U%I~$7AFlTAuv6!9mU`K5`AOieF5G-v{EW0Qv*?PmYFcMl_Dn X7g353>kOEF3BHTOH*ur%{ObP$%Gg=} delta 2402 zcmX|Ce^gWV70-JC(!7FEjDf_Eq{^>Qhe$xM?Mw3gJ}QypJPn5pJxj}>j*JZ}L~(Fn z7TqyB>sF2Qu?lger;t-=3#nUry3`KM`=+bygmrFXQES&_M_XOutfvL5Ze{nq1pj$A z_j|wJdq4McefBYH$CS8mz9MDQeJd7QaWO-$JGM`zs54`BF+e;&)K%Me$rpyhCjewFD(yG1BFt zwk;+0)6(H@=qmB>Gx}js;gE}-`F^?Nb5bsO`A14qWk`qi4C%_=4C(nqN_>(b z-Be|YAo)$1>qOzsEEC0GO8h=k3Uns`mm9`yVDkMJZQ$=1d&9EMH zuPb2tR?w=nkFg$XDqXM!#;U+{%Vow&b-yk9sgM#C)d#VzE0AaX95v7iT*0uoEbg!t z{xYFN9}yovlvDAv`;^lDcDOMjhfuw{)=&z}c#XmCz0h^==o)Nz= zWe7`oDulQC;`YCKjiQZKoWVX9y5Tb0o|Tm;h40H`_y@%I=;E=$Q1P-)>4DL(P^|99 zGtCUC0$5RJl2pbR^tDVz3T9@}1$95sdyVK%tVg()@J31)R#;4Ug*XJP8;=Qp9*?1R zkR;rQb7eC0JjhKJ3x0880Y3>je>ED$+q_0jzaohrl*zc&iXfUIK76h|C>$+a!1X_$ z_6WzI5LdebLKFaK!C4N-6L;gbb6z8kg3~MGG2GG>K$jp`4S<;hz<00@&49d#eb(_9 z6FRrzMh2bm@~1S#WeG1@4@5P;_oRswGAzlCJJ|P0i4nik6(E&CHT&a-J17HwA!Om1 zJVTY+ZEKr$7T_1}#v_9xe)ccRYiUDdUFm`_KLWx)~Z~* zD^K@bi-o+|>X1m+<1wwDOhL_ccvfMhMh^gu`iywf+#~69~@29T90#p@OPo-Qeit2UVL-u9lmrx z#ytQ$N;a;1MUqoIZWJ}zDEth3p2t3ZTmG7XzBumjxvU>Ppr=jvnAVSmWip#5IcLP% zz~tXL%eIzoqD*+M)q!HrbD}>JJ^>i>;UZ`m1~fb$MSe(F{puf0zo^Z8M0)0aI3_8U;*VQ|qv`Y0o=fk9Ac z3k+Q;7Ud>f36NW1qO>co8BwLrg}1~Q9&4@TVO4;x3C=jl~Fx45t)~x;(Jy-gW zBNA~Y*~Es&AmuKAc-vy(gW8e-;!Cqq^hF@@Zj4#d*2eIvC8oIonC>G>h2qv8kdd=0 zSL!CN?u(0wq_t;(cgub4aH|9NKm&?A>2W`B_|pA0c?5d)^%1^Fr?GjUkiAQxQEOKK zSHm`v9w7o-<^nWk$_0j|@4nwnuT6V!ug}H5rYodDe5BK5K_@;RvV?Bxo}momF)}sc zNB;swI$(hQ`3n|(2@|N&n@JmVSBohxG^lT&VA^f9ca$1b4`W&jv>wSGrPU|`v$hth znma$DK?mlexX5L;UdpWi(|_D)nm{NqzTZV37;$Sx6}Z^{T$eK z2La;1HzzehFI4#2e6*(I50jMIz8U6+OHYhim?J*HpDvl2)XdDD9$M0bTZS;|XIPO% zT74z~Y;1scKdO6G!)^t1Jqa(HIW;$^D&{MetqK(y3n)WhoV)=Ze+@pw`^#Ns^aiXW z?`1PNG#U=In38gs7p^Ri5$*u1#`Xn~ZLUNSB=5t1Q|*kA&w#bNfblZC`VxD1Xp8-@SI4%_VlBiO0bK*tS`QqmWip`|;x*I<(RN^`0oqs#5D&&3_-VHr+o0WF zjyq5SXdHL}7W7Y{tER9Ik3-N0!BJf6=QI%Te_sT+tgjn6*((kVEx^&WjW~SS%<0Ys z@z_v5x28IZj{v~E;G+o^@Z`h-`UdptF$R~p-JGJg5#58tU~kxq3}H_GNSx#Xpd_rY zUjguoF7p66xi8AmdoAQNI9?8$uAnQx diff --git a/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.json b/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.json index 1dead8c73..b469e2763 100644 --- a/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.json +++ b/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.json @@ -1,5 +1,5 @@ { -"skeleton": { "hash": "F8rkPuRWVWWeoK90PmJAvIALFjY", "spine": "3.4.02", "width": 0, "height": 0, "images": "./images/" }, +"skeleton": { "hash": "mb9RZEJVw/MaT0MU9ZTBXq45AU4", "spine": "3.5.03-beta", "width": 0, "height": 0, "fps": 30, "images": "./images/" }, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "y": 247.26 }, @@ -15,7 +15,7 @@ "rotation": -0.85, "x": 51.16, "y": 0.23, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ff000dff" }, { "name": "front_foot_ik", "parent": "root", "x": -13.52, "y": 0.04, "color": "ff3f00ff" }, @@ -42,7 +42,7 @@ "rotation": -1.67, "x": 41.42, "y": -0.08, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "00ff04ff" }, { "name": "rear_upper_arm", "parent": "torso", "length": 51.93, "rotation": -169.55, "x": 92.35, "y": -19.22, "color": "ff000dff" }, @@ -81,23 +81,27 @@ "ik": [ { "name": "front_ankle_ik", + "order": 0, "bones": [ "front_thigh", "front_shin" ], "target": "front_ankle_ik", "bendPositive": false }, { "name": "front_foot_ik", + "order": 2, "bones": [ "front_foot" ], "target": "front_foot_ik" }, { "name": "rear_ankle_ik", + "order": 1, "bones": [ "rear_thigh", "rear_shin" ], "target": "rear_ankle_ik", "bendPositive": false }, { "name": "rear_foot_ik", + "order": 3, "bones": [ "rear_foot" ], "target": "rear_foot_ik" } @@ -109,7 +113,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 3, 0, 1, 2, 3 ], - "vertices": [ 59.16, -86.8, 28.32, 0.92, 112.27, 30.44, 143.11, -57.28 ], + "vertices": [ 59.15999, -86.8, 28.31999, 0.92, 112.26999, 30.44, 143.11, -57.27999 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 93, @@ -129,7 +133,7 @@ "type": "mesh", "uvs": [ 0.59417, 0.23421, 0.62257, 0.30335, 0.65009, 0.37035, 0.67637, 0.38403, 0.72068, 0.40709, 0.76264, 0.42894, 1, 0.70375, 1, 1, 0.65517, 1, 0.3644, 1, 0, 1, 0, 0.39196, 0, 0, 0.17845, 0, 0.49795, 0 ], "triangles": [ 8, 6, 7, 8, 5, 6, 8, 4, 5, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 13, 13, 14, 0, 11, 1, 10, 11, 12, 13 ], - "vertices": [ 2, 16, 18.17, 41.57, 0.72255, 17, 12.46, 46.04, 0.27744, 2, 16, 24.08, 40.75999, 0.57406, 17, 16.12, 41.34, 0.42592, 2, 16, 29.8, 39.97, 0.47663, 17, 19.67, 36.77, 0.52336, 2, 16, 32.8, 41.66, 0.37452, 17, 22.99, 35.89, 0.62547, 2, 16, 37.86, 44.51, 0.24772, 17, 28.6, 34.4, 0.75227, 2, 16, 42.65, 47.21, 0.17783, 17, 33.91, 32.98, 0.82216, 1, 17, 64.15, 14.56, 1, 1, 17, 64.51, -5.87, 1, 1, 17, 21.07, -6.63, 1, 2, 16, 35.38, -16.16, 0.99998, 17, -15.54, -7.28, 1.0E-5, 2, 16, 3.1, -48.81, 1, 17, -61.44, -8.09, 0, 2, 16, -26.72, -19.31, 1, 17, -62.18, 33.84, 0, 2, 16, -45.95, -0.29, 1, 17, -62.66, 60.88, 0, 1, 16, -30.14, 15.69, 1, 2, 16, -1.84, 44.31, 0.91511, 17, 0.05, 61.98, 0.08488 ], + "vertices": [ 2, 16, 18.17, 41.56999, 0.72254, 17, 12.46, 46.04, 0.27744, 2, 16, 24.07999, 40.75999, 0.57406, 17, 16.12, 41.34, 0.42592, 2, 16, 29.79999, 39.97, 0.47663, 17, 19.67, 36.77, 0.52336, 2, 16, 32.79999, 41.65999, 0.37452, 17, 22.98999, 35.88999, 0.62546, 2, 16, 37.86, 44.50999, 0.24772, 17, 28.6, 34.4, 0.75226, 2, 16, 42.65, 47.20999, 0.17782, 17, 33.90999, 32.97999, 0.82216, 1, 17, 64.15, 14.56, 1, 1, 17, 64.51, -5.86999, 1, 1, 17, 21.06999, -6.63, 1, 2, 16, 35.38, -16.15999, 0.99997, 17, -15.53999, -7.28, 0, 2, 16, 3.09999, -48.81, 1, 17, -61.43999, -8.09, 0, 2, 16, -26.71999, -19.30999, 1, 17, -62.18, 33.84, 0, 2, 16, -45.95, -0.28999, 1, 17, -62.65999, 60.88, 0, 1, 16, -30.13999, 15.68999, 1, 2, 16, -1.84, 44.31, 0.9151, 17, 0.05, 61.97999, 0.08488 ], "hull": 15, "edges": [ 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 22, 24, 24, 26, 26, 28, 22, 26, 12, 14, 10, 12, 2, 4, 2, 20, 4, 6, 6, 16, 2, 0, 0, 28, 6, 8, 8, 10 ], "width": 126, @@ -152,7 +156,7 @@ "type": "mesh", "uvs": [ 0.53653, 0.04113, 0.72921, 0.16035, 0.91666, 0.33222, 0.97046, 0.31329, 1, 0.48053, 0.95755, 0.57329, 0.88825, 0.63279, 0.86877, 0.78962, 0.77403, 0.86749, 0.72628, 1, 0.60713, 0.93862, 0.496, 0.88138, 0.41557, 0.75026, 0.32547, 0.70084, 0.2782, 0.58256, 0.17209, 0.63281, 0.17228, 0.75071, 0.1078, 0.79897, 0, 0.32304, 0, 0.12475, 0.07372, 0.07343, 0.15423, 0.10733, 0.23165, 0.13994, 0.30313, 0.02256, 0.34802, 0, 0.42978, 0.69183, 0.39475, 0.51041, 0.39488, 0.31511, 0.45878, 0.23197, 0.56501, 0.28108, 0.6996, 0.39216, 0.82039, 0.54203, 0.85737, 0.62342, 0.91107, 0.51407, 0.72638, 0.32146, 0.58763, 0.19609, 0.48074, 0.11268, 0.37822, 0.05501, 0.32869, 0.17866, 0.31899, 0.30499, 0.36035, 0.53798, 0.40327, 0.70072, 0.30058, 0.55837, 0.21956, 0.2815, 0.09963, 0.28942, 0.56862, 0.4368, 0.4911, 0.37156, 0.51184, 0.52092, 0.67018, 0.59303, 0.7619, 0.68574, 0.73296, 0.43354 ], "triangles": [ 49, 8, 48, 9, 48, 8, 12, 25, 11, 48, 9, 10, 47, 48, 10, 47, 10, 25, 25, 10, 11, 8, 49, 7, 17, 15, 16, 17, 18, 15, 49, 32, 7, 7, 32, 6, 41, 42, 40, 12, 41, 25, 41, 12, 42, 13, 14, 42, 12, 13, 42, 41, 40, 25, 40, 26, 25, 25, 26, 47, 49, 31, 32, 31, 49, 50, 18, 44, 15, 42, 14, 44, 14, 15, 44, 5, 6, 33, 6, 32, 33, 32, 31, 33, 47, 45, 48, 49, 48, 50, 50, 45, 30, 50, 48, 45, 42, 44, 43, 5, 33, 4, 42, 39, 40, 42, 43, 39, 31, 50, 33, 40, 39, 26, 45, 47, 46, 33, 2, 4, 2, 33, 34, 47, 26, 46, 26, 27, 46, 26, 39, 27, 2, 3, 4, 30, 45, 29, 30, 34, 50, 33, 50, 34, 45, 46, 29, 30, 29, 34, 27, 28, 46, 46, 28, 29, 18, 19, 44, 29, 35, 34, 2, 34, 1, 34, 35, 1, 28, 27, 38, 27, 39, 38, 39, 43, 38, 44, 19, 21, 44, 21, 43, 21, 19, 20, 43, 22, 38, 43, 21, 22, 29, 28, 35, 28, 36, 35, 28, 38, 36, 36, 0, 35, 35, 0, 1, 22, 23, 38, 38, 37, 36, 37, 23, 24, 37, 38, 23, 36, 37, 0, 37, 24, 0 ], - "vertices": [ 172.08, 22.81, 170.09, -31.19, 159.41, -86.8, 167.03, -99, 143.4, -115.48, 125.2, -110.14, 109.88, -96.35, 83.64, -100.19, 63.25, -81.15, 38.37, -76.69, 37.66, -43.98, 37.00999, -13.47, 50.57, 13.54, 50.51, 38.45, 64.94, 56.6, 47.89, 79.94999, 29.45, 73.42, 16.31, 86.63, 81.5, 139.38, 112.55, 150.29, 126.97, 134.97, 128.63, 113.28, 130.22, 92.43, 154.79, 81.29, 162.21, 71.48, 60.96, 13.26, 86.33, 31.87, 116.92, 42.6, 135.47, 31.44, 136.98, 2.58, 131.23, -36.66, 118.22, -74.65, 108.68, -88.23, 130.45, -95.43, 144.62, -39.36, 152.24, 1.69, 156.05, 32.59999, 156.21, 61.01, 132.56, 66.4, 111.94, 61.83, 79.03, 38.83, 57.27, 19.29999, 70.67, 52.42, 107.01, 87.61, 95.39, 116.7, 112.91, -6.87, 116.41, 15.8, 94.82, 2.47, 97.23, -40.47, 90.66, -68.16, 127.64, -47.15 ], + "vertices": [ 172.08, 22.80999, 170.09, -31.19, 159.41, -86.8, 167.02998, -99, 143.4, -115.48, 125.19999, -110.13999, 109.87999, -96.34999, 83.63999, -100.19, 63.25, -81.15, 38.36999, -76.69, 37.65999, -43.97999, 37.00999, -13.47, 50.56999, 13.53999, 50.50999, 38.45, 64.94, 56.59999, 47.88999, 79.94999, 29.45, 73.41999, 16.30999, 86.62999, 81.5, 139.38, 112.55, 150.29, 126.97, 134.97, 128.63, 113.27999, 130.22, 92.43, 154.79, 81.29, 162.21, 71.48, 60.95999, 13.26, 86.33, 31.87, 116.91999, 42.59999, 135.47, 31.44, 136.98, 2.57999, 131.23, -36.65999, 118.22, -74.65, 108.68, -88.23, 130.45, -95.43, 144.62, -39.36, 152.24, 1.69, 156.05, 32.59999, 156.21, 61.00999, 132.56, 66.4, 111.94, 61.83, 79.02999, 38.83, 57.27, 19.29999, 70.66999, 52.41999, 107.01, 87.61, 95.38999, 116.69999, 112.91, -6.86999, 116.41, 15.8, 94.81999, 2.47, 97.23, -40.47, 90.66, -68.16, 127.63999, -47.15 ], "hull": 25, "edges": [ 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 48, 46, 46, 44, 36, 38, 40, 38, 24, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 62, 64, 64, 12, 8, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 24, 24, 84, 84, 86, 86, 44, 40, 42, 42, 44, 42, 88, 88, 30, 58, 90, 90, 92, 92, 94, 18, 20, 20, 22, 94, 20, 18, 96, 96, 98, 60, 100, 100, 62, 98, 100 ], "width": 261, @@ -167,7 +171,7 @@ "type": "mesh", "uvs": [ 0.75918, 0.06107, 0.88392, 0.17892, 0.90174, 0.30856, 0.94223, 0.1966, 1, 0.26584, 1, 0.42199, 0.95863, 0.46992, 0.92118, 0.51333, 0.85957, 0.53469, 0.78388, 0.65605, 0.74384, 0.74838, 0.85115, 0.75151, 0.84828, 0.82563, 0.8178, 0.85367, 0.75598, 0.85906, 0.76236, 0.90467, 0.65875, 1, 0.38336, 1, 0.18579, 0.85403, 0.12741, 0.8109, 0.06024, 0.69209, 0, 0.58551, 0, 0.41021, 0.08529, 0.20691, 0.24243, 0.14504, 0.49999, 0.14209, 0.50323, 0.07433, 0.41738, 0, 0.57613, 0, 0.85059, 0.36086, 0.73431, 0.43206, 0.6848, 0.3127, 0.72164, 0.16717, 0.55931, 0.04153, 0.44763, 0.22894, 0.23925, 0.26559, 0.71271, 0.44035, 0.56992, 0.38299, 0.41678, 0.3351, 0.29299, 0.31496, 0.70801, 0.44501, 0.56676, 0.38976, 0.4152, 0.34416, 0.28753, 0.33017, 0.88988, 0.50176, 0.30388, 0.73462, 0.2646, 0.65674, 0.21414, 0.61583, 0.14612, 0.62193, 0.10315, 0.66636, 0.10357, 0.72556, 0.14505, 0.79163, 0.20263, 0.81355, 0.27872, 0.80158, 0.34946, 0.7376, 0.23073, 0.57073, 0.08878, 0.60706, 0.2946, 0.8129, 0.73005, 0.87883, 0.69804, 0.87348, 0.66165, 0.79681 ], "triangles": [ 34, 25, 31, 37, 38, 34, 31, 32, 29, 31, 37, 34, 37, 41, 38, 30, 31, 29, 36, 37, 31, 33, 27, 28, 26, 27, 33, 0, 33, 28, 32, 33, 0, 32, 0, 1, 33, 25, 26, 33, 32, 25, 31, 25, 32, 2, 32, 1, 2, 3, 4, 2, 29, 32, 2, 4, 5, 29, 2, 5, 6, 29, 5, 30, 36, 31, 30, 29, 6, 44, 30, 6, 36, 30, 44, 34, 24, 25, 35, 23, 24, 35, 24, 34, 39, 35, 34, 39, 22, 35, 38, 39, 34, 42, 39, 38, 43, 39, 42, 41, 42, 38, 22, 23, 35, 43, 22, 39, 40, 37, 36, 41, 37, 40, 7, 44, 6, 8, 36, 44, 40, 36, 8, 8, 44, 7, 55, 22, 43, 56, 21, 22, 55, 56, 22, 55, 48, 56, 47, 48, 55, 9, 40, 8, 55, 54, 46, 42, 55, 43, 47, 55, 46, 49, 56, 48, 20, 21, 56, 20, 56, 49, 50, 49, 48, 20, 49, 50, 46, 54, 45, 54, 55, 41, 55, 42, 41, 9, 60, 40, 46, 51, 50, 60, 41, 40, 10, 60, 9, 54, 41, 60, 46, 52, 51, 19, 50, 51, 50, 48, 47, 47, 46, 50, 46, 45, 52, 20, 50, 19, 57, 53, 45, 57, 45, 54, 53, 52, 45, 12, 10, 11, 13, 10, 12, 18, 51, 52, 19, 51, 18, 18, 52, 53, 18, 53, 57, 14, 10, 13, 60, 10, 14, 59, 60, 14, 58, 59, 14, 58, 14, 15, 17, 54, 60, 16, 17, 60, 57, 54, 17, 18, 57, 17, 59, 16, 60, 16, 59, 58, 16, 58, 15 ], - "vertices": [ 1, 27, 41.97, -41.79, 1, 3, 25, 73.46, 27.54, 0.18925, 27, -5.75, -51.7, 0.72418, 26, 112.98, -11.43, 0.08656, 3, 25, 38.23, 10.98, 0.84283, 27, -41.00999, -35.22, 0.09705, 26, 92.72, -44.67, 0.0601, 1, 25, 73.35, 10.89, 1, 1, 25, 58.59, -10.38, 1, 2, 24, 75.49, -4.55, 0.10257, 25, 14.35, -24.8, 0.89742, 2, 24, 59.82, -13.72, 0.41734, 25, -2.69, -18.57, 0.58265, 1, 23, 163.06, -108.68, 1, 1, 23, 151.52, -95.04, 1, 1, 23, 110.6, -87.69, 1, 1, 23, 81.05, -86.58, 1, 1, 23, 89.81, -114.32, 1, 1, 23, 68.72, -120.91, 1, 1, 23, 58.1, -115.89, 1, 1, 23, 51.03, -100.62, 1, 1, 23, 38.78, -106.76, 1, 1, 23, 2.67, -89.69, 1, 1, 23, -22.07, -19.29999, 1, 1, 23, 1.19, 45.62, 1, 1, 23, 8.07, 64.81, 1, 1, 23, 35.43, 93.72, 1, 1, 23, 59.98, 119.66, 1, 1, 23, 109.25, 136.98, 1, 1, 23, 174.07, 135.27, 1, 2, 23, 205.58, 101.22, 0.83763, 26, -16.79999, 104.63, 0.16236, 2, 27, 58.93, 30.5, 0.60735, 26, 38.37, 61.89, 0.39264, 2, 27, 75.55, 19, 0.94502, 26, 51.62, 77.15, 0.05497, 1, 27, 106.69, 26.9, 1, 1, 27, 83.78, -9.5, 1, 4, 24, 44.52, 27.24, 0.19601, 25, 19.12, 19.33, 0.58066, 27, -46.82, -15.19, 0.07453, 26, 72.17, -48.24, 0.14877, 2, 24, 7.42, 19.08, 0.79203, 26, 34.31, -45.24, 0.20796, 1, 26, 45.94, -9.06, 1, 1, 27, 20.62, -16.35, 1, 1, 27, 75.73, 0.94, 1, 3, 23, 200.44, 40.47, 0.4822, 27, 44.58, 56.29, 0.14949, 26, 11.16, 50.46, 0.3683, 1, 23, 171.41, 90.11, 1, 2, 24, 1.07, 18.93, 0.79203, 26, 28.19, -43.54, 0.20796, 3, 23, 168.13, -6.01, 0.11484, 24, -28.63, 49.03, 0.13133, 26, 8.54, -6.08, 0.75382, 2, 23, 167.82, 37.86, 0.27101, 26, -15.06, 30.9, 0.72898, 1, 23, 162.36, 71.5, 1, 1, 23, 163.1, -47.44, 1, 1, 23, 165.94, -5.87, 1, 1, 23, 165.14, 37.37, 1, 1, 23, 157.6, 71.39, 1, 1, 23, 163.5, -99.53, 1, 1, 23, 45.37, 27.24, 1, 1, 23, 63.73, 44.98, 1, 1, 23, 70.69999, 61.92, 1, 1, 23, 62.87, 78.69999, 1, 1, 23, 46.52, 85.3, 1, 1, 23, 29.92, 79.33999, 1, 1, 23, 15.07, 62.21, 1, 1, 23, 14.09, 45.32, 1, 1, 23, 24.29, 27.05, 1, 1, 23, 48.63, 15.29, 1, 1, 23, 84.87, 62.14, 1, 1, 23, 61.9, 94.83, 1, 1, 23, 22.54, 21.87, 1, 1, 23, 43.14, -95.94, 1, 1, 23, 41.77, -87.23, 1, 1, 23, 60.05, -70.35, 1 ], + "vertices": [ 1, 27, 41.97, -41.79, 1, 3, 25, 73.45999, 27.54, 0.18925, 27, -5.75, -51.7, 0.72417, 26, 112.98, -11.43, 0.08656, 3, 25, 38.22999, 10.97999, 0.84283, 27, -41.00999, -35.22, 0.09705, 26, 92.72, -44.66999, 0.0601, 1, 25, 73.34999, 10.89, 1, 1, 25, 58.59, -10.38, 1, 2, 24, 75.48999, -4.55, 0.10256, 25, 14.35, -24.79999, 0.89741, 2, 24, 59.81999, -13.72, 0.41734, 25, -2.69, -18.56999, 0.58265, 1, 23, 163.06, -108.68, 1, 1, 23, 151.52, -95.04, 1, 1, 23, 110.59999, -87.69, 1, 1, 23, 81.05, -86.58, 1, 1, 23, 89.80999, -114.31999, 1, 1, 23, 68.72, -120.91, 1, 1, 23, 58.09999, -115.88999, 1, 1, 23, 51.02999, -100.62, 1, 1, 23, 38.77999, -106.76, 1, 1, 23, 2.67, -89.69, 1, 1, 23, -22.06999, -19.29999, 1, 1, 23, 1.19, 45.61999, 1, 1, 23, 8.06999, 64.80999, 1, 1, 23, 35.43, 93.72, 1, 1, 23, 59.97999, 119.66, 1, 1, 23, 109.25, 136.98, 1, 1, 23, 174.07, 135.27, 1, 2, 23, 205.58, 101.22, 0.83762, 26, -16.79999, 104.62999, 0.16235, 2, 27, 58.93, 30.5, 0.60734, 26, 38.36999, 61.88999, 0.39263, 2, 27, 75.55, 19, 0.94502, 26, 51.61999, 77.15, 0.05496, 1, 27, 106.69, 26.89999, 1, 1, 27, 83.77999, -9.5, 1, 4, 24, 44.52, 27.23999, 0.196, 25, 19.12, 19.32999, 0.58065, 27, -46.81999, -15.18999, 0.07453, 26, 72.16999, -48.24, 0.14877, 2, 24, 7.42, 19.07999, 0.79202, 26, 34.31, -45.24, 0.20795, 1, 26, 45.93999, -9.06, 1, 1, 27, 20.62, -16.35, 1, 1, 27, 75.73, 0.93999, 1, 3, 23, 200.44, 40.47, 0.48219, 27, 44.58, 56.29, 0.14948, 26, 11.15999, 50.45999, 0.36829, 1, 23, 171.41, 90.11, 1, 2, 24, 1.07, 18.93, 0.79202, 26, 28.19, -43.54, 0.20795, 3, 23, 168.13, -6.01, 0.11484, 24, -28.62999, 49.02999, 0.13132, 26, 8.53999, -6.07999, 0.75382, 2, 23, 167.82, 37.86, 0.27101, 26, -15.06, 30.89999, 0.72898, 1, 23, 162.36, 71.5, 1, 1, 23, 163.1, -47.43999, 1, 1, 23, 165.94, -5.86999, 1, 1, 23, 165.13998, 37.36999, 1, 1, 23, 157.6, 71.38999, 1, 1, 23, 163.5, -99.52999, 1, 1, 23, 45.36999, 27.23999, 1, 1, 23, 63.72999, 44.97999, 1, 1, 23, 70.69999, 61.91999, 1, 1, 23, 62.86999, 78.69999, 1, 1, 23, 46.52, 85.3, 1, 1, 23, 29.92, 79.33999, 1, 1, 23, 15.06999, 62.20999, 1, 1, 23, 14.09, 45.31999, 1, 1, 23, 24.29, 27.04999, 1, 1, 23, 48.63, 15.28999, 1, 1, 23, 84.87, 62.13999, 1, 1, 23, 61.9, 94.83, 1, 1, 23, 22.54, 21.87, 1, 1, 23, 43.13999, -95.94, 1, 1, 23, 41.77, -87.23, 1, 1, 23, 60.04999, -70.34999, 1 ], "hull": 29, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 56, 54, 56, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 42, 44, 32, 34, 4, 58, 58, 60, 62, 64, 64, 66, 66, 54, 50, 68, 68, 70, 70, 44, 60, 72, 62, 74, 72, 74, 74, 76, 76, 78, 78, 44, 16, 80, 80, 82, 82, 84, 84, 86, 86, 44, 14, 88, 88, 72, 14, 16, 10, 12, 12, 14, 12, 60, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 90, 108, 110, 110, 112, 38, 40, 40, 42, 112, 40, 34, 36, 36, 38, 36, 114, 114, 108, 30, 32, 30, 28, 24, 26, 28, 26, 22, 24, 22, 20, 20, 18, 18, 16, 28, 116, 116, 118, 118, 120, 120, 20 ], "width": 271, @@ -178,7 +182,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -186,7 +190,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 3, 0, 1, 2, 3 ], - "vertices": [ 11.28, -85.88, -19.56, 1.84, 36.09, 21.41, 66.93, -66.31 ], + "vertices": [ 11.27999, -85.87999, -19.55999, 1.84, 36.09, 21.40999, 66.93, -66.30999 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 93, @@ -209,7 +213,7 @@ "type": "mesh", "uvs": [ 0.48368, 0.1387, 0.5199, 0.21423, 0.55099, 0.27906, 0.58838, 0.29816, 0.63488, 0.32191, 0.77342, 0.39266, 1, 0.73346, 1, 1, 0.59435, 1, 0.3116, 1, 0, 1, 0, 0.41396, 0.1363, 0, 0.41716, 0 ], "triangles": [ 8, 6, 7, 6, 8, 5, 5, 8, 4, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 12, 12, 13, 0, 11, 1, 10 ], - "vertices": [ 2, 6, 10.45, 29.41, 0.88824, 7, -6.74, 49.62, 0.11175, 2, 6, 16.54999, 29.27, 0.83163, 7, -2.65, 45.08, 0.16836, 2, 6, 21.79, 29.15, 0.78305, 7, 0.85, 41.18999, 0.21694, 2, 6, 25.53, 31.43, 0.67844, 7, 5.07, 40.04, 0.32155, 2, 6, 30.17, 34.27, 0.54832, 7, 10.33, 38.61, 0.45167, 2, 6, 44.01, 42.72, 0.16069, 7, 25.97, 34.36, 0.83929, 1, 7, 51.56, 13.89, 1, 2, 6, 88.08, 36.28, 0, 7, 51.54, -2.08999, 1, 2, 6, 56.58, 2.98, 0.02959, 7, 5.71, -2.05, 0.9704, 2, 6, 34.63, -20.21999, 0.99999, 7, -26.22, -2.03, 0, 2, 6, 10.43, -45.8, 0.99999, 7, -61.43, -2, 0, 2, 6, -15.1, -21.64, 1, 7, -61.4, 33.15, 0, 2, 6, -22.56, 6.61, 0.99999, 7, -45.98, 57.97, 0, 2, 6, -0.76, 29.67, 0.99219, 7, -14.25, 57.94, 0.0078 ], + "vertices": [ 2, 6, 10.44999, 29.40999, 0.88823, 7, -6.73999, 49.61999, 0.11174, 2, 6, 16.54999, 29.27, 0.83162, 7, -2.65, 45.08, 0.16835, 2, 6, 21.79, 29.14999, 0.78305, 7, 0.85, 41.18999, 0.21694, 2, 6, 25.53, 31.43, 0.67843, 7, 5.07, 40.04, 0.32155, 2, 6, 30.17, 34.27, 0.54831, 7, 10.32999, 38.61, 0.45166, 2, 6, 44.00999, 42.72, 0.16069, 7, 25.96999, 34.36, 0.83929, 1, 7, 51.56, 13.89, 1, 2, 6, 88.08, 36.27999, 0, 7, 51.54, -2.08999, 1, 2, 6, 56.58, 2.98, 0.02958, 7, 5.71, -2.04999, 0.97039, 2, 6, 34.63, -20.21999, 0.99998, 7, -26.21999, -2.02999, 0, 2, 6, 10.43, -45.79999, 0.99998, 7, -61.43, -2, 0, 2, 6, -15.1, -21.63999, 1, 7, -61.4, 33.15, 0, 2, 6, -22.55999, 6.61, 0.99998, 7, -45.97999, 57.97, 0, 2, 6, -0.75999, 29.67, 0.99219, 7, -14.25, 57.93999, 0.00779 ], "hull": 14, "edges": [ 14, 12, 10, 12, 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 4, 2, 2, 20, 4, 6, 6, 16, 6, 8, 8, 10, 2, 0, 0, 26 ], "width": 113, @@ -232,7 +236,7 @@ "type": "mesh", "uvs": [ 0.62509, 0.12672, 1, 0.2636, 1, 0.2887, 1, 0.66021, 1, 0.68245, 0.92323, 0.69258, 0.95115, 0.84965, 0.77123, 1, 0.49654, 1, 0.27181, 1, 0.13842, 0.77196, 0, 0.45614, 0, 0.19436, 0.14462, 0, 0.27801, 0, 0.72524, 0.27835, 0.76091, 0.46216, 0.84888, 0.67962, 0.68257, 0.63249, 0.53985, 0.38469, 0.25443, 0.32169, 0.30062, 0.55173, 0.39552, 0.79506, 0.26389, 0.17006, 0.52409, 0.18673 ], "triangles": [ 6, 17, 5, 6, 7, 17, 8, 18, 7, 7, 18, 17, 9, 22, 8, 8, 22, 18, 9, 10, 22, 10, 21, 22, 22, 21, 18, 10, 11, 21, 4, 5, 3, 5, 17, 3, 3, 17, 16, 17, 18, 16, 16, 2, 3, 21, 19, 18, 18, 19, 16, 11, 20, 21, 21, 20, 19, 19, 15, 16, 16, 15, 2, 11, 12, 20, 20, 24, 19, 19, 24, 15, 20, 23, 24, 20, 12, 23, 15, 1, 2, 24, 0, 15, 15, 0, 1, 12, 13, 23, 0, 24, 14, 14, 24, 13, 24, 23, 13 ], - "vertices": [ 129.62, -10.38, 102.17, -45.07, 97.66, -44.71, 31, -39.45, 27.01, -39.13, 25.78, -31.49, -2.60999, -31.99, -28.2, -12.29, -26.08, 14.54, -24.34, 36.5, 17.59, 46.3, 75.33, 55.34, 122.31, 51.63, 156.07, 34.75, 155.04, 21.72, 101.64, -18.02, 68.37999, -18.9, 28.68, -24.41, 38.41999, -8.83, 83.99, 1.59, 97.5, 28.58, 55.86, 27.33, 11.47, 21.51, 124.63, 25.51, 119.63, 0.32 ], + "vertices": [ 129.62, -10.38, 102.16999, -45.06999, 97.66, -44.70999, 31, -39.45, 27.01, -39.13, 25.78, -31.48999, -2.60999, -31.98999, -28.2, -12.28999, -26.07999, 14.53999, -24.34, 36.5, 17.59, 46.29999, 75.33, 55.34, 122.30999, 51.63, 156.07, 34.75, 155.04, 21.71999, 101.63999, -18.02, 68.37999, -18.89999, 28.68, -24.40999, 38.41999, -8.82999, 83.98999, 1.59, 97.5, 28.57999, 55.86, 27.32999, 11.47, 21.51, 124.62999, 25.51, 119.62999, 0.31999 ], "hull": 15, "edges": [ 14, 12, 12, 10, 10, 8, 18, 20, 20, 22, 22, 24, 26, 28, 24, 26, 2, 4, 30, 4, 30, 32, 32, 34, 4, 6, 6, 8, 34, 6, 34, 36, 36, 38, 38, 40, 40, 24, 36, 14, 40, 42, 42, 44, 14, 16, 16, 18, 44, 16, 40, 46, 38, 48, 48, 30, 2, 0, 0, 28, 48, 0, 48, 26 ], "width": 98, @@ -708,7 +712,7 @@ { "time": 0.6, "angle": -63.03 }, { "time": 0.6333, "angle": -47.34 }, { "time": 0.6666, "angle": -31.04 }, - { "time": 0.7, "angle": -25.01 }, + { "time": 0.6999, "angle": -25.01 }, { "time": 0.7666, "angle": -15.95 }, { "time": 0.8, "angle": 0 } ], @@ -731,7 +735,7 @@ { "time": 0.6, "x": 28.47, "y": 59.02 }, { "time": 0.6333, "x": 70.89, "y": 78.19 }, { "time": 0.6666, "x": 110.42, "y": 99 }, - { "time": 0.7, "x": 122.21, "y": 79.58 }, + { "time": 0.6999, "x": 122.21, "y": 79.58 }, { "time": 0.7666, "x": 145.33, "y": 44.61 }, { "time": 0.8, "x": 159.31, "y": 38.68 } ] @@ -760,7 +764,7 @@ { "time": 0.5333, "angle": 85.36 }, { "time": 0.5666, "angle": 49.17 }, { "time": 0.6333, "angle": 9.5 }, - { "time": 0.7, "angle": 4.15 }, + { "time": 0.6999, "angle": 4.15 }, { "time": 0.7666, "angle": -1.36 }, { "time": 0.8, "angle": 0 } ], @@ -779,7 +783,7 @@ { "time": 0.5333, "x": -166.79, "y": -2.63 }, { "time": 0.5666, "x": -252.51, "y": 57.14 }, { "time": 0.6333, "x": -304.31, "y": 214.02 }, - { "time": 0.7, "x": -296.91, "y": 281.36 }, + { "time": 0.6999, "x": -296.91, "y": 281.36 }, { "time": 0.7666, "x": -269.53, "y": 257.68 }, { "time": 0.8, "x": -248.9, "y": 230.06 } ] @@ -803,7 +807,7 @@ { "time": 0.5333, "angle": 0.82 }, { "time": 0.5666, "angle": -61.7 }, { "time": 0.6333, "angle": -139.59 }, - { "time": 0.7, "angle": -146.78 }, + { "time": 0.6999, "angle": -146.78 }, { "time": 0.8, "angle": -151.51 } ] }, @@ -821,7 +825,7 @@ { "time": 0.5666, "angle": -66.86 }, { "time": 0.6, "angle": -22.89 }, { "time": 0.6333, "angle": -12.06 }, - { "time": 0.7, "angle": 35.39 }, + { "time": 0.6999, "angle": 35.39 }, { "time": 0.8, "angle": 42.19 } ] }, @@ -902,17 +906,17 @@ "goggles": [ { "time": 0, - "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ], + "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.9251, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.4, - "vertices": [ 1.73339, -8.03618, 0.70187, -3.25497, 0.39651, -1.84367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08755, -5.04639, 3.97546, -18.45124, 0.47232, -2.1937, 1.59594, -7.39851, 2.05963, -9.54877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.58685, -11.98995, 2.93106, -13.58876, 2.71148, -12.57045, 2.01113, -9.32378, 2.26412, -10.49626, 2.34347, -10.8643, 2.05169, -9.51168, 1.96224, -9.10095, 0.75805, -3.51469, 0.08056, -0.37484, 0.57971, -2.69226, 0.35055, -1.63069, 0.65036, -3.01589, 1.40933, -6.53389, 1.98852, -9.21901, 4.07943, -18.92243, 3.45761, -16.03435, 3.45532, -16.02368, 2.42819, -11.25721, 2.14263, -9.93373, 2.06396, -9.56589, 2.5906, -12.00682, 0, 0, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937 ], + "vertices": [ 1.73339, -8.03618, 0.70187, -3.25497, 0.39651, -1.84367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08755, -5.04639, 3.97546, -18.45124, 0.47232, -2.1937, 1.59594, -7.39851, 2.05963, -9.54877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.58685, -11.98995, 2.93106, -13.58876, 2.71148, -12.57044, 2.01113, -9.32378, 2.26412, -10.49626, 2.34347, -10.8643, 2.05169, -9.51168, 1.96224, -9.10095, 0.75805, -3.51469, 0.08056, -0.37484, 0.57971, -2.69226, 0.35055, -1.63069, 0.65036, -3.01589, 1.40933, -6.53389, 1.98852, -9.21901, 4.07943, -18.92243, 3.45761, -16.03435, 3.45532, -16.02368, 2.42819, -11.2572, 2.14263, -9.93373, 2.06396, -9.56589, 2.5906, -12.00682, 0, 0, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.8, - "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ] + "vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.9251, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ] } ] }, @@ -921,19 +925,19 @@ { "time": 0, "offset": 32, - "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ], + "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58547, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.4, "offset": 34, - "vertices": [ 3.14837, -14.61261, 3.14837, -14.61261, 3.14837, -14.61261, 0.83425, -3.87112, 0, 0, 0, 0, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0, 0, 0, 0, 0, 0, 0, 0, 0.55618, -2.58074, 0.41714, -1.93557, 1.04281, -4.83889 ], + "vertices": [ 3.14837, -14.6126, 3.14837, -14.6126, 3.14837, -14.6126, 0.83425, -3.87112, 0, 0, 0, 0, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0, 0, 0, 0, 0, 0, 0, 0, 0.55618, -2.58074, 0.41714, -1.93557, 1.04281, -4.83889 ], "curve": [ 0.25, 0, 0.75, 1 ] }, { "time": 0.8, "offset": 32, - "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ] + "vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.14776, 14.58547, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ] } ] }, @@ -965,7 +969,7 @@ { "time": 0.4, "offset": 2, - "vertices": [ 1.4615, 2.96601, 0.68634, 3.23445, 2.20619, 0.10388, 0, 0, -0.31028, -2.89859, 0, 0, -0.1851, 0.38208, 0.33795, -3.61551, 0, 0, 0, 0, -0.5516, 4.21406, -0.5516, 4.21406, 0, 0, 0, 0, -0.29403, -8.94627, -0.02416, -9.50223, 0.23017, -9.93909, -4.64135, -8.88913, -2.62136, -9.24012, -1.70074, -5.16261, -1.70074, -5.16261, -1.70074, -5.16261, 0, 0, -7.3706, -10.47316 ] + "vertices": [ 1.4615, 2.96601, 0.68634, 3.23445, 2.20619, 0.10388, 0, 0, -0.31028, -2.89859, 0, 0, -0.1851, 0.38208, 0.33795, -3.61551, 0, 0, 0, 0, -0.5516, 4.21406, -0.5516, 4.21406, 0, 0, 0, 0, -0.29403, -8.94627, -0.02416, -9.50223, 0.23017, -9.93909, -4.64135, -8.88913, -2.62136, -9.24011, -1.70074, -5.16261, -1.70074, -5.16261, -1.70074, -5.16261, 0, 0, -7.3706, -10.47315 ] }, { "time": 0.8, diff --git a/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.skel b/spine-libgdx/spine-libgdx-tests/assets/spineboy/spineboy-mesh.skel index 8bfb9a5a29e0a269ee87ad9d874f9b916e72d690..be61c7fd8a74ae01c0e5a9346127109725bd9229 100644 GIT binary patch delta 305 zcmZ48$vCHz(Nrck$ucO))hn!A-#0PDz&F$~D#R(G(8Sa+)P%=a&s5LAST`xPB#{9M z7#%+_Fig}jU}TsWrwJrFjex{nV<7PfC^lJzQ6ET#g2^^UV@9UQyMZLb$v6{&jDs2D& delta 168 zcmZ2jxw2A6rYImkveL=N&E3q+z}Y>@w7fXf)ydn%E7UTS-B`~=&%ns}b@2ihv->L; zCz|RrF)~g})drChO+n;wBM|w^07y>OW;6s*v5a6|AB5V^XaW-a0+CZ=(gg7Wm~=o? dEt3|AS^=RhGlBK7FoP_aYyze>r!d=E0s!W@Cv*S+ diff --git a/spine-libgdx/spine-libgdx-tests/assets/test/test.json b/spine-libgdx/spine-libgdx-tests/assets/test/test.json index 872fb7692..4f6cd3105 100644 --- a/spine-libgdx/spine-libgdx-tests/assets/test/test.json +++ b/spine-libgdx/spine-libgdx-tests/assets/test/test.json @@ -1,5 +1,5 @@ { -"skeleton": { "hash": "NG9aJneROk8CsMAugcCOiMeXbGA", "spine": "Dev", "width": 0, "height": 0 }, +"skeleton": { "hash": "Qw/GA2Pge/zEE/8xq3vX9lpp4Qg", "spine": "3.0.00", "width": 0, "height": 0 }, "bones": [ { "name": "root" } ], @@ -7,7 +7,14 @@ "event": {} }, "animations": { - "events": { + "events1": { + "events": [ + { "time": 0, "name": "event", "string": "0" }, + { "time": 0.4666, "name": "event", "string": "14" }, + { "time": 1, "name": "event", "string": "30" } + ] + }, + "events2": { "events": [ { "time": 0, "name": "event", "string": "0" }, { "time": 0.4666, "name": "event", "string": "14" }, diff --git a/spine-libgdx/spine-libgdx-tests/assets/test/test.spine b/spine-libgdx/spine-libgdx-tests/assets/test/test.spine index 13f3b53f4e7f8fea52f91deb10dab03e8e7a899d..97538e1d25f88454678f8277e4980f68eecc9b89 100644 GIT binary patch literal 436 zcmV;l0Zaa!Q@ct7K@`1bc6WA@O|p52Xpn&TLJ?7HHSt~8sAyp+$QDsdG!L;;;m?fSsujIRXJ$1_fM!kU&^AA_5+wh^0`g)m|;q9?15f;xL8UKlXE_;-zA- z1ZTn^nRdaUC@{!#qZ=O2<4QOUfo2u3(iLh%W{yWiYO+&!<#2!im|Kg0YDhe{ir4C$ z1l7qPSKBO=BGi(Z-}$plkEkR+2&b-pCVcFaaQdQ+kgt%m{i1LV`o3Wv4LJxxv z`zMF_LTM@cWN3R7H$%PW^DlZ^h@DLCtP+@nOCJ%Ofn^aeu~*DLD6DR--LW*>Sr}|I zCW`z1Jt&msrXs6Zw<-OBP5-Fu=XUFXlmWZSe@S7nTqy7Z)f8TdjDo&|Cl`;l=VFqJ eFTf^jl(W10TiJs;u)4l{+i1|HmQ{sLCFl(vcGmg; literal 392 zcmV;30eAkbk-bU-K@i91zq_}0xl8WyArcUypajx{h^;1mHa05p0fcZx6myynv5a|* zyo7}>U}fi9q!S66UT5ztR1g~%c4p^h?l;4K6mkj$vMXp1(St)hiF6r|2yZT< zZhx=+Dsk&=LJA^Od*|UZC|!pKvPyX8qsZkRVpI_!IW+-humg02W=r3aVCvfdP25z7J7jXS9 z0ZxAbS}cam8(BrHNdJwB5}IXHELj?PZHnxeZOrFCW)mfh$K&@b0;FOnx=}QfNr#N7 m^^I{&m@KL&kYl9F;FV<$S#Ba({eIY+F;QeVcKFWo75D(WjIjLx diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java deleted file mode 100644 index 900da49b8..000000000 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTest.java +++ /dev/null @@ -1,215 +0,0 @@ -/****************************************************************************** - * 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. - *****************************************************************************/ - -package com.esotericsoftware.spine; - -import com.badlogic.gdx.Files.FileType; -import com.badlogic.gdx.backends.lwjgl.LwjglFileHandle; -import com.badlogic.gdx.utils.Array; -import com.esotericsoftware.spine.AnimationState.AnimationStateListener; -import com.esotericsoftware.spine.attachments.AttachmentLoader; -import com.esotericsoftware.spine.attachments.BoundingBoxAttachment; -import com.esotericsoftware.spine.attachments.RegionAttachment; -import com.esotericsoftware.spine.attachments.MeshAttachment; -import com.esotericsoftware.spine.attachments.PathAttachment; - -public class AnimationStateTest { - final SkeletonJson json = new SkeletonJson(new AttachmentLoader() { - public MeshAttachment newMeshAttachment (Skin skin, String name, String path) { - return null; - } - - public RegionAttachment newRegionAttachment (Skin skin, String name, String path) { - return null; - } - - public BoundingBoxAttachment newBoundingBoxAttachment (Skin skin, String name) { - return null; - } - - public PathAttachment newPathAttachment (Skin skin, String name) { - return null; - } - }); - - AnimationStateListener stateListener = new AnimationStateListener() { - public void start (int trackIndex) { - actual.add(new Result("start", null)); - } - - public void event (int trackIndex, Event event) { - actual.add(new Result("event", event.getString())); - } - - public void complete (int trackIndex, int loopCount) { - actual.add(new Result("complete", null)); - } - - public void end (int trackIndex) { - actual.add(new Result("end", null)); - } - }; - - final SkeletonData skeletonData; - final AnimationStateData stateData; - final Array actual = new Array(); - - public AnimationStateTest () { - skeletonData = json.readSkeletonData(new LwjglFileHandle("test/test.json", FileType.Internal)); - stateData = new AnimationStateData(skeletonData); - - AnimationState state; - - state = newState(); - state.setAnimation(0, "events", false); - test(state, 1 / 60f, 1000, // - new Result("start", null), // - new Result("event", "0"), // - new Result("event", "14"), // - new Result("event", "30"), // - new Result("complete", null), // - new Result("end", null) // - ); - - state = newState(); - state.setAnimation(0, "events", false); - test(state, 30, 1000, // - new Result("start", null), // - new Result("event", "0"), // - new Result("event", "14"), // - new Result("event", "30"), // - new Result("complete", null), // - new Result("end", null) // - ); - - state = newState(); - state.setAnimation(0, "events", false); - test(state, 1, 1.01f, // - new Result("start", null), // - new Result("event", "0"), // - new Result("event", "14"), // - new Result("event", "30"), // - new Result("complete", null), // - new Result("end", null) // - ); - - state = newState(); - state.setAnimation(0, "events", false); - state.addAnimation(0, "events", false, 0); - test(state, 0.1f, 3f, // - new Result("start", null), // - new Result("event", "0"), // - new Result("event", "14"), // - new Result("event", "30"), // - new Result("complete", null), // - new Result("end", null), // - new Result("start", null), // - new Result("event", "0"), // - new Result("event", "14"), // - new Result("event", "30"), // - new Result("complete", null), // - new Result("end", null) // - ); - } - - private AnimationState newState () { - AnimationState state = new AnimationState(stateData); - state.addListener(stateListener); - return state; - } - - private void test (AnimationState state, float incr, float endTime, Result... expectedArray) { - Array expected = new Array(expectedArray); - - Skeleton skeleton = new Skeleton(skeletonData); - - for (int i = 0; i < endTime; i++) { - skeleton.update(incr); - state.update(incr); - state.apply(skeleton); - } - - if (expected.equals(actual)) { - actual.clear(); - return; - } - int i = 0; - for (int n = expected.size; i < n; i++) { - System.out.print(expected.get(i) + " == " + (i < actual.size ? actual.get(i) : "")); - if (i >= actual.size || !actual.get(i).equals(expected.get(i))) - System.out.println(" <- FAIL"); - else - System.out.println(); - } - for (int n = actual.size; i < n; i++) - System.out.print(" == " + actual.get(i) + " <- FAIL"); - System.exit(0); - } - - static public class Result { - String eventName; - String payload; - - public Result (String eventName, String payload) { - this.eventName = eventName; - this.payload = payload; - } - - public int hashCode () { - final int prime = 31; - int result = 1; - result = prime * result + ((eventName == null) ? 0 : eventName.hashCode()); - result = prime * result + ((payload == null) ? 0 : payload.hashCode()); - return result; - } - - public boolean equals (Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; - Result other = (Result)obj; - if (eventName == null) { - if (other.eventName != null) return false; - } else if (!eventName.equals(other.eventName)) return false; - if (payload == null) { - if (other.payload != null) return false; - } else if (!payload.equals(other.payload)) return false; - return true; - } - - public String toString () { - return "[" + eventName + ", " + payload + "]"; - } - } - - static public void main (String[] args) throws Exception { - new AnimationStateTest(); - } -} diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java new file mode 100644 index 000000000..e0bb84c58 --- /dev/null +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java @@ -0,0 +1,822 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package com.esotericsoftware.spine; + +import java.util.concurrent.atomic.AtomicInteger; + +import com.badlogic.gdx.Files.FileType; +import com.badlogic.gdx.backends.lwjgl.LwjglFileHandle; +import com.badlogic.gdx.math.MathUtils; +import com.badlogic.gdx.utils.Array; +import com.esotericsoftware.spine.AnimationState.AnimationStateListener; +import com.esotericsoftware.spine.AnimationState.TrackEntry; +import com.esotericsoftware.spine.attachments.AttachmentLoader; +import com.esotericsoftware.spine.attachments.BoundingBoxAttachment; +import com.esotericsoftware.spine.attachments.MeshAttachment; +import com.esotericsoftware.spine.attachments.PathAttachment; +import com.esotericsoftware.spine.attachments.RegionAttachment; + +public class AnimationStateTests { + final SkeletonJson json = new SkeletonJson(new AttachmentLoader() { + public RegionAttachment newRegionAttachment (Skin skin, String name, String path) { + return null; + } + + public MeshAttachment newMeshAttachment (Skin skin, String name, String path) { + return null; + } + + public BoundingBoxAttachment newBoundingBoxAttachment (Skin skin, String name) { + return null; + } + + public PathAttachment newPathAttachment (Skin skin, String name) { + return null; + } + }); + + final AnimationStateListener stateListener = new AnimationStateListener() { + public void start (TrackEntry entry) { + add(actual("start", entry)); + } + + public void interrupt (TrackEntry entry) { + add(actual("interrupt", entry)); + } + + public void end (TrackEntry entry) { + add(actual("end", entry)); + } + + public void dispose (TrackEntry entry) { + add(actual("dispose", entry)); + } + + public void complete (TrackEntry entry) { + add(actual("complete", entry)); + } + + public void event (TrackEntry entry, Event event) { + add(actual("event " + event.getString(), entry)); + } + + private void add (Result result) { + String message = result.toString(); + if (actual.size >= expected.size) { + message += "FAIL: "; + fail = true; + } else if (!expected.get(actual.size).equals(result)) { + message += "FAIL: " + expected.get(actual.size); + fail = true; + } else + message += "PASS"; + log(message); + actual.add(result); + } + }; + + final SkeletonData skeletonData; + final Array actual = new Array(); + final Array expected = new Array(); + + AnimationStateData stateData; + AnimationState state; + float time = 0; + boolean fail; + int test; + + AnimationStateTests () { + skeletonData = json.readSkeletonData(new LwjglFileHandle("test/test.json", FileType.Internal)); + + TrackEntry entry; + + setup("0.1 time step", // 1 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "end", 1, 1.1f), // + expect(0, "dispose", 1, 1.1f) // + ); + state.setAnimation(0, "events1", false); + run(0.1f, 1000, null); + + setup("1/60 time step, dispose queued", // 2 + expect(0, "start", 0, 0), // + expect(0, "interrupt", 0, 0), // + expect(0, "end", 0, 0), // + expect(0, "dispose", 0, 0), // + expect(1, "dispose", 0, 0), // + expect(0, "dispose", 0, 0), // + expect(1, "dispose", 0, 0), // + + // First 2 set/addAnimation calls are done. + + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.467f, 0.467f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "end", 1, 1.017f), // + expect(0, "dispose", 1, 1.017f) // + ); + state.setAnimation(0, "events1", false); + state.addAnimation(0, "events2", false, 0); + state.addAnimation(0, "events1", false, 0); + state.addAnimation(0, "events2", false, 0); + state.setAnimation(0, "events1", false); + run(1 / 60f, 1000, null); + + setup("30 time step", // 3 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 30, 30), // + expect(0, "event 30", 30, 30), // + expect(0, "complete", 30, 30), // + expect(0, "end", 30, 60), // + expect(0, "dispose", 30, 60) // + ); + state.setAnimation(0, "events1", false); + run(30, 1000, null); + + setup("1 time step", // 4 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 1, 1), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "end", 1, 2), // + expect(0, "dispose", 1, 2) // + ); + state.setAnimation(0, "events1", false); + run(1, 1.01f, null); + + setup("interrupt", // 5 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "interrupt", 1.1f, 1.1f), // + + expect(1, "start", 0.1f, 1.1f), // + expect(1, "event 0", 0.1f, 1.1f), // + + expect(0, "end", 1.1f, 1.2f), // + expect(0, "dispose", 1.1f, 1.2f), // + + expect(1, "event 14", 0.5f, 1.5f), // + expect(1, "event 30", 1, 2), // + expect(1, "complete", 1, 2), // + expect(1, "interrupt", 1.1f, 2.1f), // + + expect(0, "start", 0.1f, 2.1f), // + expect(0, "event 0", 0.1f, 2.1f), // + + expect(1, "end", 1.1f, 2.2f), // + expect(1, "dispose", 1.1f, 2.2f), // + + expect(0, "event 14", 0.5f, 2.5f), // + expect(0, "event 30", 1, 3), // + expect(0, "complete", 1, 3), // + expect(0, "end", 1, 3.1f), // + expect(0, "dispose", 1, 3.1f) // + ); + state.setAnimation(0, "events1", false); + state.addAnimation(0, "events2", false, 0); + state.addAnimation(0, "events1", false, 0); + run(0.1f, 4f, null); + + setup("interrupt with delay", // 6 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "interrupt", 0.6f, 0.6f), // + + expect(1, "start", 0.1f, 0.6f), // + expect(1, "event 0", 0.1f, 0.6f), // + + expect(0, "end", 0.6f, 0.7f), // + expect(0, "dispose", 0.6f, 0.7f), // + + expect(1, "event 14", 0.5f, 1.0f), // + expect(1, "event 30", 1, 1.5f), // + expect(1, "complete", 1, 1.5f), // + expect(1, "end", 1, 1.6f), // + expect(1, "dispose", 1, 1.6f) // + ); + state.setAnimation(0, "events1", false); + state.addAnimation(0, "events2", false, 0.5f); + run(0.1f, 1000, null); + + setup("interrupt with delay and mix time", // 7 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "interrupt", 1, 1), // + + expect(1, "start", 0.1f, 1), // + + expect(0, "complete", 1, 1), // + + expect(1, "event 0", 0.1f, 1), // + expect(1, "event 14", 0.5f, 1.4f), // + + expect(0, "end", 1.6f, 1.7f), // + expect(0, "dispose", 1.6f, 1.7f), // + + expect(1, "event 30", 1, 1.9f), // + expect(1, "complete", 1, 1.9f), // + expect(1, "end", 1, 2), // + expect(1, "dispose", 1, 2) // + ); + stateData.setMix("events1", "events2", 0.7f); + state.setAnimation(0, "events1", true); + state.addAnimation(0, "events2", false, 0.9f); + run(0.1f, 1000, null); + + setup("animation 0 events do not fire during mix", // 8 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "interrupt", 0.5f, 0.5f), // + + expect(1, "start", 0.1f, 0.5f), // + expect(1, "event 0", 0.1f, 0.5f), // + expect(1, "event 14", 0.5f, 0.9f), // + + expect(0, "complete", 1, 1), // + expect(0, "end", 1.1f, 1.2f), // + expect(0, "dispose", 1.1f, 1.2f), // + + expect(1, "event 30", 1, 1.4f), // + expect(1, "complete", 1, 1.4f), // + expect(1, "end", 1, 1.5f), // + expect(1, "dispose", 1, 1.5f) // + ); + stateData.setDefaultMix(0.7f); + state.setAnimation(0, "events1", false); + state.addAnimation(0, "events2", false, 0.4f); + run(0.1f, 1000, null); + + setup("event threshold, some animation 0 events fire during mix", // 9 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "interrupt", 0.5f, 0.5f), // + + expect(1, "start", 0.1f, 0.5f), // + + expect(0, "event 14", 0.5f, 0.5f), // + + expect(1, "event 0", 0.1f, 0.5f), // + expect(1, "event 14", 0.5f, 0.9f), // + + expect(0, "complete", 1, 1), // + expect(0, "end", 1.1f, 1.2f), // + expect(0, "dispose", 1.1f, 1.2f), // + + expect(1, "event 30", 1, 1.4f), // + expect(1, "complete", 1, 1.4f), // + expect(1, "end", 1, 1.5f), // + expect(1, "dispose", 1, 1.5f) // + ); + stateData.setMix("events1", "events2", 0.7f); + state.setAnimation(0, "events1", false).setEventThreshold(0.5f); + state.addAnimation(0, "events2", false, 0.4f); + run(0.1f, 1000, null); + + setup("event threshold, all animation 0 events fire during mix", // 10 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "interrupt", 0.9f, 0.9f), // + + expect(1, "start", 0.1f, 0.9f), // + expect(1, "event 0", 0.1f, 0.9f), // + + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "event 0", 1, 1), // + + expect(1, "event 14", 0.5f, 1.3f), // + + expect(0, "end", 1.5f, 1.6f), // + expect(0, "dispose", 1.5f, 1.6f), // + + expect(1, "event 30", 1, 1.8f), // + expect(1, "complete", 1, 1.8f), // + expect(1, "end", 1, 1.9f), // + expect(1, "dispose", 1, 1.9f) // + ); + state.setAnimation(0, "events1", true).setEventThreshold(1); + state.addAnimation(0, "events2", false, 0.8f).setMixDuration(0.7f); + run(0.1f, 1000, null); + + setup("looping", // 11 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "event 0", 1, 1), // + expect(0, "event 14", 1.5f, 1.5f), // + expect(0, "event 30", 2, 2), // + expect(0, "complete", 2, 2), // + expect(0, "event 0", 2, 2), // + expect(0, "event 14", 2.5f, 2.5f), // + expect(0, "event 30", 3, 3), // + expect(0, "complete", 3, 3), // + expect(0, "event 0", 3, 3), // + expect(0, "event 14", 3.5f, 3.5f), // + expect(0, "event 30", 4, 4), // + expect(0, "complete", 4, 4), // + expect(0, "event 0", 4, 4) // + ); + state.setAnimation(0, "events1", true); + run(0.1f, 4, null); + + setup("not looping, track end past animation 0 duration", // 12 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "interrupt", 2.1f, 2.1f), // + + expect(1, "start", 0.1f, 2.1f), // + expect(1, "event 0", 0.1f, 2.1f), // + + expect(0, "end", 2.1f, 2.2f), // + expect(0, "dispose", 2.1f, 2.2f), // + + expect(1, "event 14", 0.5f, 2.5f), // + expect(1, "event 30", 1, 3), // + expect(1, "complete", 1, 3), // + expect(1, "end", 1, 3.1f), // + expect(1, "dispose", 1, 3.1f) // + ); + state.setAnimation(0, "events1", false); + state.addAnimation(0, "events2", false, 2); + run(0.1f, 4f, null); + + setup("interrupt animation after first loop complete", // 13 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "event 0", 1, 1), // + expect(0, "event 14", 1.5f, 1.5f), // + expect(0, "event 30", 2, 2), // + expect(0, "complete", 2, 2), // + expect(0, "event 0", 2, 2), // + expect(0, "interrupt", 2.1f, 2.1f), // + + expect(1, "start", 0.1f, 2.1f), // + expect(1, "event 0", 0.1f, 2.1f), // + + expect(0, "end", 2.1f, 2.2f), // + expect(0, "dispose", 2.1f, 2.2f), // + + expect(1, "event 14", 0.5f, 2.5f), // + expect(1, "event 30", 1, 3), // + expect(1, "complete", 1, 3), // + expect(1, "end", 1, 3.1f), // + expect(1, "dispose", 1, 3.1f) // + ); + state.setAnimation(0, "events1", true); + run(0.1f, 6, new TestListener() { + public void frame (float time) { + if (MathUtils.isEqual(time, 1.4f)) state.addAnimation(0, "events2", false, 0); + } + }); + + setup("add animation on empty track", // 14 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "end", 1, 1.1f), // + expect(0, "dispose", 1, 1.1f) // + ); + state.addAnimation(0, "events1", false, 0); + run(0.1f, 1.9f, null); + + setup("end time beyond non-looping animation duration", // 15 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "end", 9f, 9.1f), // + expect(0, "dispose", 9f, 9.1f) // + ); + state.setAnimation(0, "events1", false).setTrackEnd(9); + run(0.1f, 10, null); + + setup("looping with animation start", // 16 + expect(0, "start", 0, 0), // + expect(0, "event 30", 0.4f, 0.4f), // + expect(0, "complete", 0.4f, 0.4f), // + expect(0, "event 30", 0.8f, 0.8f), // + expect(0, "complete", 0.8f, 0.8f), // + expect(0, "event 30", 1.2f, 1.2f), // + expect(0, "complete", 1.2f, 1.2f) // + ); + entry = state.setAnimation(0, "events1", true); + entry.setAnimationLast(0.6f); + entry.setAnimationStart(0.6f); + run(0.1f, 1.4f, null); + + setup("looping with animation start and end", // 17 + expect(0, "start", 0, 0), // + expect(0, "event 14", 0.3f, 0.3f), // + expect(0, "complete", 0.6f, 0.6f), // + expect(0, "event 14", 0.9f, 0.9f), // + expect(0, "complete", 1.2f, 1.2f), // + expect(0, "event 14", 1.5f, 1.5f) // + ); + entry = state.setAnimation(0, "events1", true); + entry.setAnimationStart(0.2f); + entry.setAnimationLast(0.2f); + entry.setAnimationEnd(0.8f); + run(0.1f, 1.8f, null); + + setup("non-looping with animation start and end", // 18 + expect(0, "start", 0, 0), // + expect(0, "event 14", 0.3f, 0.3f), // + expect(0, "complete", 0.6f, 0.6f), // + expect(0, "end", 1, 1.1f), // + expect(0, "dispose", 1, 1.1f) // + ); + entry = state.setAnimation(0, "events1", false); + entry.setAnimationStart(0.2f); + entry.setAnimationLast(0.2f); + entry.setAnimationEnd(0.8f); + run(0.1f, 1.8f, null); + + setup("mix out looping with animation start and end", // 19 + expect(0, "start", 0, 0), // + expect(0, "event 14", 0.3f, 0.3f), // + expect(0, "complete", 0.6f, 0.6f), // + expect(0, "interrupt", 0.8f, 0.8f), // + + expect(1, "start", 0.1f, 0.8f), // + expect(1, "event 0", 0.1f, 0.8f), // + + expect(0, "event 14", 0.9f, 0.9f), // + expect(0, "complete", 1.2f, 1.2f), // + + expect(1, "event 14", 0.5f, 1.2f), // + + expect(0, "end", 1.4f, 1.5f), // + expect(0, "dispose", 1.4f, 1.5f), // + + expect(1, "event 30", 1, 1.7f), // + expect(1, "complete", 1, 1.7f), // + expect(1, "end", 1, 1.8f), // + expect(1, "dispose", 1, 1.8f) // + ); + entry = state.setAnimation(0, "events1", true); + entry.setAnimationStart(0.2f); + entry.setAnimationLast(0.2f); + entry.setAnimationEnd(0.8f); + entry.setEventThreshold(1); + state.addAnimation(0, "events2", false, 0.7f).setMixDuration(0.7f); + run(0.1f, 20, null); + + setup("setAnimation with track entry mix", // 20 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "event 30", 1, 1), // + expect(0, "complete", 1, 1), // + expect(0, "event 0", 1, 1), // + expect(0, "interrupt", 1, 1), // + + expect(1, "start", 0, 1), // + + expect(1, "event 0", 0.1f, 1.1f), // + expect(1, "event 14", 0.5f, 1.5f), // + + expect(0, "end", 1.7f, 1.8f), // + expect(0, "dispose", 1.7f, 1.8f), // + + expect(1, "event 30", 1, 2), // + expect(1, "complete", 1, 2), // + expect(1, "end", 1, 2.1f), // + expect(1, "dispose", 1, 2.1f) // + ); + state.setAnimation(0, "events1", true); + run(0.1f, 1000, new TestListener() { + public void frame (float time) { + if (MathUtils.isEqual(time, 1f)) state.setAnimation(0, "events2", false).setMixDuration(0.7f); + } + }); + + setup("setAnimation twice", // 21 + expect(0, "start", 0, 0), // + expect(0, "interrupt", 0, 0), // + expect(0, "end", 0, 0), // + expect(0, "dispose", 0, 0), // + + expect(1, "start", 0, 0), // + expect(1, "event 0", 0, 0), // + expect(1, "event 14", 0.5f, 0.5f), // + + // First 2 setAnimation calls are done. + + expect(1, "interrupt", 0.8f, 0.8f), // + + expect(0, "start", 0, 0.8f), // + expect(0, "interrupt", 0, 0.8f), // + expect(0, "end", 0, 0.8f), // + expect(0, "dispose", 0, 0.8f), // + + expect(1, "start", 0, 0.8f), // + expect(1, "event 0", 0.1f, 0.9f), // + expect(1, "event 14", 0.5f, 1.3f), // + expect(1, "event 30", 1, 1.8f), // + expect(1, "complete", 1, 1.8f), // + expect(1, "end", 1, 1.9f), // + expect(1, "dispose", 1, 1.9f) // + ); + state.setAnimation(0, "events1", false); // First should be ignored. + state.setAnimation(0, "events2", false); + run(0.1f, 1000, new TestListener() { + public void frame (float time) { + if (MathUtils.isEqual(time, 0.8f)) { + state.setAnimation(0, "events1", false); // First should be ignored. + state.setAnimation(0, "events2", false); + } + } + }); + + setup("addAnimation with delay on empty track", // 22 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 5), // + expect(0, "event 14", 0.5f, 5.5f), // + expect(0, "event 30", 1, 6), // + expect(0, "complete", 1, 6), // + expect(0, "end", 1, 6.1f), // + expect(0, "dispose", 1, 6.1f) // + ); + state.addAnimation(0, "events1", false, 5); + run(0.1f, 10, null); + + setup("setAnimation during AnimationStateListener"); // 23 + state.addListener(new AnimationStateListener() { + public void start (TrackEntry entry) { + if (entry.getAnimation().getName().equals("events1")) state.setAnimation(1, "events2", false); + } + + public void interrupt (TrackEntry entry) { + state.addAnimation(3, "events2", false, 0); + } + + public void end (TrackEntry entry) { + if (entry.getAnimation().getName().equals("events1")) state.setAnimation(0, "events2", false); + } + + public void dispose (TrackEntry entry) { + if (entry.getAnimation().getName().equals("events1")) state.setAnimation(1, "events2", false); + } + + public void complete (TrackEntry entry) { + if (entry.getAnimation().getName().equals("events1")) state.setAnimation(1, "events2", false); + } + + public void event (TrackEntry entry, Event event) { + if (entry.getTrackIndex() != 2) state.setAnimation(2, "events2", false); + } + }); + state.addAnimation(0, "events1", false, 0); + state.addAnimation(0, "events2", false, 0); + state.setAnimation(1, "events2", false); + run(0.1f, 10, null); + + setup("clearTrack", // 24 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "end", 0.7f, 0.7f), // + expect(0, "dispose", 0.7f, 0.7f) // + ); + state.addAnimation(0, "events1", false, 0); + run(0.1f, 10, new TestListener() { + public void frame (float time) { + if (MathUtils.isEqual(time, 0.7f)) state.clearTrack(0); + } + }); + + setup("setEmptyAnimation", // 25 + expect(0, "start", 0, 0), // + expect(0, "event 0", 0, 0), // + expect(0, "event 14", 0.5f, 0.5f), // + expect(0, "interrupt", 0.7f, 0.7f), // + + expect(-1, "start", 0, 0.7f), // + expect(-1, "complete", 0.1f, 0.8f), // + + expect(0, "end", 0.8f, 0.9f), // + expect(0, "dispose", 0.8f, 0.9f), // + + expect(-1, "end", 0.1f, 0.9f), // + expect(-1, "dispose", 0.1f, 0.9f) // + ); + state.addAnimation(0, "events1", false, 0); + run(0.1f, 10, new TestListener() { + public void frame (float time) { + if (MathUtils.isEqual(time, 0.7f)) state.setEmptyAnimation(0, 0); + } + }); + + setup("TrackEntry listener"); // 26 + final AtomicInteger counter = new AtomicInteger(); + state.addAnimation(0, "events1", false, 0).setListener(new AnimationStateListener() { + public void start (TrackEntry entry) { + counter.addAndGet(1 << 1); + } + + public void interrupt (TrackEntry entry) { + counter.addAndGet(1 << 5); + } + + public void end (TrackEntry entry) { + counter.addAndGet(1 << 9); + } + + public void dispose (TrackEntry entry) { + counter.addAndGet(1 << 13); + } + + public void complete (TrackEntry entry) { + counter.addAndGet(1 << 17); + } + + public void event (TrackEntry entry, Event event) { + counter.addAndGet(1 << 21); + } + }); + state.addAnimation(0, "events1", false, 0); + state.addAnimation(0, "events2", false, 0); + state.setAnimation(1, "events2", false); + run(0.1f, 10, null); + if (counter.get() != 15082016) { + log("TEST 26 FAILED! " + counter); + System.exit(0); + } + + System.out.println("AnimationState tests passed."); + } + + void setup (String description, Result... expectedArray) { + test++; + expected.addAll(expectedArray); + stateData = new AnimationStateData(skeletonData); + state = new AnimationState(stateData); + time = 0; + fail = false; + log(test + ": " + description); + if (expectedArray.length > 0) { + state.addListener(stateListener); + log(String.format("%-3s%-12s%-7s%-7s%-7s", "#", "EVENT", "TRACK", "TOTAL", "RESULT")); + } + } + + void run (float incr, float endTime, TestListener listener) { + Skeleton skeleton = new Skeleton(skeletonData); + state.apply(skeleton); + while (time < endTime) { + time += incr; + skeleton.update(incr); + state.update(incr); + + // Reduce float discrepancies for tests. + for (TrackEntry entry : state.getTracks()) { + if (entry == null) continue; + entry.trackTime = round(entry.trackTime, 6); + entry.delay = round(entry.delay, 3); + if (entry.mixingFrom != null) entry.mixingFrom.trackTime = round(entry.mixingFrom.trackTime, 6); + } + + state.apply(skeleton); + + // Apply multiple times to ensure no side effects. + if (expected.size > 0) state.removeListener(stateListener); + state.apply(skeleton); + state.apply(skeleton); + if (expected.size > 0) state.addListener(stateListener); + + if (listener != null) listener.frame(time); + } + // Expecting more than actual is a failure. + for (int i = actual.size, n = expected.size; i < n; i++) { + log(String.format("%-29s", "") + "FAIL: " + expected.get(i)); + fail = true; + } + actual.clear(); + expected.clear(); + log(""); + if (fail) { + log("TEST " + test + " FAILED!"); + System.exit(0); + } + } + + Result expect (int animationIndex, String name, float trackTime, float totalTime) { + Result result = new Result(); + result.name = name; + result.animationIndex = animationIndex; + result.trackTime = trackTime; + result.totalTime = totalTime; + return result; + } + + Result actual (String name, TrackEntry entry) { + Result result = new Result(); + result.name = name; + result.animationIndex = skeletonData.getAnimations().indexOf(entry.animation, true); + result.trackTime = Math.round(entry.trackTime * 1000) / 1000f; + result.totalTime = Math.round(time * 1000) / 1000f; + return result; + } + + void log (String message) { + System.out.println(message); + } + + class Result { + String name; + int animationIndex; + float trackTime, totalTime; + + public int hashCode () { + int result = 31 + animationIndex; + result = 31 * result + name.hashCode(); + result = 31 * result + Float.floatToIntBits(totalTime); + result = 31 * result + Float.floatToIntBits(trackTime); + return result; + } + + public boolean equals (Object obj) { + Result other = (Result)obj; + if (animationIndex != other.animationIndex) return false; + if (!name.equals(other.name)) return false; + if (!MathUtils.isEqual(totalTime, other.totalTime)) return false; + if (!MathUtils.isEqual(trackTime, other.trackTime)) return false; + return true; + } + + public String toString () { + return String.format("%-3s%-12s%-7s%-7s", "" + animationIndex, name, roundTime(trackTime), roundTime(totalTime)); + } + } + + static float round (float value, int decimals) { + float shift = (float)Math.pow(10, decimals); + return Math.round(value * shift) / shift; + } + + static String roundTime (float value) { + String text = Float.toString(round(value, 3)); + return text.endsWith(".0") ? text.substring(0, text.length() - 2) : text; + } + + static interface TestListener { + void frame (float time); + } + + static public void main (String[] args) throws Exception { + new AnimationStateTests(); + } +} diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/BonePlotting.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/BonePlotting.java index b8226c288..c4fe9847d 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/BonePlotting.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/BonePlotting.java @@ -64,7 +64,7 @@ public class BonePlotting { for (Animation animation : skeletonData.getAnimations()) { float time = 0; while (time < animation.getDuration()) { - animation.apply(skeleton, time, time, false, null); + animation.apply(skeleton, time, time, false, null, 1, false, false); skeleton.updateWorldTransform(); System.out .println(animation.getName() + "," + bone.getWorldX() + "," + bone.getWorldY() + "," + bone.getWorldRotationX()); diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Box2DExample.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Box2DExample.java index 5e5c67d6b..68aba82a3 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Box2DExample.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Box2DExample.java @@ -115,9 +115,8 @@ public class Box2DExample extends ApplicationAdapter { Box2dAttachment attachment = (Box2dAttachment)slot.getAttachment(); PolygonShape boxPoly = new PolygonShape(); - boxPoly.setAsBox(attachment.getWidth() / 2 * attachment.getScaleX(), - attachment.getHeight() / 2 * attachment.getScaleY(), vector.set(attachment.getX(), attachment.getY()), - attachment.getRotation() * MathUtils.degRad); + boxPoly.setAsBox(attachment.getWidth() / 2 * attachment.getScaleX(), attachment.getHeight() / 2 * attachment.getScaleY(), + vector.set(attachment.getX(), attachment.getY()), attachment.getRotation() * MathUtils.degRad); BodyDef boxBodyDef = new BodyDef(); boxBodyDef.type = BodyType.StaticBody; @@ -145,7 +144,7 @@ public class Box2DExample extends ApplicationAdapter { batch.setTransformMatrix(camera.view); batch.begin(); - animation.apply(skeleton, time, time, true, events); + animation.apply(skeleton, time, time, true, events, 1, false, false); skeleton.x += 8 * delta; skeleton.updateWorldTransform(); skeletonRenderer.draw(batch, skeleton); diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/EventTimelineTests.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/EventTimelineTests.java index ac3f43e0c..3e251df7c 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/EventTimelineTests.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/EventTimelineTests.java @@ -176,7 +176,7 @@ public class EventTimelineTests { int beforeCount = firedEvents.size; Array original = new Array(firedEvents); - timeline.apply(skeleton, lastTimeLooped, timeLooped, firedEvents, 1); + timeline.apply(skeleton, lastTimeLooped, timeLooped, firedEvents, 1, false, false); while (beforeCount < firedEvents.size) { char fired = firedEvents.get(beforeCount).getData().getName().charAt(0); @@ -185,7 +185,7 @@ public class EventTimelineTests { } else { if (firedEvents.size > eventsCount) { if (print) System.out.println(lastTimeLooped + "->" + timeLooped + ": " + fired + " == ?"); - timeline.apply(skeleton, lastTimeLooped, timeLooped, original, 1); + timeline.apply(skeleton, lastTimeLooped, timeLooped, original, 1, false, false); fail("Too many events fired."); } } @@ -193,7 +193,7 @@ public class EventTimelineTests { System.out.println(lastTimeLooped + "->" + timeLooped + ": " + fired + " == " + events[eventIndex]); } if (fired != events[eventIndex]) { - timeline.apply(skeleton, lastTimeLooped, timeLooped, original, 1); + timeline.apply(skeleton, lastTimeLooped, timeLooped, original, 1, false, false); fail("Wrong event fired."); } eventIndex++; @@ -205,7 +205,7 @@ public class EventTimelineTests { i++; } if (firedEvents.size < eventsCount) { - timeline.apply(skeleton, lastTimeLooped, timeLooped, firedEvents, 1); + timeline.apply(skeleton, lastTimeLooped, timeLooped, firedEvents, 1, false, false); if (print) System.out.println(firedEvents); fail("Event not fired: " + events[eventIndex] + ", " + frames[eventIndex]); } diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/MixTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/MixTest.java index ea8386cba..59fab4067 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/MixTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/MixTest.java @@ -103,21 +103,21 @@ public class MixTest extends ApplicationAdapter { skeleton.setX(-50); } else if (time > beforeJump + jump) { // just walk after jump - walkAnimation.apply(skeleton, time, time, true, events); + walkAnimation.apply(skeleton, time, time, true, events, 1, false, false); } else if (time > blendOutStart) { // blend out jump - walkAnimation.apply(skeleton, time, time, true, events); - jumpAnimation.mix(skeleton, time - beforeJump, time - beforeJump, false, events, 1 - (time - blendOutStart) / blendOut); + walkAnimation.apply(skeleton, time, time, true, events, 1, false, false); + jumpAnimation.apply(skeleton, time - beforeJump, time - beforeJump, false, events, 1 - (time - blendOutStart) / blendOut, false, false); } else if (time > beforeJump + blendIn) { // just jump - jumpAnimation.apply(skeleton, time - beforeJump, time - beforeJump, false, events); + jumpAnimation.apply(skeleton, time - beforeJump, time - beforeJump, false, events, 1, false, false); } else if (time > beforeJump) { // blend in jump - walkAnimation.apply(skeleton, time, time, true, events); - jumpAnimation.mix(skeleton, time - beforeJump, time - beforeJump, false, events, (time - beforeJump) / blendIn); + walkAnimation.apply(skeleton, time, time, true, events, 1, false, false); + jumpAnimation.apply(skeleton, time - beforeJump, time - beforeJump, false, events, (time - beforeJump) / blendIn, false, false); } else { // just walk before jump - walkAnimation.apply(skeleton, time, time, true, events); + walkAnimation.apply(skeleton, time, time, true, events, 1, false, false); } skeleton.updateWorldTransform(); diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/NormalMapTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/NormalMapTest.java index 0b41fdda0..eb3956e7c 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/NormalMapTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/NormalMapTest.java @@ -130,7 +130,7 @@ public class NormalMapTest extends ApplicationAdapter { public void render () { float lastTime = time; time += Gdx.graphics.getDeltaTime(); - if (animation != null) animation.apply(skeleton, lastTime, time, true, null); + if (animation != null) animation.apply(skeleton, lastTime, time, true, null, 1, false, false); skeleton.updateWorldTransform(); skeleton.update(Gdx.graphics.getDeltaTime()); diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Sandbox.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Sandbox.java deleted file mode 100644 index e241a97a2..000000000 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/Sandbox.java +++ /dev/null @@ -1,131 +0,0 @@ -/****************************************************************************** - * 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. - *****************************************************************************/ - -package com.esotericsoftware.spine; - -import com.badlogic.gdx.ApplicationAdapter; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.backends.lwjgl.LwjglApplication; -import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; -import com.badlogic.gdx.graphics.GL20; -import com.badlogic.gdx.graphics.OrthographicCamera; -import com.badlogic.gdx.graphics.g2d.PolygonSpriteBatch; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; - -/** - * Sandbox for comparing values when porting to other - * runtimes. - */ -public class Sandbox extends ApplicationAdapter { - static final String ATLAS = "../../examples/tank/export/tank.atlas"; - static final String JSON = "../../examples/tank/export/tank.json"; - static final float scale = 0.3f; - static final float X = 400; - static final float Y = 500; - static final String ANIMATION = "drive"; - static final float ANIMATION_OFFSET = 0.5f; - static final boolean ANIMATION_UPDATE = false; - static final boolean Y_DOWN = true; - static final boolean DRAW_DEBUG = false; - - OrthographicCamera camera; - PolygonSpriteBatch batch; - SkeletonMeshRenderer renderer; - SkeletonRendererDebug debugRenderer; - - TextureAtlas atlas; - Skeleton skeleton; - AnimationState state; - - public void create () { - camera = new OrthographicCamera(); - camera.setToOrtho(Y_DOWN); - batch = new PolygonSpriteBatch(); - renderer = new SkeletonMeshRenderer(); - renderer.setPremultipliedAlpha(false); - debugRenderer = new SkeletonRendererDebug(); - debugRenderer.setBoundingBoxes(false); - debugRenderer.setRegionAttachments(false); - - atlas = new TextureAtlas(Gdx.files.internal(ATLAS)); - SkeletonJson json = new SkeletonJson(atlas); - json.setScale(scale); - SkeletonData skeletonData = json.readSkeletonData(Gdx.files.internal(JSON)); - - skeleton = new Skeleton(skeletonData); - skeleton.setFlipY(Y_DOWN); - skeleton.setPosition(X, Y); - - AnimationStateData stateData = new AnimationStateData(skeletonData); - state = new AnimationState(stateData); - if (ANIMATION != null) state.setAnimation(0, ANIMATION, true); - if (ANIMATION_OFFSET != 0) { - state.update(ANIMATION_OFFSET); - state.apply(skeleton); - skeleton.updateWorldTransform(); - } - } - - public void render () { - Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - - if (ANIMATION_UPDATE) { - state.update(Gdx.graphics.getDeltaTime()); - state.apply(skeleton); - } - skeleton.updateWorldTransform(); - - camera.update(); - batch.getProjectionMatrix().set(camera.combined); - debugRenderer.getShapeRenderer().setProjectionMatrix(camera.combined); - - batch.begin(); - renderer.draw(batch, skeleton); - batch.end(); - - if (DRAW_DEBUG) debugRenderer.draw(skeleton); - } - - public void resize (int width, int height) { - camera.setToOrtho(Y_DOWN); - } - - public void dispose () { - atlas.dispose(); - } - - public static void main (String[] args) throws Exception { - LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); - config.useHDPI = true; - config.width = 800; - config.height = 600; - new LwjglApplication(new Sandbox(), config); - } -} diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest2.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest2.java index d7231ad8f..8958c84f3 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest2.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest2.java @@ -31,6 +31,7 @@ package com.esotericsoftware.spine; import com.esotericsoftware.spine.AnimationState.AnimationStateListener; +import com.esotericsoftware.spine.AnimationState.TrackEntry; import com.esotericsoftware.spine.attachments.BoundingBoxAttachment; import com.badlogic.gdx.ApplicationAdapter; @@ -81,24 +82,33 @@ public class SimpleTest2 extends ApplicationAdapter { state = new AnimationState(stateData); // Holds the animation state for a skeleton (current animation, time, etc). state.setTimeScale(0.3f); // Slow all animations down to 30% speed. state.addListener(new AnimationStateListener() { - public void event (int trackIndex, Event event) { - System.out.println(trackIndex + " event: " + state.getCurrent(trackIndex) + ", " + event.getData().getName() + ", " - + event.getInt()); + + public void start (TrackEntry entry) { + System.out.println(entry.getTrackIndex() + " start: " + entry); } - public void complete (int trackIndex, int loopCount) { - System.out.println(trackIndex + " complete: " + state.getCurrent(trackIndex) + ", " + loopCount); + public void interrupt (TrackEntry entry) { + System.out.println(entry.getTrackIndex() + " interrupt: " + entry); } - public void start (int trackIndex) { - System.out.println(trackIndex + " start: " + state.getCurrent(trackIndex)); + public void end (TrackEntry entry) { + System.out.println(entry.getTrackIndex() + " end: " + entry); } - public void end (int trackIndex) { - System.out.println(trackIndex + " end: " + state.getCurrent(trackIndex)); + public void dispose (TrackEntry entry) { + System.out.println(entry.getTrackIndex() + " dispose: " + entry); + } + + public void complete (TrackEntry entry) { + System.out.println(entry.getTrackIndex() + " complete: " + entry); + } + + public void event (TrackEntry entry, Event event) { + System.out + .println(entry.getTrackIndex() + " event: " + entry + ", " + event.getData().getName() + ", " + event.getInt()); } }); - + // Set animation on track 0. state.setAnimation(0, "run", true); diff --git a/spine-libgdx/spine-libgdx/.settings/org.eclipse.jdt.core.prefs b/spine-libgdx/spine-libgdx/.settings/org.eclipse.jdt.core.prefs index b1afb4ec3..13db62da1 100644 --- a/spine-libgdx/spine-libgdx/.settings/org.eclipse.jdt.core.prefs +++ b/spine-libgdx/spine-libgdx/.settings/org.eclipse.jdt.core.prefs @@ -33,7 +33,7 @@ org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning @@ -84,6 +84,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java index e742e5890..5ae81fb19 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -37,10 +37,11 @@ import com.badlogic.gdx.utils.FloatArray; import com.esotericsoftware.spine.attachments.Attachment; import com.esotericsoftware.spine.attachments.VertexAttachment; +/** A simple container for a list of timelines and a name. */ public class Animation { final String name; - private final Array timelines; - private float duration; + final Array timelines; + float duration; public Animation (String name, Array timelines, float duration) { if (name == null) throw new IllegalArgumentException("name cannot be null."); @@ -54,7 +55,7 @@ public class Animation { return timelines; } - /** Returns the duration of the animation in seconds. */ + /** The duration of the animation in seconds, which is the highest time of all keys in the timeline. */ public float getDuration () { return duration; } @@ -63,10 +64,11 @@ public class Animation { this.duration = duration; } - /** Poses the skeleton at the specified time for this animation. - * @param lastTime The last time the animation was applied. - * @param events Any triggered events are added. May be null. */ - public void apply (Skeleton skeleton, float lastTime, float time, boolean loop, Array events) { + /** Applies all the animation's timelines to the specified skeleton. + *

+ * See Timeline {@link Timeline#apply(Skeleton, float, float, Array, float, boolean, boolean)}. */ + public void apply (Skeleton skeleton, float lastTime, float time, boolean loop, Array events, float alpha, + boolean setupPose, boolean mixingOut) { if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null."); if (loop && duration != 0) { @@ -76,26 +78,10 @@ public class Animation { Array timelines = this.timelines; for (int i = 0, n = timelines.size; i < n; i++) - timelines.get(i).apply(skeleton, lastTime, time, events, 1); - } - - /** Poses the skeleton at the specified time for this animation mixed with the current pose. - * @param lastTime The last time the animation was applied. - * @param events Any triggered events are added. May be null. - * @param alpha The amount of this animation that affects the current pose. */ - public void mix (Skeleton skeleton, float lastTime, float time, boolean loop, Array events, float alpha) { - if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null."); - - if (loop && duration != 0) { - time %= duration; - if (lastTime > 0) lastTime %= duration; - } - - Array timelines = this.timelines; - for (int i = 0, n = timelines.size; i < n; i++) - timelines.get(i).apply(skeleton, lastTime, time, events, alpha); + timelines.get(i).apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); } + /** The animation's name, which is unique within the skeleton. */ public String getName () { return name; } @@ -144,13 +130,44 @@ public class Animation { return -1; } + /** The interface for all timelines. */ static public interface Timeline { - /** Sets the value(s) for the specified time. - * @param events May be null to not collect fired events. */ - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha); + /** Applies this timeline to the skeleton. + * @param skeleton The skeleton the timeline is being applied to. This provides access to the bones, slots, and other + * skeleton components the timeline may change. + * @param lastTime The time this timeline was last applied. Timelines such as {@link EventTimeline} trigger only at specific + * times rather than every frame. In that case, the timeline triggers everything between lastTime + * (exclusive) and time (inclusive). + * @param time The time within the animation. Most timelines find the key before and the key after this time so they can + * interpolate between the keys. + * @param events If any events are fired, they are added to this list. Can be null to ignore firing events or if the + * timeline does not fire events. + * @param alpha 0 results in the value of the current or setup pose (depending on setupPose). 1 results in the + * value from the timeline. Between 0 and 1 results in a value mixed between the current or setup pose and the + * value from the timeline. By adjusting alpha over time, an animation can be mixed in or out. + * alpha can also be useful to apply animations on top of each other. + * @param setupPose Controls mixing when alpha < 1. When true the value from the timeline is mixed with the + * value from the setup pose. When false the value from the timeline is mixed with the value from the current + * pose. Passing true when alpha is 1 is slightly more efficient for most timelines. + * @param mixingOut True when changing alpha over time toward 0 (the setup or current pose), false when + * changing alpha toward 1 (the timeline's pose). Used for timelines which perform instant + * transitions, such as {@link DrawOrderTimeline} or {@link AttachmentTimeline}. */ + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut); + + /** Uniquely encodes both the type of this timeline and the skeleton property that it affects. */ + public int getPropertyId (); } - /** Base class for frames that use an interpolation bezier curve. */ + static private enum TimelineType { + rotate, translate, scale, shear, // + attachment, color, deform, // + event, drawOrder, // + ikConstraint, transformConstraint, // + pathConstraintPosition, pathConstraintSpacing, pathConstraintMix + } + + /** The base class for timelines that use interpolation between key frame values. */ abstract static public class CurveTimeline implements Timeline { static public final float LINEAR = 0, STEPPED = 1, BEZIER = 2; static private final int BEZIER_SIZE = 10 * 2 - 1; @@ -162,18 +179,23 @@ public class Animation { curves = new float[(frameCount - 1) * BEZIER_SIZE]; } + /** The number of key frames for this timeline. */ public int getFrameCount () { return curves.length / BEZIER_SIZE + 1; } + /** Sets the specified key frame to linear interpolation. */ public void setLinear (int frameIndex) { curves[frameIndex * BEZIER_SIZE] = LINEAR; } + /** Sets the specified key frame to stepped interpolation. */ public void setStepped (int frameIndex) { curves[frameIndex * BEZIER_SIZE] = STEPPED; } + /** Returns the interpolation type for the specified key frame. + * @return Linear is 0, stepped is 1, Bezier is 2. */ public float getCurveType (int frameIndex) { int index = frameIndex * BEZIER_SIZE; if (index == curves.length) return LINEAR; @@ -183,9 +205,9 @@ public class Animation { return BEZIER; } - /** Sets the control handle positions for an interpolation bezier curve used to transition from this keyframe to the next. - * cx1 and cx2 are from 0 to 1, representing the percent of time between the two keyframes. cy1 and cy2 are the percent of - * the difference between the keyframe's values. */ + /** Sets the specified key frame to Bezier interpolation. cx1 and cx2 are from 0 to 1, + * representing the percent of time between the two key frames. cy1 and cy2 are the percent of the + * difference between the key frame's values. */ public void setCurve (int frameIndex, float cx1, float cy1, float cx2, float cy2) { float tmpx = (-cx1 * 2 + cx2) * 0.03f, tmpy = (-cy1 * 2 + cy2) * 0.03f; float dddfx = ((cx1 - cx2) * 3 + 1) * 0.006f, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006f; @@ -209,6 +231,7 @@ public class Animation { } } + /** Returns the interpolated percentage for the specified key frame and linear percentage. */ public float getCurvePercent (int frameIndex, float percent) { percent = MathUtils.clamp(percent, 0, 1); float[] curves = this.curves; @@ -237,10 +260,11 @@ public class Animation { } } + /** Changes a bone's local {@link Bone#getRotation()}. */ static public class RotateTimeline extends CurveTimeline { static public final int ENTRIES = 2; - static private final int PREV_TIME = -2, PREV_ROTATION = -1; - static private final int ROTATION = 1; + static final int PREV_TIME = -2, PREV_ROTATION = -1; + static final int ROTATION = 1; int boneIndex; final float[] frames; // time, degrees, ... @@ -250,39 +274,50 @@ public class Animation { frames = new float[frameCount << 1]; } + public int getPropertyId () { + return (TimelineType.rotate.ordinal() << 24) + boneIndex; + } + public void setBoneIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.boneIndex = index; } + /** The index of the bone in {@link Skeleton#getBones()} that will be changed. */ public int getBoneIndex () { return boneIndex; } + /** The time in seconds and rotation in degrees for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and angle of the specified keyframe. */ + /** Sets the time in seconds and the rotation in degrees for the specified key frame. */ public void setFrame (int frameIndex, float time, float degrees) { frameIndex <<= 1; frames[frameIndex] = time; frames[frameIndex + ROTATION] = degrees; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { Bone bone = skeleton.bones.get(boneIndex); + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) bone.rotation = bone.data.rotation; + return; + } if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - float amount = bone.data.rotation + frames[frames.length + PREV_ROTATION] - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + PREV_ROTATION] * alpha; + else { + float r = bone.data.rotation + frames[frames.length + PREV_ROTATION] - bone.rotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; // Wrap within -180 and 180. + bone.rotation += r * alpha; + } return; } @@ -292,20 +327,21 @@ public class Animation { float frameTime = frames[frame]; float percent = getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - float amount = frames[frame + ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + float r = frames[frame + ROTATION] - prevRotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + r = prevRotation + r * percent; + if (setupPose) { + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone.rotation = bone.data.rotation + r * alpha; + } else { + r = bone.data.rotation + r - bone.rotation; + r -= (16384 - (int)(16384.499999999996 - r / 360)) * 360; + bone.rotation += r * alpha; + } } } + /** Changes a bone's local {@link Bone#getX()} and {@link Bone#getY()}. */ static public class TranslateTimeline extends CurveTimeline { static public final int ENTRIES = 3; static final int PREV_TIME = -3, PREV_X = -2, PREV_Y = -1; @@ -319,20 +355,26 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.translate.ordinal() << 24) + boneIndex; + } + public void setBoneIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.boneIndex = index; } + /** The index of the bone in {@link Skeleton#getBones()} that will be changed. */ public int getBoneIndex () { return boneIndex; } + /** The time in seconds, x, and y values for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and value of the specified keyframe. */ + /** Sets the time in seconds, x, and y values for the specified key frame. */ public void setFrame (int frameIndex, float time, float x, float y) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -340,86 +382,160 @@ public class Animation { frames[frameIndex + Y] = y; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { Bone bone = skeleton.bones.get(boneIndex); - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - bone.x += (bone.data.x + frames[frames.length + PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + PREV_Y] - bone.y) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X]; + y = frames[frames.length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.x += (bone.data.x + prevX + (frames[frame + X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + Y] - prevY) * percent - bone.y) * alpha; + x += (frames[frame + X] - x) * percent; + y += (frames[frame + 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; + } } } + /** Changes a bone's local {@link Bone#getScaleX()} and {@link Bone#getScaleY()}. */ static public class ScaleTimeline extends TranslateTimeline { public ScaleTimeline (int frameCount) { super(frameCount); } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public int getPropertyId () { + return (TimelineType.scale.ordinal() << 24) + boneIndex; + } + + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { Bone bone = skeleton.bones.get(boneIndex); - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - bone.scaleX += (bone.data.scaleX * frames[frames.length + PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + PREV_Y] - bone.scaleY) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X] * bone.data.scaleX; + y = frames[frames.length + PREV_Y] * bone.data.scaleY; + } else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + Y] - prevY) * percent) - bone.scaleY) * alpha; + x = (x + (frames[frame + X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + bone.scaleX = x; + bone.scaleY = y; + } else { + float bx, by; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } else { + bx = bone.scaleX; + by = bone.scaleY; + } + // Mixing out uses sign of setup or current pose, else use sign of key. + if (mixingOut) { + x = Math.abs(x) * Math.signum(bx); + y = Math.abs(y) * Math.signum(by); + } else { + bx = Math.abs(bx) * Math.signum(x); + by = Math.abs(by) * Math.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } } } + /** Changes a bone's local {@link Bone#getShearX()} and {@link Bone#getShearY()}. */ static public class ShearTimeline extends TranslateTimeline { public ShearTimeline (int frameCount) { super(frameCount); } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public int getPropertyId () { + return (TimelineType.shear.ordinal() << 24) + boneIndex; + } + + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { Bone bone = skeleton.bones.get(boneIndex); - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - bone.shearX += (bone.data.shearX + frames[frames.length + PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + PREV_Y] - bone.shearY) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float prevX = frames[frame + PREV_X]; - float prevY = frames[frame + PREV_Y]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float x, y; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + x = frames[frames.length + PREV_X]; + y = frames[frames.length + PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + x = frames[frame + PREV_X]; + y = frames[frame + PREV_Y]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + Y] - prevY) * percent) - bone.shearY) * alpha; + x = x + (frames[frame + X] - x) * percent; + y = y + (frames[frame + 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; + } } } + /** Changes a slot's {@link Slot#getColor()}. */ static public class ColorTimeline extends CurveTimeline { static public final int ENTRIES = 5; static private final int PREV_TIME = -5, PREV_R = -4, PREV_G = -3, PREV_B = -2, PREV_A = -1; @@ -433,20 +549,26 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.color.ordinal() << 24) + slotIndex; + } + public void setSlotIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.slotIndex = index; } + /** The index of the slot in {@link Skeleton#getSlots()} that will be changed. */ public int getSlotIndex () { return slotIndex; } + /** The time in seconds, red, green, blue, and alpha values for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and value of the specified keyframe. */ + /** Sets the time in seconds, red, green, blue, and alpha for the specified key frame. */ public void setFrame (int frameIndex, float time, float r, float g, float b, float a) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -456,9 +578,15 @@ public class Animation { frames[frameIndex + A] = a; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { + + Slot slot = skeleton.slots.get(slotIndex); float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { // Time is before first frame. + if (setupPose) slot.color.set(slot.data.color); + return; + } float r, g, b, a; if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. @@ -483,14 +611,17 @@ public class Animation { b += (frames[frame + B] - b) * percent; a += (frames[frame + A] - a) * percent; } - Color color = skeleton.slots.get(slotIndex).color; - if (alpha < 1) + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + Color color = slot.color; + if (setupPose) color.set(slot.data.color); color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - else - color.set(r, g, b, a); + } } } + /** Changes a slot's {@link Slot#getAttachment()}. */ static public class AttachmentTimeline implements Timeline { int slotIndex; final float[] frames; // time, ... @@ -501,6 +632,11 @@ public class Animation { attachmentNames = new String[frameCount]; } + public int getPropertyId () { + return (TimelineType.attachment.ordinal() << 24) + slotIndex; + } + + /** The number of key frames for this timeline. */ public int getFrameCount () { return frames.length; } @@ -510,27 +646,45 @@ public class Animation { this.slotIndex = index; } + /** The index of the slot in {@link Skeleton#getSlots()} that will be changed. */ public int getSlotIndex () { return slotIndex; } + /** The time in seconds for each key frame. */ public float[] getFrames () { return frames; } + /** The attachment name for each key frame. May contain null values to clear the attachment. */ public String[] getAttachmentNames () { return attachmentNames; } - /** Sets the time and value of the specified keyframe. */ + /** Sets the time in seconds and the attachment name for the specified key frame. */ public void setFrame (int frameIndex, float time, String attachmentName) { frames[frameIndex] = time; attachmentNames[frameIndex] = attachmentName; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { + + Slot slot = skeleton.slots.get(slotIndex); + if (mixingOut && setupPose) { + String attachmentName = slot.data.attachmentName; + slot.setAttachment(attachmentName == null ? null : skeleton.getAttachment(slotIndex, attachmentName)); + return; + } + float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + String attachmentName = slot.data.attachmentName; + slot.setAttachment(attachmentName == null ? null : skeleton.getAttachment(slotIndex, attachmentName)); + } + return; + } int frameIndex; if (time >= frames[frames.length - 1]) // Time is after last frame. @@ -539,11 +693,149 @@ public class Animation { frameIndex = binarySearch(frames, time, 1) - 1; String attachmentName = attachmentNames[frameIndex]; - skeleton.slots.get(slotIndex) - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(slotIndex, attachmentName)); + slot.setAttachment(attachmentName == null ? null : skeleton.getAttachment(slotIndex, attachmentName)); } } + /** Changes a slot's {@link Slot#getAttachmentVertices()} to deform a {@link VertexAttachment}. */ + static public class DeformTimeline extends CurveTimeline { + int slotIndex; + VertexAttachment attachment; + private final float[] frames; // time, ... + private final float[][] frameVertices; + + public DeformTimeline (int frameCount) { + super(frameCount); + frames = new float[frameCount]; + frameVertices = new float[frameCount][]; + } + + public int getPropertyId () { + return (TimelineType.deform.ordinal() << 24) + slotIndex; + } + + public void setSlotIndex (int index) { + if (index < 0) throw new IllegalArgumentException("index must be >= 0."); + this.slotIndex = index; + } + + /** The index of the slot in {@link Skeleton#getSlots()} that will be changed. */ + public int getSlotIndex () { + return slotIndex; + } + + public void setAttachment (VertexAttachment attachment) { + this.attachment = attachment; + } + + /** The attachment that will be deformed. */ + public VertexAttachment getAttachment () { + return attachment; + } + + /** The time in seconds for each key frame. */ + public float[] getFrames () { + return frames; + } + + /** The vertices for each key frame. */ + public float[][] getVertices () { + return frameVertices; + } + + /** Sets the time in seconds and the vertices for the specified key frame. + * @param vertices Vertex positions for an unweighted VertexAttachment, or deform offsets if it has weights. */ + public void setFrame (int frameIndex, float time, float[] vertices) { + frames[frameIndex] = time; + frameVertices[frameIndex] = vertices; + } + + public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha, boolean setupPose, + boolean mixingOut) { + + Slot slot = skeleton.slots.get(slotIndex); + Attachment slotAttachment = slot.attachment; + if (!(slotAttachment instanceof VertexAttachment) || !((VertexAttachment)slotAttachment).applyDeform(attachment)) return; + + FloatArray verticesArray = slot.getAttachmentVertices(); + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) verticesArray.size = 0; + return; + } + + float[][] frameVertices = this.frameVertices; + int vertexCount = frameVertices[0].length; + if (verticesArray.size != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. + float[] vertices = verticesArray.setSize(vertexCount); + + if (time >= frames[frames.length - 1]) { // Time is after last frame. + float[] lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. + System.arraycopy(lastVertices, 0, vertices, 0, vertexCount); + } else if (setupPose) { + VertexAttachment vertexAttachment = (VertexAttachment)slotAttachment; + if (vertexAttachment.getBones() == null) { + // Unweighted vertex positions, with alpha. + float[] setupVertices = vertexAttachment.getVertices(); + for (int i = 0; i < vertexCount; i++) { + float setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } else { + // Vertex positions or deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time); + float[] prevVertices = frameVertices[frame - 1]; + float[] nextVertices = frameVertices[frame]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + + if (alpha == 1) { + // Vertex positions or deform offsets, no alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } else if (setupPose) { + VertexAttachment vertexAttachment = (VertexAttachment)slotAttachment; + if (vertexAttachment.getBones() == null) { + // Unweighted vertex positions, with alpha. + float[] setupVertices = vertexAttachment.getVertices(); + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } else { + // Vertex positions or deform offsets, with alpha. + for (int i = 0; i < vertexCount; i++) { + float prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + } + } + + /** Fires an {@link Event} when specific animation times are reached. */ static public class EventTimeline implements Timeline { private final float[] frames; // time, ... private final Event[] events; @@ -553,32 +845,41 @@ public class Animation { events = new Event[frameCount]; } + public int getPropertyId () { + return TimelineType.event.ordinal() << 24; + } + + /** The number of key frames for this timeline. */ public int getFrameCount () { return frames.length; } + /** The time in seconds for each key frame. */ public float[] getFrames () { return frames; } + /** The event for each key frame. */ public Event[] getEvents () { return events; } - /** Sets the time of the specified keyframe. */ + /** Sets the time in seconds and the event for the specified key frame. */ public void setFrame (int frameIndex, Event event) { frames[frameIndex] = event.time; events[frameIndex] = event; } - /** Fires events for frames > lastTime and <= time. */ - public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha) { + /** Fires events for frames > lastTime and <= time. */ + public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha, boolean setupPose, + boolean mixingOut) { + if (firedEvents == null) return; float[] frames = this.frames; int frameCount = frames.length; if (lastTime > time) { // Fire events after last time for looped animations. - apply(skeleton, lastTime, Integer.MAX_VALUE, firedEvents, alpha); + apply(skeleton, lastTime, Integer.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1f; } else if (lastTime >= frames[frameCount - 1]) // Last time is after last frame. return; @@ -600,6 +901,7 @@ public class Animation { } } + /** Changes a skeleton's {@link Skeleton#getDrawOrder()}. */ static public class DrawOrderTimeline implements Timeline { private final float[] frames; // time, ... private final int[][] drawOrders; @@ -609,28 +911,48 @@ public class Animation { drawOrders = new int[frameCount][]; } + public int getPropertyId () { + return TimelineType.drawOrder.ordinal() << 24; + } + + /** The number of key frames for this timeline. */ public int getFrameCount () { return frames.length; } + /** The time in seconds for each key frame. */ public float[] getFrames () { return frames; } + /** The draw order for each key frame. See {@link #setFrame(int, float, int[])}. */ public int[][] getDrawOrders () { return drawOrders; } - /** Sets the time of the specified keyframe. - * @param drawOrder May be null to use bind pose draw order. */ + /** Sets the time in seconds and the draw order for the specified key frame. + * @param drawOrder For each slot in {@link Skeleton#slots}, the index of the new draw order. May be null to use setup pose + * draw order. */ public void setFrame (int frameIndex, float time, int[] drawOrder) { frames[frameIndex] = time; drawOrders[frameIndex] = drawOrder; } - public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha) { + public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha, boolean setupPose, + boolean mixingOut) { + + Array drawOrder = skeleton.drawOrder; + Array slots = skeleton.slots; + if (mixingOut && setupPose) { + System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size); + return; + } + float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { // Time is before first frame. + if (setupPose) System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size); + return; + } int frame; if (time >= frames[frames.length - 1]) // Time is after last frame. @@ -638,8 +960,6 @@ public class Animation { else frame = binarySearch(frames, time) - 1; - Array drawOrder = skeleton.drawOrder; - Array slots = skeleton.slots; int[] drawOrderToSetupIndex = drawOrders[frame]; if (drawOrderToSetupIndex == null) System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size); @@ -650,95 +970,7 @@ public class Animation { } } - static public class DeformTimeline extends CurveTimeline { - private final float[] frames; // time, ... - private final float[][] frameVertices; - int slotIndex; - VertexAttachment attachment; - - public DeformTimeline (int frameCount) { - super(frameCount); - frames = new float[frameCount]; - frameVertices = new float[frameCount][]; - } - - public void setSlotIndex (int index) { - if (index < 0) throw new IllegalArgumentException("index must be >= 0."); - this.slotIndex = index; - } - - public int getSlotIndex () { - return slotIndex; - } - - public void setAttachment (VertexAttachment attachment) { - this.attachment = attachment; - } - - public Attachment getAttachment () { - return attachment; - } - - public float[] getFrames () { - return frames; - } - - public float[][] getVertices () { - return frameVertices; - } - - /** Sets the time of the specified keyframe. */ - public void setFrame (int frameIndex, float time, float[] vertices) { - frames[frameIndex] = time; - frameVertices[frameIndex] = vertices; - } - - public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha) { - Slot slot = skeleton.slots.get(slotIndex); - Attachment slotAttachment = slot.attachment; - if (!(slotAttachment instanceof VertexAttachment) || !((VertexAttachment)slotAttachment).applyDeform(attachment)) return; - - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - - float[][] frameVertices = this.frameVertices; - int vertexCount = frameVertices[0].length; - - FloatArray verticesArray = slot.getAttachmentVertices(); - if (verticesArray.size != vertexCount) alpha = 1; // Don't mix from uninitialized slot vertices. - float[] vertices = verticesArray.setSize(vertexCount); - - if (time >= frames[frames.length - 1]) { // Time is after last frame. - float[] lastVertices = frameVertices[frames.length - 1]; - if (alpha < 1) { - for (int i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } else - System.arraycopy(lastVertices, 0, vertices, 0, vertexCount); - return; - } - - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time); - float[] prevVertices = frameVertices[frame - 1]; - float[] nextVertices = frameVertices[frame]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - - if (alpha < 1) { - for (int i = 0; i < vertexCount; i++) { - float prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } else { - for (int i = 0; i < vertexCount; i++) { - float prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - } - } - + /** Changes an IK constraint's {@link IkConstraint#getMix()} and {@link IkConstraint#getBendDirection()}. */ static public class IkConstraintTimeline extends CurveTimeline { static public final int ENTRIES = 3; static private final int PREV_TIME = -3, PREV_MIX = -2, PREV_BEND_DIRECTION = -1; @@ -752,20 +984,26 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.ikConstraint.ordinal() << 24) + ikConstraintIndex; + } + public void setIkConstraintIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.ikConstraintIndex = index; } + /** The index of the IK constraint slot in {@link Skeleton#getIkConstraints()} that will be changed. */ public int getIkConstraintIndex () { return ikConstraintIndex; } + /** The time in seconds, mix, and bend direction for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time, mix and bend direction of the specified keyframe. */ + /** Sets the time in seconds, mix, and bend direction for the specified key frame. */ public void setFrame (int frameIndex, float time, float mix, int bendDirection) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -773,15 +1011,28 @@ public class Animation { frames[frameIndex + BEND_DIRECTION] = bendDirection; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { IkConstraint constraint = skeleton.ikConstraints.get(ikConstraintIndex); + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + constraint.mix = constraint.data.mix; + constraint.bendDirection = constraint.data.bendDirection; + } + return; + } if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - constraint.mix += (frames[frames.length + PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = (int)frames[frames.length + PREV_BEND_DIRECTION]; + if (setupPose) { + constraint.mix = constraint.data.mix + (frames[frames.length + PREV_MIX] - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection + : (int)frames[frames.length + PREV_BEND_DIRECTION]; + } else { + constraint.mix += (frames[frames.length + PREV_MIX] - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = (int)frames[frames.length + PREV_BEND_DIRECTION]; + } return; } @@ -791,11 +1042,17 @@ public class Animation { float frameTime = frames[frame]; float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = (int)frames[frame + PREV_BEND_DIRECTION]; + if (setupPose) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.bendDirection = mixingOut ? constraint.data.bendDirection : (int)frames[frame + PREV_BEND_DIRECTION]; + } else { + constraint.mix += (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; + if (!mixingOut) constraint.bendDirection = (int)frames[frame + PREV_BEND_DIRECTION]; + } } } + /** Changes a transform constraint's mixes. */ static public class TransformConstraintTimeline extends CurveTimeline { static public final int ENTRIES = 5; static private final int PREV_TIME = -5, PREV_ROTATE = -4, PREV_TRANSLATE = -3, PREV_SCALE = -2, PREV_SHEAR = -1; @@ -809,20 +1066,26 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.transformConstraint.ordinal() << 24) + transformConstraintIndex; + } + public void setTransformConstraintIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.transformConstraintIndex = index; } + /** The index of the transform constraint slot in {@link Skeleton#getTransformConstraints()} that will be changed. */ public int getTransformConstraintIndex () { return transformConstraintIndex; } + /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and mixes of the specified keyframe. */ + /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for the specified key frame. */ public void setFrame (int frameIndex, float time, float rotateMix, float translateMix, float scaleMix, float shearMix) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -832,38 +1095,61 @@ public class Animation { frames[frameIndex + SHEAR] = shearMix; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { TransformConstraint constraint = skeleton.transformConstraints.get(transformConstraintIndex); - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - int i = frames.length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + PREV_SHEAR] - constraint.shearMix) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + TransformConstraintData data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float rotate, translate, scale, shear; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + int i = frames.length; + rotate = frames[i + PREV_ROTATE]; + translate = frames[i + PREV_TRANSLATE]; + scale = frames[i + PREV_SCALE]; + shear = frames[i + PREV_SHEAR]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + scale = frames[frame + PREV_SCALE]; + shear = frames[frame + PREV_SHEAR]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - float rotate = frames[frame + PREV_ROTATE]; - float translate = frames[frame + PREV_TRANSLATE]; - float scale = frames[frame + PREV_SCALE]; - float shear = frames[frame + PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + SHEAR] - shear) * percent - constraint.shearMix) * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + TRANSLATE] - translate) * percent; + scale += (frames[frame + SCALE] - scale) * percent; + shear += (frames[frame + SHEAR] - shear) * percent; + } + if (setupPose) { + TransformConstraintData 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; + } } } + /** Changes a path constraint's {@link PathConstraint#getPosition()}. */ static public class PathConstraintPositionTimeline extends CurveTimeline { static public final int ENTRIES = 2; static final int PREV_TIME = -2, PREV_VALUE = -1; @@ -878,75 +1164,104 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.pathConstraintPosition.ordinal() << 24) + pathConstraintIndex; + } + public void setPathConstraintIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.pathConstraintIndex = index; } + /** The index of the path constraint slot in {@link Skeleton#getPathConstraints()} that will be changed. */ public int getPathConstraintIndex () { return pathConstraintIndex; } + /** The time in seconds and path constraint position for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and value of the specified keyframe. */ - public void setFrame (int frameIndex, float time, float value) { + /** Sets the time in seconds and path constraint position for the specified key frame. */ + public void setFrame (int frameIndex, float time, float position) { frameIndex *= ENTRIES; frames[frameIndex] = time; - frames[frameIndex + VALUE] = value; + frames[frameIndex + VALUE] = position; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { PathConstraint constraint = skeleton.pathConstraints.get(pathConstraintIndex); - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - int i = frames.length; - constraint.position += (frames[i + PREV_VALUE] - constraint.position) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) constraint.position = constraint.data.position; return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float position = frames[frame + PREV_VALUE]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float position; + if (time >= frames[frames.length - ENTRIES]) // Time is after last frame. + position = frames[frames.length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + position = frames[frame + PREV_VALUE]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.position += (position + (frames[frame + VALUE] - position) * percent - constraint.position) * alpha; + position += (frames[frame + VALUE] - position) * percent; + } + if (setupPose) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; } } + /** Changes a path constraint's {@link PathConstraint#getSpacing()}. */ static public class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { public PathConstraintSpacingTimeline (int frameCount) { super(frameCount); } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public int getPropertyId () { + return (TimelineType.pathConstraintSpacing.ordinal() << 24) + pathConstraintIndex; + } + + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { PathConstraint constraint = skeleton.pathConstraints.get(pathConstraintIndex); - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - int i = frames.length; - constraint.spacing += (frames[i + PREV_VALUE] - constraint.spacing) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) constraint.spacing = constraint.data.spacing; return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float spacing = frames[frame + PREV_VALUE]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float spacing; + if (time >= frames[frames.length - ENTRIES]) // Time is after last frame. + spacing = frames[frames.length + PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + spacing = frames[frame + PREV_VALUE]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.spacing += (spacing + (frames[frame + VALUE] - spacing) * percent - constraint.spacing) * alpha; + spacing += (frames[frame + VALUE] - spacing) * percent; + } + + if (setupPose) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; } } + /** Changes a path constraint's mixes. */ static public class PathConstraintMixTimeline extends CurveTimeline { static public final int ENTRIES = 3; static private final int PREV_TIME = -3, PREV_ROTATE = -2, PREV_TRANSLATE = -1; @@ -961,20 +1276,26 @@ public class Animation { frames = new float[frameCount * ENTRIES]; } + public int getPropertyId () { + return (TimelineType.pathConstraintMix.ordinal() << 24) + pathConstraintIndex; + } + public void setPathConstraintIndex (int index) { if (index < 0) throw new IllegalArgumentException("index must be >= 0."); this.pathConstraintIndex = index; } + /** The index of the path constraint slot in {@link Skeleton#getPathConstraints()} that will be changed. */ public int getPathConstraintIndex () { return pathConstraintIndex; } + /** The time in seconds, rotate mix, and translate mix for each key frame. */ public float[] getFrames () { return frames; } - /** Sets the time and mixes of the specified keyframe. */ + /** The time in seconds, rotate mix, and translate mix for the specified key frame. */ public void setFrame (int frameIndex, float time, float rotateMix, float translateMix) { frameIndex *= ENTRIES; frames[frameIndex] = time; @@ -982,29 +1303,43 @@ public class Animation { frames[frameIndex + TRANSLATE] = translateMix; } - public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha) { - float[] frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + public void apply (Skeleton skeleton, float lastTime, float time, Array events, float alpha, boolean setupPose, + boolean mixingOut) { PathConstraint constraint = skeleton.pathConstraints.get(pathConstraintIndex); - - if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. - int i = frames.length; - constraint.rotateMix += (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha; + float[] frames = this.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - // Interpolate between the previous frame and the current frame. - int frame = binarySearch(frames, time, ENTRIES); - float rotate = frames[frame + PREV_ROTATE]; - float translate = frames[frame + PREV_TRANSLATE]; - float frameTime = frames[frame]; - float percent = getCurvePercent(frame / ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + float rotate, translate; + if (time >= frames[frames.length - ENTRIES]) { // Time is after last frame. + rotate = frames[frames.length + PREV_ROTATE]; + translate = frames[frames.length + PREV_TRANSLATE]; + } else { + // Interpolate between the previous frame and the current frame. + int frame = binarySearch(frames, time, ENTRIES); + rotate = frames[frame + PREV_ROTATE]; + translate = frames[frame + PREV_TRANSLATE]; + float frameTime = frames[frame]; + float percent = getCurvePercent(frame / ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - constraint.rotateMix += (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + rotate += (frames[frame + ROTATE] - rotate) * percent; + translate += (frames[frame + 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; + } } } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index e8599c26b..467991726 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -30,25 +30,42 @@ package com.esotericsoftware.spine; +import static com.esotericsoftware.spine.Animation.RotateTimeline.*; + import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.BooleanArray; +import com.badlogic.gdx.utils.FloatArray; +import com.badlogic.gdx.utils.IntSet; import com.badlogic.gdx.utils.Pool; import com.badlogic.gdx.utils.Pool.Poolable; +import com.esotericsoftware.spine.Animation.AttachmentTimeline; +import com.esotericsoftware.spine.Animation.DrawOrderTimeline; +import com.esotericsoftware.spine.Animation.RotateTimeline; +import com.esotericsoftware.spine.Animation.Timeline; -/** Stores state for an animation and automatically mixes between animations. */ +/** Applies animations over time, queues animations for later playback, mixes (crossfading) between animations, and applies + * multiple animations on top of each other (layering). + *

+ * See Applying Animations in the Spine Runtimes Guide. */ public class AnimationState { + static private final Animation emptyAnimation = new Animation("", new Array(0), 0); + private AnimationStateData data; - private Array tracks = new Array(); + final Array tracks = new Array(); private final Array events = new Array(); - private final Array listeners = new Array(); + final Array listeners = new Array(); + private final EventQueue queue = new EventQueue(); + private final IntSet propertyIDs = new IntSet(); + boolean animationsChanged; private float timeScale = 1; - private Pool trackEntryPool = new Pool() { + final Pool trackEntryPool = new Pool() { protected Object newObject () { return new TrackEntry(); } }; - /** Creates an uninitialized AnimationState. The animation state data must be set. */ + /** Creates an uninitialized AnimationState. The animation state data must be set before use. */ public AnimationState () { } @@ -57,117 +74,442 @@ public class AnimationState { this.data = data; } + /** Increments each track entry {@link TrackEntry#getTrackTime()}, setting queued animations as current if needed. */ public void update (float delta) { delta *= timeScale; - for (int i = 0; i < tracks.size; i++) { + for (int i = 0, n = tracks.size; i < n; i++) { TrackEntry current = tracks.get(i); if (current == null) continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + + float currentDelta = delta * current.timeScale; + + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) continue; + currentDelta = -current.delay; + current.delay = 0; + } + TrackEntry next = current.next; if (next != null) { - float nextTime = current.lastTime - next.delay; + // When the next entry's delay is passed, change to the next entry, preserving leftover time. + float nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - float nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; // For start event to see correct time. - current.time += delta * current.timeScale; // For end event to see correct time. + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; setCurrent(i, next); - next.time -= nextDelta; // Prevent increasing time twice, below. - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + updateMixingFrom(current, delta, true); + } else { + updateMixingFrom(current, delta, true); + // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks.set(i, null); + queue.end(current); + disposeNext(current); + continue; } - } else if (!current.loop && current.lastTime >= current.endTime) { - // End non-looping animation when it reaches its end time and there is no next entry. - clearTrack(i); - continue; } - current.time += delta * current.timeScale; - if (current.previous != null) { - float previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + + queue.drain(); } + private void updateMixingFrom (TrackEntry entry, float delta, boolean canEnd) { + TrackEntry from = entry.mixingFrom; + if (from == null) return; + + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + queue.end(from); + TrackEntry newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + float mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + + updateMixingFrom(from, delta, canEnd && from.alpha == 1); + } + + /** 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) { + if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null."); + if (animationsChanged) animationsChanged(); + Array events = this.events; - int listenerCount = listeners.size; - for (int i = 0; i < tracks.size; i++) { + for (int i = 0, n = tracks.size; i < n; i++) { TrackEntry current = tracks.get(i); - if (current == null) continue; + if (current == null || current.delay > 0) continue; - events.size = 0; + // Apply mixing from entries first. + float mix = current.alpha; + if (current.mixingFrom != null) mix *= applyMixingFrom(current, skeleton); - float time = current.time; - float lastTime = current.lastTime; - float endTime = current.endTime; - boolean loop = current.loop; - if (!loop && time > endTime) time = endTime; + // Apply current entry. + float animationLast = current.animationLast, animationTime = current.getAnimationTime(); + int timelineCount = current.animation.timelines.size; + Object[] timelines = current.animation.timelines.items; + if (mix == 1) { + for (int ii = 0; ii < timelineCount; ii++) + ((Timeline)timelines[ii]).apply(skeleton, animationLast, animationTime, events, 1, true, false); + } else { + boolean firstFrame = current.timelinesRotation.size == 0; + if (firstFrame) current.timelinesRotation.setSize(timelineCount << 1); + float[] timelinesRotation = current.timelinesRotation.items; - TrackEntry previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); - else { - float previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - - float alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - trackEntryPool.free(previous); - current.previous = null; + boolean[] timelinesFirst = current.timelinesFirst.items; + for (int ii = 0; ii < timelineCount; ii++) { + Timeline timeline = (Timeline)timelines[ii]; + if (timeline instanceof RotateTimeline) { + applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, + firstFrame); + } else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - - for (int ii = 0, nn = events.size; ii < nn; ii++) { - Event event = events.get(ii); - if (current.listener != null) current.listener.event(i, event); - for (int iii = 0; iii < listenerCount; iii++) - listeners.get(iii).event(i, event); - } - - // Check if completed the animation or a loop iteration. - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - int count = (int)(time / endTime); - if (current.listener != null) current.listener.complete(i, count); - for (int ii = 0, nn = listeners.size; ii < nn; ii++) - listeners.get(ii).complete(i, count); - } - - current.lastTime = current.time; + queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + + queue.drain(); } + private float applyMixingFrom (TrackEntry entry, Skeleton skeleton) { + TrackEntry from = entry.mixingFrom; + if (from.mixingFrom != null) applyMixingFrom(from, skeleton); + + float mix; + if (entry.mixDuration == 0) // Single frame mix to undo mixingFrom changes. + mix = 1; + else { + mix = entry.mixTime / entry.mixDuration; + if (mix > 1) mix = 1; + } + + Array events = mix < from.eventThreshold ? this.events : null; + boolean attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + float animationLast = from.animationLast, animationTime = from.getAnimationTime(); + int timelineCount = from.animation.timelines.size; + Object[] timelines = from.animation.timelines.items; + boolean[] timelinesFirst = from.timelinesFirst.items; + float alpha = from.alpha * entry.mixAlpha * (1 - mix); + + boolean firstFrame = from.timelinesRotation.size == 0; + if (firstFrame) from.timelinesRotation.setSize(timelineCount << 1); + float[] timelinesRotation = from.timelinesRotation.items; + + for (int i = 0; i < timelineCount; i++) { + Timeline timeline = (Timeline)timelines[i]; + boolean setupPose = timelinesFirst[i]; + if (timeline instanceof RotateTimeline) + applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof AttachmentTimeline) continue; + if (!drawOrder && timeline instanceof DrawOrderTimeline) continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + + queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + + return mix; + } + + private void applyRotateTimeline (Timeline timeline, Skeleton skeleton, float time, float alpha, boolean setupPose, + float[] timelinesRotation, int i, boolean firstFrame) { + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + + RotateTimeline rotateTimeline = (RotateTimeline)timeline; + Bone bone = skeleton.bones.get(rotateTimeline.boneIndex); + float[] frames = rotateTimeline.frames; + if (time < frames[0]) { // Time is before first frame. + if (setupPose) bone.rotation = bone.data.rotation; + return; + } + + float r2; + if (time >= frames[frames.length - ENTRIES]) // Time is after last frame. + r2 = bone.data.rotation + frames[frames.length + PREV_ROTATION]; + else { + // Interpolate between the previous frame and the current frame. + int frame = Animation.binarySearch(frames, time, ENTRIES); + float prevRotation = frames[frame + PREV_ROTATION]; + float frameTime = frames[frame]; + float percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); + + r2 = frames[frame + ROTATION] - prevRotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + r2 = prevRotation + r2 * percent + bone.data.rotation; + r2 -= (16384 - (int)(16384.499999999996 - r2 / 360)) * 360; + } + + // Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. + float r1 = setupPose ? bone.data.rotation : bone.rotation; + float total, diff = r2 - r1; + if (diff == 0) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } else + total = timelinesRotation[i]; + } else { + diff -= (16384 - (int)(16384.499999999996 - diff / 360)) * 360; + float lastTotal, lastDiff; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; // Angle and direction of mix, including loops. + lastDiff = timelinesRotation[i + 1]; // Difference between bones. + } + boolean current = diff > 0, dir = lastTotal >= 0; + // Detect cross at 0 (not 180). + if (Math.signum(lastDiff) != Math.signum(diff) && Math.abs(lastDiff) <= 90) { + // A cross after a 360 rotation is a loop. + if (Math.abs(lastTotal) > 180) lastTotal += 360 * Math.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; // Store loops as part of lastTotal. + if (dir != current) total += 360 * Math.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - (int)(16384.499999999996 - r1 / 360)) * 360; + } + + private void queueEvents (TrackEntry entry, float animationTime) { + float animationStart = entry.animationStart, animationEnd = entry.animationEnd; + float duration = animationEnd - animationStart; + float trackLastWrapped = entry.trackLast % duration; + + // Queue events before complete. + Array events = this.events; + int i = 0, n = events.size; + for (; i < n; i++) { + Event event = events.get(i); + if (event.time < trackLastWrapped) break; + if (event.time > animationEnd) continue; // Discard events outside animation start/end. + queue.event(entry, event); + } + + // Queue complete if completed a loop iteration or the animation. + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + queue.complete(entry); + } + + // Queue events after complete. + for (; i < n; i++) { + Event event = events.get(i); + if (event.time < animationStart) continue; // Discard events outside animation start/end. + queue.event(entry, events.get(i)); + } + events.clear(); + } + + /** Removes all animations from all tracks, leaving skeletons in their previous pose. + *

+ * It may be desired to use {@link AnimationState#setEmptyAnimations(float)} to mix the skeletons back to the setup pose, + * rather than leaving them in their previous pose. */ public void clearTracks () { + queue.drainDisabled = true; for (int i = 0, n = tracks.size; i < n; i++) clearTrack(i); tracks.clear(); + queue.drainDisabled = false; + queue.drain(); } + /** Removes all animations from the track, leaving skeletons in their previous pose. + *

+ * It may be desired to use {@link AnimationState#setEmptyAnimation(int, float)} to mix the skeletons back to the setup pose, + * rather than leaving them in their previous pose. */ public void clearTrack (int trackIndex) { if (trackIndex >= tracks.size) return; TrackEntry current = tracks.get(trackIndex); if (current == null) return; - if (current.listener != null) current.listener.end(trackIndex); - for (int i = 0, n = listeners.size; i < n; i++) - listeners.get(i).end(trackIndex); + queue.end(current); - tracks.set(trackIndex, null); + disposeNext(current); - freeAll(current); - if (current.previous != null) trackEntryPool.free(current.previous); + TrackEntry entry = current; + while (true) { + TrackEntry from = entry.mixingFrom; + if (from == null) break; + queue.end(from); + entry.mixingFrom = null; + entry = from; + } + + tracks.set(current.trackIndex, null); + + queue.drain(); } - private void freeAll (TrackEntry entry) { - while (entry != null) { - TrackEntry next = entry.next; - trackEntryPool.free(entry); - entry = next; + private void setCurrent (int index, TrackEntry current) { + TrackEntry from = expandToIndex(index); + tracks.set(index, current); + + if (from != null) { + queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + + // If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. + if (from.mixingFrom != null) current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } + + queue.start(current); + } + + /** Sets an animation by name. + *

+ * {@link #setAnimation(int, Animation, boolean)}. */ + public TrackEntry setAnimation (int trackIndex, String animationName, boolean loop) { + Animation animation = data.skeletonData.findAnimation(animationName); + if (animation == null) throw new IllegalArgumentException("Animation not found: " + animationName); + return setAnimation(trackIndex, animation, loop); + } + + /** Sets the current animation for a track, discarding any queued animations. + * @param loop If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + * duration. In either case {@link TrackEntry#getTrackEnd()} determines when the track is cleared. + * @return A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */ + public TrackEntry setAnimation (int trackIndex, Animation animation, boolean loop) { + if (animation == null) throw new IllegalArgumentException("animation cannot be null."); + TrackEntry current = expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + // Don't mix from an entry that was never applied. + tracks.set(trackIndex, null); + queue.interrupt(current); + queue.end(current); + disposeNext(current); + current = null; + } else + disposeNext(current); + } + TrackEntry entry = trackEntry(trackIndex, animation, loop, current); + setCurrent(trackIndex, entry); + queue.drain(); + return entry; + } + + /** Queues an animation by name. + *

+ * See {@link #addAnimation(int, Animation, boolean, float)}. */ + public TrackEntry addAnimation (int trackIndex, String animationName, boolean loop, float delay) { + Animation animation = data.skeletonData.findAnimation(animationName); + if (animation == null) throw new IllegalArgumentException("Animation not found: " + animationName); + return addAnimation(trackIndex, animation, loop, delay); + } + + /** Adds an animation to be played after the current or last queued animation for a track. If the track is empty, it is + * equivalent to calling {@link #setAnimation(int, Animation, boolean)}. + * @param delay Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation + * duration of the previous track minus any mix duration plus the delay. + * @return A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */ + public TrackEntry addAnimation (int trackIndex, Animation animation, boolean loop, float delay) { + if (animation == null) throw new IllegalArgumentException("animation cannot be null."); + + TrackEntry last = expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + + TrackEntry entry = trackEntry(trackIndex, animation, loop, last); + + if (last == null) { + setCurrent(trackIndex, entry); + queue.drain(); + } else { + last.next = entry; + if (delay <= 0) { + float duration = last.animationEnd - last.animationStart; + if (duration != 0) + delay += duration * (1 + (int)(last.trackTime / duration)) - data.getMix(last.animation, animation); + else + delay = 0; + } + } + + entry.delay = delay; + return entry; + } + + /** Sets an empty animation for a track, discarding any queued animations, and sets the track entry's + * {@link TrackEntry#getMixDuration()}. + *

+ * Mixing out is done by setting an empty animation. A mix duration of 0 still mixes out over one frame. + *

+ * To mix in, first set an empty animation and add an animation using {@link #addAnimation(int, Animation, boolean, float)}, + * then set the {@link TrackEntry#setMixDuration(float)} on the returned track entry. */ + public TrackEntry setEmptyAnimation (int trackIndex, float mixDuration) { + TrackEntry entry = setAnimation(trackIndex, emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + /** Adds an empty animation to be played after the current or last queued animation for a track, and sets the track entry's + * {@link TrackEntry#getMixDuration()}. If the track is empty, it is equivalent to calling + * {@link #setEmptyAnimation(int, float)}. + * @param delay Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation + * duration of the previous track minus any mix duration plus delay. + * @return A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */ + public TrackEntry addEmptyAnimation (int trackIndex, float mixDuration, float delay) { + if (delay <= 0) delay -= mixDuration; + TrackEntry entry = addAnimation(trackIndex, emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + /** Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix + * duration. */ + public void setEmptyAnimations (float mixDuration) { + queue.drainDisabled = true; + for (int i = 0, n = tracks.size; i < n; i++) { + TrackEntry current = tracks.get(i); + if (current != null) setEmptyAnimation(current.trackIndex, mixDuration); + } + queue.drainDisabled = false; + queue.drain(); } private TrackEntry expandToIndex (int index) { @@ -177,99 +519,105 @@ public class AnimationState { return null; } - private void setCurrent (int index, TrackEntry entry) { - TrackEntry current = expandToIndex(index); - if (current != null) { - TrackEntry previous = current.previous; - current.previous = null; - - if (current.listener != null) current.listener.end(index); - for (int i = 0, n = listeners.size; i < n; i++) - listeners.get(i).end(index); - - entry.mixDuration = data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - // If a mix is in progress, mix from the closest animation. - if (previous != null && current.mixTime / current.mixDuration < 0.5f) { - entry.previous = previous; - previous = current; - } else - entry.previous = current; - } else - trackEntryPool.free(current); - - if (previous != null) trackEntryPool.free(previous); - } - - tracks.set(index, entry); - - if (entry.listener != null) entry.listener.start(index); - for (int i = 0, n = listeners.size; i < n; i++) - listeners.get(i).start(index); - } - - /** @see #setAnimation(int, Animation, boolean) */ - public TrackEntry setAnimation (int trackIndex, String animationName, boolean loop) { - Animation animation = data.getSkeletonData().findAnimation(animationName); - if (animation == null) throw new IllegalArgumentException("Animation not found: " + animationName); - return setAnimation(trackIndex, animation, loop); - } - - /** Set the current animation. Any queued animations are cleared. */ - public TrackEntry setAnimation (int trackIndex, Animation animation, boolean loop) { - TrackEntry current = expandToIndex(trackIndex); - if (current != null) freeAll(current.next); - + /** @param last May be null. */ + private TrackEntry trackEntry (int trackIndex, Animation animation, boolean loop, TrackEntry last) { TrackEntry entry = trackEntryPool.obtain(); + entry.trackIndex = trackIndex; entry.animation = animation; entry.loop = loop; - entry.endTime = animation.getDuration(); - setCurrent(trackIndex, entry); + + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + + entry.animationStart = 0; + entry.animationEnd = animation.getDuration(); + entry.animationLast = -1; + entry.nextAnimationLast = -1; + + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = loop ? Integer.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + + entry.alpha = 1; + entry.mixAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : data.getMix(last.animation, animation); return entry; } - /** {@link #addAnimation(int, Animation, boolean, float)} */ - public TrackEntry addAnimation (int trackIndex, String animationName, boolean loop, float delay) { - Animation animation = data.getSkeletonData().findAnimation(animationName); - if (animation == null) throw new IllegalArgumentException("Animation not found: " + animationName); - return addAnimation(trackIndex, animation, loop, delay); - } - - /** Adds an animation to be played delay seconds after the current or last queued animation. - * @param delay May be <= 0 to use duration of previous animation minus any mix duration plus the negative delay. */ - public TrackEntry addAnimation (int trackIndex, Animation animation, boolean loop, float delay) { - TrackEntry entry = trackEntryPool.obtain(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.getDuration(); - - TrackEntry last = expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - last.next = entry; - } else - tracks.set(trackIndex, entry); - - if (delay <= 0) { - if (last != null) - delay += last.endTime - data.getMix(last.animation, animation); - else - delay = 0; + private void disposeNext (TrackEntry entry) { + TrackEntry next = entry.next; + while (next != null) { + queue.dispose(next); + next = next.next; } - entry.delay = delay; - - return entry; + entry.next = null; } - /** @return May be null. */ + private void animationsChanged () { + animationsChanged = false; + + IntSet propertyIDs = this.propertyIDs; + + // Set timelinesFirst for all entries, from lowest track to highest. + int i = 0, n = tracks.size; + propertyIDs.clear(); + for (; i < n; i++) { // Find first non-null entry. + TrackEntry entry = tracks.get(i); + if (entry == null) continue; + setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { // Rest of entries. + TrackEntry entry = tracks.get(i); + if (entry != null) checkTimelinesFirst(entry); + } + } + + /** From last to first mixingFrom entries, sets timelinesFirst to true on last, calls checkTimelineUsage on rest. */ + private void setTimelinesFirst (TrackEntry entry) { + if (entry.mixingFrom != null) { + setTimelinesFirst(entry.mixingFrom); + checkTimelinesUsage(entry); + return; + } + IntSet propertyIDs = this.propertyIDs; + int n = entry.animation.timelines.size; + Object[] timelines = entry.animation.timelines.items; + boolean[] usage = entry.timelinesFirst.setSize(n); + for (int i = 0; i < n; i++) { + propertyIDs.add(((Timeline)timelines[i]).getPropertyId()); + usage[i] = true; + } + } + + /** From last to first mixingFrom entries, calls checkTimelineUsage. */ + private void checkTimelinesFirst (TrackEntry entry) { + if (entry.mixingFrom != null) checkTimelinesFirst(entry.mixingFrom); + checkTimelinesUsage(entry); + } + + private void checkTimelinesUsage (TrackEntry entry) { + IntSet propertyIDs = this.propertyIDs; + int n = entry.animation.timelines.size; + Object[] timelines = entry.animation.timelines.items; + boolean[] usage = entry.timelinesFirst.setSize(n); + for (int i = 0; i < n; i++) + usage[i] = propertyIDs.add(((Timeline)timelines[i]).getPropertyId()); + } + + /** Returns the track entry for the animation currently playing on the track, or null if no animation is currently playing. */ public TrackEntry getCurrent (int trackIndex) { if (trackIndex >= tracks.size) return null; return tracks.get(trackIndex); } - /** Adds a listener to receive events for all animations. */ + /** Adds a listener to receive events for all track entries. */ public void addListener (AnimationStateListener listener) { if (listener == null) throw new IllegalArgumentException("listener cannot be null."); listeners.add(listener); @@ -280,10 +628,22 @@ public class AnimationState { listeners.removeValue(listener, true); } + /** Removes all listeners added with {@link #addListener(AnimationStateListener)}. */ public void clearListeners () { listeners.clear(); } + /** Discards all listener notifications that have not yet been delivered. This can be useful to call from an + * {@link AnimationStateListener} when it is known that further notifications that may have been already queued for delivery + * are not wanted because new animations are being set. */ + public void clearListenerNotifications () { + queue.clear(); + } + + /** Multiplier for the delta time when the animation state is updated, causing time for all animations to play slower or + * faster. Defaults to 1. + *

+ * See TrackEntry {@link TrackEntry#getTimeScale()} for affecting a single animation. */ public float getTimeScale () { return timeScale; } @@ -292,15 +652,17 @@ public class AnimationState { this.timeScale = timeScale; } + /** The AnimationStateData to look up mix durations. */ public AnimationStateData getData () { return data; } public void setData (AnimationStateData data) { + if (data == null) throw new IllegalArgumentException("data cannot be null."); this.data = data; } - /** Returns the list of tracks that have animations, which may contain nulls. */ + /** The list of tracks that currently have animations, which may contain null entries. */ public Array getTracks () { return tracks; } @@ -317,25 +679,39 @@ public class AnimationState { return buffer.toString(); } + /** Stores settings and other state for the playback of an animation on an {@link AnimationState} track. + *

+ * References to a track entry must not be kept after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */ static public class TrackEntry implements Poolable { - TrackEntry next, previous; Animation animation; - boolean loop; - float delay, time, lastTime = -1, endTime, timeScale = 1; - float mixTime, mixDuration; + TrackEntry next, mixingFrom; AnimationStateListener listener; - float mix = 1; + int trackIndex; + boolean loop; + float eventThreshold, attachmentThreshold, drawOrderThreshold; + float animationStart, animationEnd, animationLast, nextAnimationLast; + float delay, trackTime, trackLast, nextTrackLast, trackEnd, timeScale; + float alpha, mixTime, mixDuration, mixAlpha; + final BooleanArray timelinesFirst = new BooleanArray(); + final FloatArray timelinesRotation = new FloatArray(); public void reset () { next = null; - previous = null; + mixingFrom = null; animation = null; listener = null; - timeScale = 1; - lastTime = -1; // Trigger events on frame zero. - time = 0; + timelinesFirst.clear(); + timelinesRotation.clear(); } + /** The index of the track where this track entry is either current or queued. + *

+ * See {@link AnimationState#getCurrent(int)}. */ + public int getTrackIndex () { + return trackIndex; + } + + /** The animation to apply for this track entry. */ public Animation getAnimation () { return animation; } @@ -344,6 +720,8 @@ public class AnimationState { this.animation = animation; } + /** If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + * duration. */ public boolean getLoop () { return loop; } @@ -352,6 +730,9 @@ public class AnimationState { this.loop = loop; } + /** Seconds to postpone playing the animation. When a track entry is the current track entry, delay postpones + * incrementing the {@link #getTrackTime()}. When a track entry is queued, delay is the time from the start of + * the previous animation to when the track entry will become the current track entry. */ public float getDelay () { return delay; } @@ -360,46 +741,83 @@ public class AnimationState { this.delay = delay; } - public float getTime () { - return time; + /** Current time in seconds this track entry has been the current track entry. The track time determines + * {@link #getAnimationTime()}. The track time can be set to start the animation at a time other than 0, without affecting + * looping. */ + public float getTrackTime () { + return trackTime; } - public void setTime (float time) { - this.time = time; + public void setTrackTime (float trackTime) { + this.trackTime = trackTime; } - public float getEndTime () { - return endTime; + /** The track time in seconds when this animation will be removed from the track. Defaults to the animation + * {@link Animation#duration} for non-looping animations and the highest float possible for looping animations. If the track + * end time is reached, no other animations are queued for playback, and mixing from any previous animations is complete, + * then the track is cleared, leaving skeletons in their previous pose. + *

+ * It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} to mix the skeletons back to the + * setup pose, rather than leaving them in their previous pose. */ + public float getTrackEnd () { + return trackEnd; } - public void setEndTime (float endTime) { - this.endTime = endTime; + public void setTrackEnd (float trackEnd) { + this.trackEnd = trackEnd; } - public AnimationStateListener getListener () { - return listener; + /** Seconds when this animation starts, both initially and after looping. Defaults to 0. + *

+ * When changing the animationStart time, it often makes sense to set {@link #getAnimationLast()} to the same + * value to prevent timeline keys before the start time from triggering. */ + public float getAnimationStart () { + return animationStart; } - public void setListener (AnimationStateListener listener) { - this.listener = listener; + public void setAnimationStart (float animationStart) { + this.animationStart = animationStart; } - public float getLastTime () { - return lastTime; + /** Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will + * loop back to {@link #getAnimationStart()} at this time. Defaults to the animation {@link Animation#duration}. */ + public float getAnimationEnd () { + return animationEnd; } - public void setLastTime (float lastTime) { - this.lastTime = lastTime; + public void setAnimationEnd (float animationEnd) { + this.animationEnd = animationEnd; } - public float getMix () { - return mix; + /** The time in seconds this animation was last applied. Some timelines use this for one-time triggers. Eg, when this + * animation is applied, event timelines will fire all events between the animationLast time (exclusive) and + * animationTime (inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation + * is applied. */ + public float getAnimationLast () { + return animationLast; } - public void setMix (float mix) { - this.mix = mix; + public void setAnimationLast (float animationLast) { + this.animationLast = animationLast; + nextAnimationLast = animationLast; } + /** Uses {@link #getTrackTime()} to compute the animationTime, which is between {@link #getAnimationStart()} + * and {@link #getAnimationEnd()}. When the trackTime is 0, the animationTime is equal to the + * animationStart time. */ + public float getAnimationTime () { + if (loop) { + float duration = animationEnd - animationStart; + if (duration == 0) return animationStart; + return (trackTime % duration) + animationStart; + } + return Math.min(trackTime + animationStart, animationEnd); + } + + /** Multiplier for the delta time when the animation state is updated, causing time for this animation to pass slower or + * faster. Defaults to 1. + *

+ * See AnimationState {@link AnimationState#getTimeScale()} for affecting all animations. */ public float getTimeScale () { return timeScale; } @@ -408,17 +826,113 @@ public class AnimationState { this.timeScale = timeScale; } + /** The listener for events generated by this track entry, or null. */ + public AnimationStateListener getListener () { + return listener; + } + + /** @param listener May be null. */ + public void setListener (AnimationStateListener listener) { + this.listener = listener; + } + + /** Values < 1 mix this animation with the setup pose or the skeleton's previous pose. Defaults to 1, which overwrites the + * skeleton's previous pose with this animation. + *

+ * Typically track 0 is used to completely pose the skeleton, then alpha can be used on higher tracks. It doesn't make sense + * to use alpha on track 0 if the skeleton pose is from the last frame render. */ + public float getAlpha () { + return alpha; + } + + public void setAlpha (float alpha) { + this.alpha = alpha; + } + + /** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the + * eventThreshold, event timelines for the animation being mixed out will be applied. Defaults to 0, so event + * timelines are not applied for an animation being mixed out. */ + public float getEventThreshold () { + return eventThreshold; + } + + public void setEventThreshold (float eventThreshold) { + this.eventThreshold = eventThreshold; + } + + /** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the + * attachmentThreshold, attachment timelines for the animation being mixed out will be applied. Defaults to 0, + * so attachment timelines are not applied for an animation being mixed out. */ + public float getAttachmentThreshold () { + return attachmentThreshold; + } + + public void setAttachmentThreshold (float attachmentThreshold) { + this.attachmentThreshold = attachmentThreshold; + } + + /** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the + * drawOrderThreshold, draw order timelines for the animation being mixed out will be applied. Defaults to 0, + * so draw order timelines are not applied for an animation being mixed out. */ + public float getDrawOrderThreshold () { + return drawOrderThreshold; + } + + public void setDrawOrderThreshold (float drawOrderThreshold) { + this.drawOrderThreshold = drawOrderThreshold; + } + + /** The animation queued to start after this animation, or null. next makes up a linked list. */ public TrackEntry getNext () { return next; } - public void setNext (TrackEntry next) { - this.next = next; + /** Returns true if at least one loop has been completed. + *

+ * See {@link AnimationStateListener#complete(TrackEntry)}. */ + public boolean isComplete () { + return trackTime >= animationEnd - animationStart; } - /** Returns true if the current time is greater than the end time, regardless of looping. */ - public boolean isComplete () { - return time >= endTime; + /** Seconds from 0 to the {@link #getMixDuration()} when mixing from the previous animation to this animation. May be + * slightly more than mixDuration when the mix is complete. The mix time can be set manually rather than use + * the value from AnimationStateData {@link AnimationStateData#getMix(Animation, Animation)}. */ + public float getMixTime () { + return mixTime; + } + + public void setMixTime (float mixTime) { + this.mixTime = mixTime; + } + + /** Seconds for mixing from the previous animation to this animation. Defaults to the value provided by AnimationStateData + * {@link AnimationStateData#getMix(Animation, Animation)} based on the animation before this animation (if any). + *

+ * The mixDuration must be set for a new track entry before {@link AnimationState#update(float)} is next + * called. */ + public float getMixDuration () { + return mixDuration; + } + + public void setMixDuration (float mixDuration) { + this.mixDuration = mixDuration; + } + + /** The track entry for the previous animation when mixing from the previous animation to this animation, or null if no + * mixing is currently occuring. If mixing from multiple animations, mixingFrom makes up a linked list. */ + public TrackEntry getMixingFrom () { + return mixingFrom; + } + + /** Resets the rotation directions for mixing this entry's rotate timelines. This can be useful to avoid bones rotating the + * long way around when using {@link #alpha} and starting animations on other tracks. + *

+ * Mixing involves finding a rotation between two others, which has two possible solutions: the short way or the long way + * around. The two rotations likely change over time, so which direction is the short or long way also changes. If the short + * way was always chosen, bones would flip to the other side when that direction became the long way. TrackEntry chooses the + * short way the first time it is applied and remembers that direction. */ + public void resetRotationDirections () { + timelinesRotation.clear(); } public String toString () { @@ -426,32 +940,144 @@ public class AnimationState { } } + class EventQueue { + private final Array objects = new Array(); + boolean drainDisabled; + + public void start (TrackEntry entry) { + objects.add(EventType.start); + objects.add(entry); + animationsChanged = true; + } + + public void interrupt (TrackEntry entry) { + objects.add(EventType.interrupt); + objects.add(entry); + } + + public void end (TrackEntry entry) { + objects.add(EventType.end); + objects.add(entry); + animationsChanged = true; + } + + public void dispose (TrackEntry entry) { + objects.add(EventType.dispose); + objects.add(entry); + } + + public void complete (TrackEntry entry) { + objects.add(EventType.complete); + objects.add(entry); + } + + public void event (TrackEntry entry, Event event) { + objects.add(EventType.event); + objects.add(entry); + objects.add(event); + } + + public void drain () { + if (drainDisabled) return; // Not reentrant. + drainDisabled = true; + + Array objects = this.objects; + Array listeners = AnimationState.this.listeners; + for (int i = 0; i < objects.size; i += 2) { + EventType type = (EventType)objects.get(i); + TrackEntry entry = (TrackEntry)objects.get(i + 1); + switch (type) { + case start: + if (entry.listener != null) entry.listener.start(entry); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).start(entry); + break; + case interrupt: + if (entry.listener != null) entry.listener.interrupt(entry); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).interrupt(entry); + break; + case end: + if (entry.listener != null) entry.listener.end(entry); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).end(entry); + // Fall through. + case dispose: + if (entry.listener != null) entry.listener.dispose(entry); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).dispose(entry); + trackEntryPool.free(entry); + break; + case complete: + if (entry.listener != null) entry.listener.complete(entry); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).complete(entry); + break; + case event: + Event event = (Event)objects.get(i++ + 2); + if (entry.listener != null) entry.listener.event(entry, event); + for (int ii = 0; ii < listeners.size; ii++) + listeners.get(ii).event(entry, event); + break; + } + } + clear(); + + drainDisabled = false; + } + + public void clear () { + objects.clear(); + } + } + + static private enum EventType { + start, interrupt, end, dispose, complete, event + } + + /** The interface which can be implemented to receive TrackEntry events. + *

+ * See TrackEntry {@link TrackEntry#setListener(AnimationStateListener)} and AnimationState + * {@link AnimationState#addListener(AnimationStateListener)}. */ static public interface AnimationStateListener { - /** Invoked when the current animation triggers an event. */ - public void event (int trackIndex, Event event); + /** Invoked when this entry has been set as the current entry. */ + public void start (TrackEntry entry); - /** Invoked when the current animation has completed. - * @param loopCount The number of times the animation reached the end. */ - public void complete (int trackIndex, int loopCount); + /** Invoked when another entry has replaced this entry as the current entry. This entry may continue being applied for + * mixing. */ + public void interrupt (TrackEntry entry); - /** Invoked just after the current animation is set. */ - public void start (int trackIndex); + /** Invoked when this entry is no longer the current entry and will never be applied again. */ + public void end (TrackEntry entry); - /** Invoked just before the current animation is replaced. */ - public void end (int trackIndex); + /** Invoked when this entry will be disposed. This may occur without the entry ever being set as the current entry. + * References to the entry should not be kept after dispose is called, as it may be destroyed or reused. */ + public void dispose (TrackEntry entry); + + /** Invoked every time this entry's animation completes a loop. */ + public void complete (TrackEntry entry); + + /** Invoked when this entry's animation triggers an event. */ + public void event (TrackEntry entry, Event event); } static public abstract class AnimationStateAdapter implements AnimationStateListener { - public void event (int trackIndex, Event event) { + public void start (TrackEntry entry) { } - public void complete (int trackIndex, int loopCount) { + public void interrupt (TrackEntry entry) { } - public void start (int trackIndex) { + public void end (TrackEntry entry) { } - public void end (int trackIndex) { + public void dispose (TrackEntry entry) { + } + + public void complete (TrackEntry entry) { + } + + public void event (TrackEntry entry, Event event) { } } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java index c82da83f8..33b6859df 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java @@ -31,10 +31,11 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.utils.ObjectFloatMap; +import com.esotericsoftware.spine.AnimationState.TrackEntry; -/** Stores mixing times between animations. */ +/** Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed. */ public class AnimationStateData { - private final SkeletonData skeletonData; + final SkeletonData skeletonData; final ObjectFloatMap animationToMixTime = new ObjectFloatMap(); final Key tempKey = new Key(); float defaultMix; @@ -44,10 +45,14 @@ public class AnimationStateData { this.skeletonData = skeletonData; } + /** The SkeletonData to look up animations when they are specified by name. */ public SkeletonData getSkeletonData () { return skeletonData; } + /** Sets a mix duration by animation name. + *

+ * See {@link #setMix(Animation, Animation, float)}. */ public void setMix (String fromName, String toName, float duration) { Animation from = skeletonData.findAnimation(fromName); if (from == null) throw new IllegalArgumentException("Animation not found: " + fromName); @@ -56,6 +61,9 @@ public class AnimationStateData { setMix(from, to, duration); } + /** Sets the mix duration when changing from the specified animation to the other. + *

+ * See {@link TrackEntry#mixDuration}. */ public void setMix (Animation from, Animation to, float duration) { if (from == null) throw new IllegalArgumentException("from cannot be null."); if (to == null) throw new IllegalArgumentException("to cannot be null."); @@ -65,12 +73,17 @@ public class AnimationStateData { animationToMixTime.put(key, duration); } + /** Returns the mix duration to use when changing from the specified animation to the other, or the {@link #getDefaultMix()} if + * no mix duration has been set. */ public float getMix (Animation from, Animation to) { + if (from == null) throw new IllegalArgumentException("from cannot be null."); + if (to == null) throw new IllegalArgumentException("to cannot be null."); tempKey.a1 = from; tempKey.a2 = to; return animationToMixTime.get(tempKey, defaultMix); } + /** The mix duration to use when no mix duration has been defined between two animations. */ public float getDefaultMix () { return defaultMix; } @@ -98,5 +111,9 @@ public class AnimationStateData { } else if (!a2.equals(other.a2)) return false; return true; } + + public String toString () { + return a1.name + "->" + a2.name; + } } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java index 99bb0d873..7cfa40717 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java @@ -32,6 +32,7 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.graphics.GL20; +/** Determines how images are blended with existing pixels when drawn. */ public enum BlendMode { normal(GL20.GL_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA), // additive(GL20.GL_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE), // diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java index 0b04ac6f9..e96d6a661 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -36,18 +36,20 @@ import static com.badlogic.gdx.math.Matrix3.*; import com.badlogic.gdx.math.Matrix3; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; +import com.esotericsoftware.spine.BoneData.TransformMode; +/** Stores a bone's current pose. */ public class Bone implements Updatable { final BoneData data; final Skeleton skeleton; final Bone parent; final Array children = new Array(); float x, y, rotation, scaleX, scaleY, shearX, shearY; - float appliedRotation; + float ax, ay, arotation, ascaleX, ascaleY, ashearX, ashearY; + boolean appliedValid; float a, b, worldX; float c, d, worldY; - float worldSignX, worldSignY; boolean sorted; @@ -83,21 +85,34 @@ public class Bone implements Updatable { updateWorldTransform(x, y, rotation, scaleX, scaleY, shearX, shearY); } - /** Computes the world transform using the parent bone and this bone's local transform. */ + /** Computes the world transform using the parent bone and this bone's local transform. + *

+ * See {@link #updateWorldTransform(float, float, float, float, float, float, float)}. */ public void updateWorldTransform () { updateWorldTransform(x, y, rotation, scaleX, scaleY, shearX, shearY); } - /** Computes the world transform using the parent bone and the specified local transform. */ + /** Computes the world transform using the parent bone and the specified local transform. Child bones are not updated. + *

+ * See World transforms in the Spine + * Runtimes Guide. */ public void updateWorldTransform (float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY) { - appliedRotation = rotation; - - float rotationY = rotation + 90 + shearY; - float la = cosDeg(rotation + shearX) * scaleX, lb = cosDeg(rotationY) * scaleY; - float lc = sinDeg(rotation + shearX) * scaleX, ld = sinDeg(rotationY) * scaleY; + ax = x; + ay = y; + arotation = rotation; + ascaleX = scaleX; + ascaleY = scaleY; + ashearX = shearX; + ashearY = shearY; + appliedValid = true; Bone parent = this.parent; if (parent == null) { // Root bone. + float rotationY = rotation + 90 + shearY; + float la = cosDeg(rotation + shearX) * scaleX; + float lb = cosDeg(rotationY) * scaleY; + float lc = sinDeg(rotation + shearX) * scaleX; + float ld = sinDeg(rotationY) * scaleY; Skeleton skeleton = this.skeleton; if (skeleton.flipX) { x = -x; @@ -113,94 +128,99 @@ public class Bone implements Updatable { b = lb; c = lc; d = ld; - worldX = x; - worldY = y; - worldSignX = Math.signum(scaleX); - worldSignY = Math.signum(scaleY); + worldX = x + skeleton.x; + worldY = y + skeleton.y; return; } float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; worldX = pa * x + pb * y + parent.worldX; worldY = pc * x + pd * y + parent.worldY; - worldSignX = parent.worldSignX * Math.signum(scaleX); - worldSignY = parent.worldSignY * Math.signum(scaleY); - if (data.inheritRotation && data.inheritScale) { + switch (data.transformMode) { + case normal: { + float rotationY = rotation + 90 + shearY; + float la = cosDeg(rotation + shearX) * scaleX; + float lb = cosDeg(rotationY) * scaleY; + float lc = sinDeg(rotation + shearX) * scaleX; + float ld = sinDeg(rotationY) * scaleY; a = pa * la + pb * lc; b = pa * lb + pb * ld; c = pc * la + pd * lc; d = pc * lb + pd * ld; - } else { - if (data.inheritRotation) { // No scale inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - float cos = cosDeg(parent.appliedRotation), sin = sinDeg(parent.appliedRotation); - float temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritRotation) break; - parent = parent.parent; - } while (parent != null); - a = pa * la + pb * lc; - b = pa * lb + pb * ld; - c = pc * la + pd * lc; - d = pc * lb + pd * ld; - } else if (data.inheritScale) { // No rotation inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - float cos = cosDeg(parent.appliedRotation), sin = sinDeg(parent.appliedRotation); - float psx = parent.scaleX, psy = parent.scaleY; - float za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - float temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - - if (psx >= 0) sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritScale) break; - parent = parent.parent; - } while (parent != null); - a = pa * la + pb * lc; - b = pa * lb + pb * ld; - c = pc * la + pd * lc; - d = pc * lb + pd * ld; + return; + } + case onlyTranslation: { + float rotationY = rotation + 90 + shearY; + a = cosDeg(rotation + shearX) * scaleX; + b = cosDeg(rotationY) * scaleY; + c = sinDeg(rotation + shearX) * scaleX; + d = sinDeg(rotationY) * scaleY; + break; + } + case noRotationOrReflection: { + float s = pa * pa + pc * pc, prx; + if (s > 0.0001f) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = atan2(pc, pa) * radDeg; } else { - a = la; - b = lb; - c = lc; - d = ld; + pa = 0; + pc = 0; + prx = 90 - atan2(pd, pb) * radDeg; } - if (skeleton.flipX) { - a = -a; + float rx = rotation + shearX - prx; + float ry = rotation + shearY - prx + 90; + float la = cosDeg(rx) * scaleX; + float lb = cosDeg(ry) * scaleY; + float lc = sinDeg(rx) * scaleX; + float ld = sinDeg(ry) * scaleY; + a = pa * la - pb * lc; + b = pa * lb - pb * ld; + c = pc * la + pd * lc; + d = pc * lb + pd * ld; + break; + } + case noScale: + case noScaleOrReflection: { + float cos = cosDeg(rotation), sin = sinDeg(rotation); + float za = pa * cos + pb * sin; + float zc = pc * cos + pd * sin; + float s = (float)Math.sqrt(za * za + zc * zc); + if (s > 0.00001f) s = 1 / s; + za *= s; + zc *= s; + s = (float)Math.sqrt(za * za + zc * zc); + float r = PI / 2 + atan2(zc, za); + float zb = cos(r) * s; + float zd = sin(r) * s; + float la = cosDeg(shearX) * scaleX; + float lb = cosDeg(90 + shearY) * scaleY; + float lc = sinDeg(shearX) * scaleX; + float ld = sinDeg(90 + shearY) * scaleY; + a = za * la + zb * lc; + b = za * lb + zb * ld; + c = zc * la + zd * lc; + d = zc * lb + zd * ld; + if (data.transformMode != TransformMode.noScaleOrReflection ? pa * pd - pb * pc < 0 : skeleton.flipX != skeleton.flipY) { b = -b; - } - if (skeleton.flipY) { - c = -c; d = -d; } + return; + } + } + if (skeleton.flipX) { + a = -a; + b = -b; + } + if (skeleton.flipY) { + c = -c; + d = -d; } } + /** Sets this bone's local transform to the setup pose. */ public void setToSetupPose () { BoneData data = this.data; x = data.x; @@ -212,22 +232,27 @@ public class Bone implements Updatable { shearY = data.shearY; } + /** The bone's setup pose data. */ public BoneData getData () { return data; } + /** The skeleton this bone belongs to. */ public Skeleton getSkeleton () { return skeleton; } + /** The parent bone, or null if this is the root bone. */ public Bone getParent () { return parent; } + /** The immediate children of this bone. */ public Array getChildren () { return children; } + /** The local x translation. */ public float getX () { return x; } @@ -236,6 +261,7 @@ public class Bone implements Updatable { this.x = x; } + /** The local y translation. */ public float getY () { return y; } @@ -249,6 +275,7 @@ public class Bone implements Updatable { this.y = y; } + /** The local rotation. */ public float getRotation () { return rotation; } @@ -257,6 +284,7 @@ public class Bone implements Updatable { this.rotation = rotation; } + /** The local scaleX. */ public float getScaleX () { return scaleX; } @@ -265,6 +293,7 @@ public class Bone implements Updatable { this.scaleX = scaleX; } + /** The local scaleY. */ public float getScaleY () { return scaleY; } @@ -283,6 +312,7 @@ public class Bone implements Updatable { scaleY = scale; } + /** The local shearX. */ public float getShearX () { return shearX; } @@ -291,6 +321,7 @@ public class Bone implements Updatable { this.shearX = shearX; } + /** The local shearY. */ public float getShearY () { return shearY; } @@ -299,100 +330,101 @@ public class Bone implements Updatable { this.shearY = shearY; } + /** Part of the world transform matrix for the X axis. */ public float getA () { return a; } + /** Part of the world transform matrix for the Y axis. */ public float getB () { return b; } + /** Part of the world transform matrix for the X axis. */ public float getC () { return c; } + /** Part of the world transform matrix for the Y axis. */ public float getD () { return d; } + /** The world X position. */ public float getWorldX () { return worldX; } + /** The world Y position. */ public float getWorldY () { return worldY; } - public float getWorldSignX () { - return worldSignX; - } - - public float getWorldSignY () { - return worldSignY; - } - + /** The world rotation for the X axis, calculated using {@link #a} and {@link #c}. */ public float getWorldRotationX () { return atan2(c, a) * radDeg; } + /** The world rotation for the Y axis, calculated using {@link #b} and {@link #d}. */ public float getWorldRotationY () { return atan2(d, b) * radDeg; } + /** The magnitude (always positive) of the world scale X, calculated using {@link #a} and {@link #c}. */ public float getWorldScaleX () { - return (float)Math.sqrt(a * a + b * b) * worldSignX; + return (float)Math.sqrt(a * a + c * c); } + /** The magnitude (always positive) of the world scale Y, calculated using {@link #b} and {@link #d}. */ public float getWorldScaleY () { - return (float)Math.sqrt(c * c + d * d) * worldSignY; + return (float)Math.sqrt(b * b + d * d); } public float worldToLocalRotationX () { Bone parent = this.parent; - if (parent == null) return rotation; - float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; - return atan2(pa * c - pc * a, pd * a - pb * c) * radDeg; + if (parent == null) return arotation; + return atan2(parent.a * c - parent.c * a, parent.d * a - parent.b * c) * radDeg; } public float worldToLocalRotationY () { Bone parent = this.parent; - if (parent == null) return rotation; - float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; - return atan2(pa * d - pc * b, pd * b - pb * d) * radDeg; + if (parent == null) return arotation; + return atan2(parent.a * d - parent.c * b, parent.d * b - parent.b * d) * radDeg; } + /** Rotates the world transform the specified amount. {@link #updateWorldTransform()} will need to be called on any child + * bones, recursively. */ public void rotateWorld (float degrees) { - float a = this.a, b = this.b, c = this.c, d = this.d; float cos = cosDeg(degrees), sin = 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; + a = cos * a - sin * c; + b = cos * b - sin * d; + c = sin * a + cos * c; + d = sin * b + cos * d; + appliedValid = false; } - /** Computes the local transform from the world transform. This can be useful to perform processing on the local transform - * after the world transform has been modified directly (eg, by a constraint). + /** Computes the individual applied transform values from the world transform. This can be useful to perform processing using + * the applied transform after the world transform has been modified directly (eg, by a constraint). *

- * Some redundant information is lost by the world transform, such as -1,-1 scale versus 180 rotation. The computed local - * transform values may differ from the original values but are functionally the same. */ - public void updateLocalTransform () { + * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. */ + void updateAppliedTransform () { + appliedValid = true; Bone parent = this.parent; if (parent == null) { - x = worldX; - y = worldY; - rotation = atan2(c, a) * radDeg; - scaleX = (float)Math.sqrt(a * a + c * c); - scaleY = (float)Math.sqrt(b * b + d * d); - float det = a * d - b * c; - shearX = 0; - shearY = atan2(a * b + c * d, det) * radDeg; + ax = worldX; + ay = worldY; + arotation = atan2(c, a) * radDeg; + ascaleX = (float)Math.sqrt(a * a + c * c); + ascaleY = (float)Math.sqrt(b * b + d * d); + ashearX = 0; + ashearY = atan2(a * b + c * d, a * d - b * c) * radDeg; return; } float pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; float pid = 1 / (pa * pd - pb * pc); float dx = worldX - parent.worldX, dy = worldY - parent.worldY; - x = (dx * pd * pid - dy * pb * pid); - y = (dy * pa * pid - dx * pc * pid); + ax = (dx * pd * pid - dy * pb * pid); + ay = (dy * pa * pid - dx * pc * pid); float ia = pid * pd; float id = pid * pa; float ib = pid * pb; @@ -401,20 +433,19 @@ public class Bone implements Updatable { float rb = ia * b - ib * d; float rc = id * c - ic * a; float rd = id * d - ic * b; - shearX = 0; - scaleX = (float)Math.sqrt(ra * ra + rc * rc); - if (scaleX > 0.0001f) { + ashearX = 0; + ascaleX = (float)Math.sqrt(ra * ra + rc * rc); + if (ascaleX > 0.0001f) { float det = ra * rd - rb * rc; - scaleY = det / scaleX; - shearY = atan2(ra * rb + rc * rd, det) * radDeg; - rotation = atan2(rc, ra) * radDeg; + ascaleY = det / ascaleX; + ashearY = atan2(ra * rb + rc * rd, det) * radDeg; + arotation = atan2(rc, ra) * radDeg; } else { - scaleX = 0; - scaleY = (float)Math.sqrt(rb * rb + rd * rd); - shearY = 0; - rotation = 90 - atan2(rd, rb) * radDeg; + ascaleX = 0; + ascaleY = (float)Math.sqrt(rb * rb + rd * rd); + ashearY = 0; + arotation = 90 - atan2(rd, rb) * radDeg; } - appliedRotation = rotation; } public Matrix3 getWorldTransform (Matrix3 worldTransform) { @@ -432,15 +463,16 @@ public class Bone implements Updatable { return worldTransform; } + /** Transforms a point from world coordinates to the bone's local coordinates. */ public Vector2 worldToLocal (Vector2 world) { - float a = this.a, b = this.b, c = this.c, d = this.d; float invDet = 1 / (a * d - b * c); float x = world.x - worldX, y = world.y - worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); + world.x = x * d * invDet - y * b * invDet; + world.y = y * a * invDet - x * c * invDet; return world; } + /** Transforms a point from the bone's local coordinates to world coordinates. */ public Vector2 localToWorld (Vector2 local) { float x = local.x, y = local.y; local.x = x * a + y * b + worldX; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java index 68003d5cd..7523a115e 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java @@ -32,13 +32,14 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.graphics.Color; +/** Stores the setup pose for a {@link Bone}. */ public class BoneData { final int index; final String name; final BoneData parent; float length; float x, y, rotation, scaleX = 1, scaleY = 1, shearX, shearY; - boolean inheritRotation = true, inheritScale = true; + TransformMode transformMode = TransformMode.normal; // Nonessential. final Color color = new Color(0.61f, 0.61f, 0.61f, 1); @@ -69,10 +70,12 @@ public class BoneData { shearY = bone.shearY; } + /** The index of the bone in {@link Skeleton#getBones()}. */ public int getIndex () { return index; } + /** The name of the bone, which is unique within the skeleton. */ public String getName () { return name; } @@ -82,6 +85,7 @@ public class BoneData { return parent; } + /** The bone's length. */ public float getLength () { return length; } @@ -90,6 +94,7 @@ public class BoneData { this.length = length; } + /** The local x translation. */ public float getX () { return x; } @@ -98,6 +103,7 @@ public class BoneData { this.x = x; } + /** The local y translation. */ public float getY () { return y; } @@ -111,6 +117,7 @@ public class BoneData { this.y = y; } + /** The local rotation. */ public float getRotation () { return rotation; } @@ -119,6 +126,7 @@ public class BoneData { this.rotation = rotation; } + /** The local scaleX. */ public float getScaleX () { return scaleX; } @@ -127,6 +135,7 @@ public class BoneData { this.scaleX = scaleX; } + /** The local scaleY. */ public float getScaleY () { return scaleY; } @@ -140,6 +149,7 @@ public class BoneData { this.scaleY = scaleY; } + /** The local shearX. */ public float getShearX () { return shearX; } @@ -148,6 +158,7 @@ public class BoneData { this.shearX = shearX; } + /** The local shearX. */ public float getShearY () { return shearY; } @@ -156,22 +167,17 @@ public class BoneData { this.shearY = shearY; } - public boolean getInheritRotation () { - return inheritRotation; + /** The transform mode for how parent world transforms affect this bone. */ + public TransformMode getTransformMode () { + return transformMode; } - public void setInheritRotation (boolean inheritRotation) { - this.inheritRotation = inheritRotation; - } - - public boolean getInheritScale () { - return inheritScale; - } - - public void setInheritScale (boolean inheritScale) { - this.inheritScale = inheritScale; + public void setTransformMode (TransformMode transformMode) { + this.transformMode = transformMode; } + /** The color of the bone as it was in Spine. Available only when nonessential data was exported. Bones are not usually + * rendered at runtime. */ public Color getColor () { return color; } @@ -179,4 +185,11 @@ public class BoneData { public String toString () { return name; } + + /** Determines how a bone inherits world transforms from parent bones. */ + static public enum TransformMode { + normal, onlyTranslation, noRotationOrReflection, noScale, noScaleOrReflection; + + static public final TransformMode[] values = TransformMode.values(); + } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java new file mode 100644 index 000000000..8864b026b --- /dev/null +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Constraint.java @@ -0,0 +1,37 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package com.esotericsoftware.spine; + +/** The interface for all constraints. */ +public interface Constraint extends Updatable { + /** The ordinal for the order a skeleton's constraints will be applied. */ + public int getOrder (); +} diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java index c4012a26e..70b59777c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java @@ -30,6 +30,14 @@ package com.esotericsoftware.spine; +import com.esotericsoftware.spine.Animation.Timeline; +import com.esotericsoftware.spine.AnimationState.AnimationStateListener; + +/** Stores the current pose values for an {@link Event}. + *

+ * See Timeline {@link Timeline#apply(Skeleton, float, float, com.badlogic.gdx.utils.Array, float, boolean, boolean)}, + * AnimationStateListener {@link AnimationStateListener#event(com.esotericsoftware.spine.AnimationState.TrackEntry, Event)}, and + * Events in the Spine User Guide. */ public class Event { final private EventData data; int intValue; @@ -67,10 +75,12 @@ public class Event { this.stringValue = stringValue; } + /** The animation time this event was keyed. */ public float getTime () { return time; } + /** The events's setup pose data. */ public EventData getData () { return data; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java index 8b6240283..8d94413fb 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java @@ -30,6 +30,9 @@ package com.esotericsoftware.spine; +/** Stores the setup pose values for an {@link Event}. + *

+ * See Events in the Spine User Guide. */ public class EventData { final String name; int intValue; @@ -65,6 +68,7 @@ public class EventData { this.stringValue = stringValue; } + /** The name of the event, which is unique within the skeleton. */ public String getName () { return name; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java index 39c8f566f..36a5c9a1e 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -34,15 +34,17 @@ import static com.badlogic.gdx.math.MathUtils.*; import com.badlogic.gdx.utils.Array; -public class IkConstraint implements Updatable { +/** Stores the current pose for an IK constraint. An IK constraint adjusts the rotation of 1 or 2 constrained bones so the tip of + * the last bone is as close to the target bone as possible. + *

+ * See IK constraints in the Spine User Guide. */ +public class IkConstraint implements Constraint { final IkConstraintData data; final Array bones; Bone target; float mix = 1; int bendDirection; - int level; - public IkConstraint (IkConstraintData data, Skeleton skeleton) { if (data == null) throw new IllegalArgumentException("data cannot be null."); if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null."); @@ -69,6 +71,7 @@ public class IkConstraint implements Updatable { bendDirection = constraint.bendDirection; } + /** Applies the constraint to the constrained bones. */ public void apply () { update(); } @@ -86,10 +89,16 @@ public class IkConstraint implements Updatable { } } + public int getOrder () { + return data.order; + } + + /** The bones that will be modified by this IK constraint. */ public Array getBones () { return bones; } + /** The bone that is the IK target. */ public Bone getTarget () { return target; } @@ -98,6 +107,7 @@ public class IkConstraint implements Updatable { this.target = target; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getMix () { return mix; } @@ -106,6 +116,7 @@ public class IkConstraint implements Updatable { this.mix = mix; } + /** Controls the bend direction of the IK bones, either 1 or -1. */ public int getBendDirection () { return bendDirection; } @@ -114,6 +125,7 @@ public class IkConstraint implements Updatable { this.bendDirection = bendDirection; } + /** The IK constraint's setup pose data. */ public IkConstraintData getData () { return data; } @@ -122,31 +134,32 @@ public class IkConstraint implements Updatable { return data.name; } - /** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world - * coordinate system. */ + /** Applies 1 bone IK. The target is specified in the world coordinate system. */ static public void apply (Bone bone, float targetX, float targetY, float alpha) { - Bone pp = bone.parent; - float id = 1 / (pp.a * pp.d - pp.b * pp.c); - float x = targetX - pp.worldX, y = targetY - pp.worldY; - float tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - float rotationIK = atan2(ty, tx) * radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) rotationIK += 180; + if (!bone.appliedValid) bone.updateAppliedTransform(); + Bone p = bone.parent; + float id = 1 / (p.a * p.d - p.b * p.c); + float x = targetX - p.worldX, y = targetY - p.worldY; + float tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + float rotationIK = atan2(ty, tx) * radDeg - bone.ashearX - bone.arotation; + if (bone.ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; - bone.updateWorldTransform(bone.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, - bone.shearY); + bone.updateWorldTransform(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, + bone.ashearY); } - /** Adjusts the parent and child bone rotations so the tip of the child is as close to the target position as possible. The - * target is specified in the world coordinate system. + /** Applies 2 bone IK. The target is specified in the world coordinate system. * @param child A direct descendant of the parent bone. */ static public void apply (Bone parent, Bone child, float targetX, float targetY, int bendDir, float alpha) { if (alpha == 0) { child.updateWorldTransform(); return; } - float px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + if (!parent.appliedValid) parent.updateAppliedTransform(); + if (!child.appliedValid) child.updateAppliedTransform(); + float px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; int os1, os2, s2; if (psx < 0) { psx = -psx; @@ -165,14 +178,14 @@ public class IkConstraint implements Updatable { os2 = 180; } else os2 = 0; - float cx = child.x, cy, cwx, cwy, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + float cx = child.ax, cy, cwx, cwy, a = parent.a, b = parent.b, c = parent.c, d = parent.d; boolean u = Math.abs(psx - psy) <= 0.0001f; if (!u) { cy = 0; cwx = a * cx + parent.worldX; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -259,17 +272,17 @@ public class IkConstraint implements Updatable { } } float os = atan2(cy, cx) * s2; - float rotation = parent.rotation; + float rotation = parent.arotation; a1 = (a1 - os) * radDeg + os1 - rotation; if (a1 > 180) a1 -= 360; else if (a1 < -180) a1 += 360; - parent.updateWorldTransform(px, py, rotation + a1 * alpha, parent.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * radDeg - child.shearX) * s2 + os2 - rotation; + parent.updateWorldTransform(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * radDeg - child.ashearX) * s2 + os2 - rotation; if (a2 > 180) a2 -= 360; else if (a2 < -180) a2 += 360; - child.updateWorldTransform(cx, cy, rotation + a2 * alpha, child.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransform(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java index 4b9cfa4dd..75b3e49d6 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java @@ -32,8 +32,12 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.utils.Array; +/** Stores the setup pose for an {@link IkConstraint}. + *

+ * See IK constraints in the Spine User Guide. */ public class IkConstraintData { final String name; + int order; final Array bones = new Array(); BoneData target; int bendDirection = 1; @@ -44,14 +48,26 @@ public class IkConstraintData { this.name = name; } + /** The IK constraint's name, which is unique within the skeleton. */ public String getName () { return name; } + /** See {@link Constraint#getOrder()}. */ + public int getOrder () { + return order; + } + + public void setOrder (int order) { + this.order = order; + } + + /** The bones that are constrained by this IK constraint. */ public Array getBones () { return bones; } + /** The bone that is the IK target. */ public BoneData getTarget () { return target; } @@ -61,6 +77,7 @@ public class IkConstraintData { this.target = target; } + /** Controls the bend direction of the IK bones, either 1 or -1. */ public int getBendDirection () { return bendDirection; } @@ -69,6 +86,7 @@ public class IkConstraintData { this.bendDirection = bendDirection; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getMix () { return mix; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java index ac7f95ca8..08e83a4b6 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java @@ -40,7 +40,11 @@ import com.esotericsoftware.spine.PathConstraintData.SpacingMode; import com.esotericsoftware.spine.attachments.Attachment; import com.esotericsoftware.spine.attachments.PathAttachment; -public class PathConstraint implements Updatable { +/** Stores the current pose for a path constraint. A path constraint adjusts the rotation, translation, and scale of the + * constrained bones so they follow a {@link PathAttachment}. + *

+ * See Path constraints in the Spine User Guide. */ +public class PathConstraint implements Constraint { static private final int NONE = -1, BEFORE = -2, AFTER = -3; final PathConstraintData data; @@ -81,6 +85,7 @@ public class PathConstraint implements Updatable { translateMix = constraint.translateMix; } + /** Applies the constraint to the constrained bones. */ public void apply () { update(); } @@ -119,14 +124,19 @@ public class PathConstraint implements Updatable { float[] positions = computeWorldPositions((PathAttachment)attachment, spacesCount, tangents, data.positionMode == PositionMode.percent, spacingMode == SpacingMode.percent); - Skeleton skeleton = target.getSkeleton(); - float skeletonX = skeleton.x, skeletonY = skeleton.y; float boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - boolean tip = rotateMode == RotateMode.chain && offsetRotation == 0; + boolean tip; + if (offsetRotation == 0) + tip = rotateMode == RotateMode.chain; + else { + tip = false; + Bone p = target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? degRad : -degRad; + } for (int i = 0, p = 3; i < boneCount; i++, p += 3) { Bone bone = (Bone)bones[i]; - bone.worldX += (boneX - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; float x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; if (scale) { float length = lengths[i]; @@ -146,14 +156,15 @@ public class PathConstraint implements Updatable { r = positions[p + 2]; else r = atan2(dy, dx); - r -= atan2(c, a) - offsetRotation * degRad; + r -= atan2(c, a); if (tip) { cos = cos(r); sin = sin(r); float length = bone.data.length; boneX += (length * (cos * a - sin * c) - dx) * rotateMix; boneY += (length * (sin * a + cos * c) - dy) * rotateMix; - } + } else + r += offsetRotation; if (r > PI) r -= PI2; else if (r < -PI) // @@ -166,6 +177,7 @@ public class PathConstraint implements Updatable { bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } } @@ -402,7 +414,7 @@ public class PathConstraint implements Updatable { private void addCurvePosition (float p, float x1, float y1, float cx1, float cy1, float cx2, float cy2, float x2, float y2, float[] out, int o, boolean tangents) { - if (p == 0) p = 0.0001f; + if (p == 0 || Float.isNaN(p)) p = 0.0001f; float tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; float ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; float x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; @@ -411,6 +423,11 @@ public class PathConstraint implements Updatable { if (tangents) out[o + 2] = atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); } + public int getOrder () { + return data.order; + } + + /** The position along the path. */ public float getPosition () { return position; } @@ -419,6 +436,7 @@ public class PathConstraint implements Updatable { this.position = position; } + /** The spacing between bones. */ public float getSpacing () { return spacing; } @@ -427,6 +445,7 @@ public class PathConstraint implements Updatable { this.spacing = spacing; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getRotateMix () { return rotateMix; } @@ -435,6 +454,7 @@ public class PathConstraint implements Updatable { this.rotateMix = rotateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained translations. */ public float getTranslateMix () { return translateMix; } @@ -443,10 +463,12 @@ public class PathConstraint implements Updatable { this.translateMix = translateMix; } + /** The bones that will be modified by this path constraint. */ public Array getBones () { return bones; } + /** The slot whose path attachment will be used to constrained the bones. */ public Slot getTarget () { return target; } @@ -455,6 +477,7 @@ public class PathConstraint implements Updatable { this.target = target; } + /** The path constraint's setup pose data. */ public PathConstraintData getData () { return data; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java index f90144268..4007a142c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java @@ -32,8 +32,12 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.utils.Array; +/** Stores the setup pose for a {@link PathConstraint}. + *

+ * See Path constraints in the Spine User Guide. */ public class PathConstraintData { final String name; + int order; final Array bones = new Array(); SlotData target; PositionMode positionMode; @@ -47,10 +51,26 @@ public class PathConstraintData { this.name = name; } + /** The path constraint's name, which is unique within the skeleton. */ + public String getName () { + return name; + } + + /** See {@link Constraint#getOrder()}. */ + public int getOrder () { + return order; + } + + public void setOrder (int order) { + this.order = order; + } + + /** The bones that will be modified by this path constraint. */ public Array getBones () { return bones; } + /** The slot whose path attachment will be used to constrained the bones. */ public SlotData getTarget () { return target; } @@ -59,6 +79,7 @@ public class PathConstraintData { this.target = target; } + /** The mode for positioning the first bone on the path. */ public PositionMode getPositionMode () { return positionMode; } @@ -67,6 +88,7 @@ public class PathConstraintData { this.positionMode = positionMode; } + /** The mode for positioning the bones after the first bone on the path. */ public SpacingMode getSpacingMode () { return spacingMode; } @@ -75,6 +97,7 @@ public class PathConstraintData { this.spacingMode = spacingMode; } + /** The mode for adjusting the rotation of the bones. */ public RotateMode getRotateMode () { return rotateMode; } @@ -83,6 +106,7 @@ public class PathConstraintData { this.rotateMode = rotateMode; } + /** An offset added to the constrained bone rotation. */ public float getOffsetRotation () { return offsetRotation; } @@ -91,6 +115,7 @@ public class PathConstraintData { this.offsetRotation = offsetRotation; } + /** The position along the path. */ public float getPosition () { return position; } @@ -99,6 +124,7 @@ public class PathConstraintData { this.position = position; } + /** The spacing between bones. */ public float getSpacing () { return spacing; } @@ -107,6 +133,7 @@ public class PathConstraintData { this.spacing = spacing; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getRotateMix () { return rotateMix; } @@ -115,6 +142,7 @@ public class PathConstraintData { this.rotateMix = rotateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained translations. */ public float getTranslateMix () { return translateMix; } @@ -123,26 +151,31 @@ public class PathConstraintData { this.translateMix = translateMix; } - public String getName () { - return name; - } - public String toString () { return name; } + /** Controls how the first bone is positioned along the path. + *

+ * See Position mode in the Spine User Guide. */ static public enum PositionMode { fixed, percent; static public final PositionMode[] values = PositionMode.values(); } + /** Controls how bones after the first bone are positioned along the path. + *

+ * See Spacing mode in the Spine User Guide. */ static public enum SpacingMode { length, fixed, percent; static public final SpacingMode[] values = SpacingMode.values(); } + /** Controls how bones are rotated, translated, and scaled to match the path. + *

+ * See Rotate mode in the Spine User Guide. */ static public enum RotateMode { tangent, chain, chainScale; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java index 87876fdbd..c772db37d 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java @@ -40,15 +40,20 @@ import com.esotericsoftware.spine.attachments.MeshAttachment; import com.esotericsoftware.spine.attachments.PathAttachment; import com.esotericsoftware.spine.attachments.RegionAttachment; +/** Stores the current pose for a skeleton. + *

+ * See Instance objects in the Spine + * Runtimes Guide. */ public class Skeleton { final SkeletonData data; final Array bones; final Array slots; Array drawOrder; - final Array ikConstraints, ikConstraintsSorted; + final Array ikConstraints; final Array transformConstraints; final Array pathConstraints; final Array updateCache = new Array(); + final Array updateCacheReset = new Array(); Skin skin; final Color color; float time; @@ -82,7 +87,6 @@ public class Skeleton { } ikConstraints = new Array(data.ikConstraints.size); - ikConstraintsSorted = new Array(ikConstraints.size); for (IkConstraintData ikConstraintData : data.ikConstraints) ikConstraints.add(new IkConstraint(ikConstraintData, this)); @@ -106,15 +110,15 @@ public class Skeleton { bones = new Array(skeleton.bones.size); for (Bone bone : skeleton.bones) { - Bone copy; + Bone newBone; if (bone.parent == null) - copy = new Bone(bone, this, null); + newBone = new Bone(bone, this, null); else { Bone parent = bones.get(bone.parent.data.index); - copy = new Bone(bone, this, parent); - parent.children.add(copy); + newBone = new Bone(bone, this, parent); + parent.children.add(newBone); } - bones.add(copy); + bones.add(newBone); } slots = new Array(skeleton.slots.size); @@ -128,7 +132,6 @@ public class Skeleton { drawOrder.add(slots.get(slot.data.index)); ikConstraints = new Array(skeleton.ikConstraints.size); - ikConstraintsSorted = new Array(ikConstraints.size); for (IkConstraint ikConstraint : skeleton.ikConstraints) ikConstraints.add(new IkConstraint(ikConstraint, this)); @@ -159,95 +162,101 @@ public class Skeleton { for (int i = 0, n = bones.size; i < n; i++) bones.get(i).sorted = false; - // IK first, lowest hierarchy depth first. - Array ikConstraints = this.ikConstraintsSorted; - ikConstraints.clear(); - ikConstraints.addAll(this.ikConstraints); - int ikCount = ikConstraints.size; - for (int i = 0, level, n = ikCount; i < n; i++) { - IkConstraint ik = ikConstraints.get(i); - Bone bone = ik.bones.first().parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (int i = 1, ii; i < ikCount; i++) { - IkConstraint ik = ikConstraints.get(i); - int level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - IkConstraint other = ikConstraints.get(ii); - if (other.level < level) break; - ikConstraints.set(ii + 1, other); - } - ikConstraints.set(ii + 1, ik); - } - for (int i = 0, n = ikConstraints.size; i < n; i++) { - IkConstraint constraint = ikConstraints.get(i); - Bone target = constraint.target; - sortBone(target); - - Array constrained = constraint.bones; - Bone parent = constrained.first(); - sortBone(parent); - - updateCache.add(constraint); - - sortReset(parent.children); - constrained.peek().sorted = true; - } - - Array pathConstraints = this.pathConstraints; - for (int i = 0, n = pathConstraints.size; i < n; i++) { - PathConstraint constraint = pathConstraints.get(i); - - Slot slot = constraint.target; - int slotIndex = slot.getData().index; - Bone slotBone = slot.bone; - if (skin != null) sortPathConstraintAttachment(skin, slotIndex, slotBone); - if (data.defaultSkin != null && data.defaultSkin != skin) - sortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); - for (int ii = 0, nn = data.skins.size; ii < nn; ii++) - sortPathConstraintAttachment(data.skins.get(ii), slotIndex, slotBone); - - Attachment attachment = slot.attachment; - if (attachment instanceof PathAttachment) sortPathConstraintAttachment(attachment, slotBone); - - Array constrained = constraint.bones; - int boneCount = constrained.size; - for (int ii = 0; ii < boneCount; ii++) - sortBone(constrained.get(ii)); - - updateCache.add(constraint); - - for (int ii = 0; ii < boneCount; ii++) - sortReset(constrained.get(ii).children); - for (int ii = 0; ii < boneCount; ii++) - constrained.get(ii).sorted = true; - } - + Array ikConstraints = this.ikConstraints; Array transformConstraints = this.transformConstraints; - for (int i = 0, n = transformConstraints.size; i < n; i++) { - TransformConstraint constraint = transformConstraints.get(i); - - sortBone(constraint.target); - - Array constrained = constraint.bones; - int boneCount = constrained.size; - for (int ii = 0; ii < boneCount; ii++) - sortBone(constrained.get(ii)); - - updateCache.add(constraint); - - for (int ii = 0; ii < boneCount; ii++) - sortReset(constrained.get(ii).children); - for (int ii = 0; ii < boneCount; ii++) - constrained.get(ii).sorted = true; + Array pathConstraints = this.pathConstraints; + int ikCount = ikConstraints.size, transformCount = transformConstraints.size, pathCount = pathConstraints.size; + int constraintCount = ikCount + transformCount + pathCount; + outer: + for (int i = 0; i < constraintCount; i++) { + for (int ii = 0; ii < ikCount; ii++) { + IkConstraint constraint = ikConstraints.get(ii); + if (constraint.data.order == i) { + sortIkConstraint(constraint); + continue outer; + } + } + for (int ii = 0; ii < transformCount; ii++) { + TransformConstraint constraint = transformConstraints.get(ii); + if (constraint.data.order == i) { + sortTransformConstraint(constraint); + continue outer; + } + } + for (int ii = 0; ii < pathCount; ii++) { + PathConstraint constraint = pathConstraints.get(ii); + if (constraint.data.order == i) { + sortPathConstraint(constraint); + continue outer; + } + } } for (int i = 0, n = bones.size; i < n; i++) sortBone(bones.get(i)); } + private void sortIkConstraint (IkConstraint constraint) { + Bone target = constraint.target; + sortBone(target); + + Array constrained = constraint.bones; + Bone parent = constrained.first(); + sortBone(parent); + + if (constrained.size > 1) { + Bone child = constrained.peek(); + if (!updateCache.contains(child, true)) updateCacheReset.add(child); + } + + updateCache.add(constraint); + + sortReset(parent.children); + constrained.peek().sorted = true; + } + + private void sortPathConstraint (PathConstraint constraint) { + Slot slot = constraint.target; + int slotIndex = slot.getData().index; + Bone slotBone = slot.bone; + if (skin != null) sortPathConstraintAttachment(skin, slotIndex, slotBone); + if (data.defaultSkin != null && data.defaultSkin != skin) + sortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); + for (int ii = 0, nn = data.skins.size; ii < nn; ii++) + sortPathConstraintAttachment(data.skins.get(ii), slotIndex, slotBone); + + Attachment attachment = slot.attachment; + if (attachment instanceof PathAttachment) sortPathConstraintAttachment(attachment, slotBone); + + Array constrained = constraint.bones; + int boneCount = constrained.size; + for (int ii = 0; ii < boneCount; ii++) + sortBone(constrained.get(ii)); + + updateCache.add(constraint); + + for (int ii = 0; ii < boneCount; ii++) + sortReset(constrained.get(ii).children); + for (int ii = 0; ii < boneCount; ii++) + constrained.get(ii).sorted = true; + } + + private void sortTransformConstraint (TransformConstraint constraint) { + sortBone(constraint.target); + + Array constrained = constraint.bones; + int boneCount = constrained.size; + for (int ii = 0; ii < boneCount; ii++) + sortBone(constrained.get(ii)); + + updateCache.add(constraint); + + for (int ii = 0; ii < boneCount; ii++) + sortReset(constrained.get(ii).children); + for (int ii = 0; ii < boneCount; ii++) + constrained.get(ii).sorted = true; + } + private void sortPathConstraintAttachment (Skin skin, int slotIndex, Bone slotBone) { for (Entry entry : skin.attachments.entries()) if (entry.key.slotIndex == slotIndex) sortPathConstraintAttachment(entry.value, slotBone); @@ -285,14 +294,32 @@ public class Skeleton { } } - /** Updates the world transform for each bone and applies constraints. */ + /** Updates the world transform for each bone and applies all constraints. + *

+ * See World transforms in the Spine + * Runtimes Guide. */ public void updateWorldTransform () { + // This partial update avoids computing the world transform for constrained bones when 1) the bone is not updated + // before the constraint, 2) the constraint only needs to access the applied local transform, and 3) the constraint calls + // updateWorldTransform. + Array updateCacheReset = this.updateCacheReset; + for (int i = 0, n = updateCacheReset.size; i < n; i++) { + Bone bone = updateCacheReset.get(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; + } Array updateCache = this.updateCache; for (int i = 0, n = updateCache.size; i < n; i++) updateCache.get(i).update(); } - /** Sets the bones, constraints, and slots to their setup pose values. */ + /** Sets the bones, constraints, slots, and draw order to their setup pose values. */ public void setToSetupPose () { setBonesToSetupPose(); setSlotsToSetupPose(); @@ -332,6 +359,7 @@ public class Skeleton { } } + /** Sets the slots and draw order to their setup pose values. */ public void setSlotsToSetupPose () { Array slots = this.slots; System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size); @@ -339,10 +367,12 @@ public class Skeleton { slots.get(i).setToSetupPose(); } + /** The skeleton's setup pose data. */ public SkeletonData getData () { return data; } + /** The skeleton's bones, sorted parent first. The root bone is always the first bone. */ public Array getBones () { return bones; } @@ -351,13 +381,15 @@ public class Skeleton { return updateCache; } - /** @return May return null. */ + /** Returns the root bone, or null. */ public Bone getRootBone () { if (bones.size == 0) return null; return bones.first(); } - /** @return May be null. */ + /** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public Bone findBone (String boneName) { if (boneName == null) throw new IllegalArgumentException("boneName cannot be null."); Array bones = this.bones; @@ -368,20 +400,14 @@ public class Skeleton { return null; } - /** @return -1 if the bone was not found. */ - public int findBoneIndex (String boneName) { - if (boneName == null) throw new IllegalArgumentException("boneName cannot be null."); - Array bones = this.bones; - for (int i = 0, n = bones.size; i < n; i++) - if (bones.get(i).data.name.equals(boneName)) return i; - return -1; - } - + /** The skeleton's slots. */ public Array getSlots () { return slots; } - /** @return May be null. */ + /** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public Slot findSlot (String slotName) { if (slotName == null) throw new IllegalArgumentException("slotName cannot be null."); Array slots = this.slots; @@ -392,33 +418,25 @@ public class Skeleton { return null; } - /** @return -1 if the bone was not found. */ - public int findSlotIndex (String slotName) { - if (slotName == null) throw new IllegalArgumentException("slotName cannot be null."); - Array slots = this.slots; - for (int i = 0, n = slots.size; i < n; i++) - if (slots.get(i).data.name.equals(slotName)) return i; - return -1; - } - - /** Returns the slots in the order they will be drawn. The returned array may be modified to change the draw order. */ + /** The skeleton's slots in the order they should be drawn. The returned array may be modified to change the draw order. */ public Array getDrawOrder () { return drawOrder; } - /** Sets the slots and the order they will be drawn. */ public void setDrawOrder (Array drawOrder) { if (drawOrder == null) throw new IllegalArgumentException("drawOrder cannot be null."); this.drawOrder = drawOrder; } - /** @return May be null. */ + /** The skeleton's current skin. + * @return May be null. */ public Skin getSkin () { return skin; } /** Sets a skin by name. - * @see #setSkin(Skin) */ + *

+ * See {@link #setSkin(Skin)}. */ public void setSkin (String skinName) { Skin skin = data.findSkin(skinName); if (skin == null) throw new IllegalArgumentException("Skin not found: " + skinName); @@ -426,6 +444,7 @@ public class Skeleton { } /** Sets the skin used to look up attachments before looking in the {@link SkeletonData#getDefaultSkin() default skin}. + *

* Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. If there was no * old skin, each slot's setup mode attachment is attached from the new skin. * @param newSkin May be null. */ @@ -448,12 +467,22 @@ public class Skeleton { skin = newSkin; } - /** @return May be null. */ + /** Finds an attachment by looking in the {@link #skin} and {@link SkeletonData#defaultSkin} using the slot name and attachment + * name. + *

+ * See {@link #getAttachment(int, String)}. + * @return May be null. */ public Attachment getAttachment (String slotName, String attachmentName) { - return getAttachment(data.findSlotIndex(slotName), attachmentName); + SlotData slot = data.findSlot(slotName); + if (slot == null) throw new IllegalArgumentException("Slot not found: " + slotName); + return getAttachment(slot.getIndex(), attachmentName); } - /** @return May be null. */ + /** Finds an attachment by looking in the {@link #skin} and {@link SkeletonData#defaultSkin} using the slot index and + * attachment name. First the skin is checked and if the attachment was not found, the default skin is checked. + *

+ * See Runtime skins in the Spine Runtimes Guide. + * @return May be null. */ public Attachment getAttachment (int slotIndex, String attachmentName) { if (attachmentName == null) throw new IllegalArgumentException("attachmentName cannot be null."); if (skin != null) { @@ -464,31 +493,30 @@ public class Skeleton { return null; } - /** @param attachmentName May be null. */ + /** A convenience method to set an attachment by finding the slot with {@link #findSlot(String)}, finding the attachment with + * {@link #getAttachment(int, String)}, then setting the slot's {@link Slot#attachment}. + * @param attachmentName May be null to clear the slot. */ public void setAttachment (String slotName, String attachmentName) { if (slotName == null) throw new IllegalArgumentException("slotName cannot be null."); - Array slots = this.slots; - for (int i = 0, n = slots.size; i < n; i++) { - Slot slot = slots.get(i); - if (slot.data.name.equals(slotName)) { - Attachment attachment = null; - if (attachmentName != null) { - attachment = getAttachment(i, attachmentName); - if (attachment == null) - throw new IllegalArgumentException("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } + Slot slot = findSlot(slotName); + if (slot == null) throw new IllegalArgumentException("Slot not found: " + slotName); + Attachment attachment = null; + if (attachmentName != null) { + attachment = getAttachment(slot.data.index, attachmentName); + if (attachment == null) + throw new IllegalArgumentException("Attachment not found: " + attachmentName + ", for slot: " + slotName); } - throw new IllegalArgumentException("Slot not found: " + slotName); + slot.setAttachment(attachment); } + /** The skeleton's IK constraints. */ public Array getIkConstraints () { return ikConstraints; } - /** @return May be null. */ + /** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ public IkConstraint findIkConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array ikConstraints = this.ikConstraints; @@ -499,11 +527,14 @@ public class Skeleton { return null; } + /** The skeleton's transform constraints. */ public Array getTransformConstraints () { return transformConstraints; } - /** @return May be null. */ + /** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + * this method than to call it multiple times. + * @return May be null. */ public TransformConstraint findTransformConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array transformConstraints = this.transformConstraints; @@ -514,11 +545,14 @@ public class Skeleton { return null; } + /** The skeleton's path constraints. */ public Array getPathConstraints () { return pathConstraints; } - /** @return May be null. */ + /** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ public PathConstraint findPathConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array pathConstraints = this.pathConstraints; @@ -530,8 +564,8 @@ public class Skeleton { } /** Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose. - * @param offset The distance from the skeleton origin to the bottom left corner of the AABB. - * @param size The width and height of the AABB. */ + * @param offset An output value, the distance from the skeleton origin to the bottom left corner of the AABB. + * @param size An output value, the width and height of the AABB. */ public void getBounds (Vector2 offset, Vector2 size) { if (offset == null) throw new IllegalArgumentException("offset cannot be null."); if (size == null) throw new IllegalArgumentException("size cannot be null."); @@ -559,6 +593,7 @@ public class Skeleton { size.set(maxX - minX, maxY - minY); } + /** The color to tint all the skeleton's attachments. */ public Color getColor () { return color; } @@ -569,6 +604,8 @@ public class Skeleton { this.color.set(color); } + /** If true, the entire skeleton is flipped over the Y axis. This affects all bones, even if the bone's transform mode + * disallows scale inheritance. */ public boolean getFlipX () { return flipX; } @@ -577,6 +614,8 @@ public class Skeleton { this.flipX = flipX; } + /** If true, the entire skeleton is flipped over the X axis. This affects all bones, even if the bone's transform mode + * disallows scale inheritance. */ public boolean getFlipY () { return flipY; } @@ -590,6 +629,7 @@ public class Skeleton { this.flipY = flipY; } + /** Sets the skeleton X position, which is added to the root bone worldX position. */ public float getX () { return x; } @@ -598,6 +638,7 @@ public class Skeleton { this.x = x; } + /** Sets the skeleton Y position, which is added to the root bone worldY position. */ public float getY () { return y; } @@ -611,6 +652,9 @@ public class Skeleton { this.y = y; } + /** Returns the skeleton's time. This can be used for tracking, such as with Slot {@link Slot#getAttachmentTime()}. + *

+ * See {@link #update(float)}. */ public float getTime () { return time; } @@ -619,6 +663,7 @@ public class Skeleton { this.time = time; } + /** Increments the skeleton's {@link #time}. */ public void update (float delta) { time += delta; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java index 3f27ec461..0375d1bf8 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java @@ -57,6 +57,7 @@ import com.esotericsoftware.spine.Animation.ShearTimeline; import com.esotericsoftware.spine.Animation.Timeline; import com.esotericsoftware.spine.Animation.TransformConstraintTimeline; import com.esotericsoftware.spine.Animation.TranslateTimeline; +import com.esotericsoftware.spine.BoneData.TransformMode; import com.esotericsoftware.spine.PathConstraintData.PositionMode; import com.esotericsoftware.spine.PathConstraintData.RotateMode; import com.esotericsoftware.spine.PathConstraintData.SpacingMode; @@ -71,6 +72,11 @@ import com.esotericsoftware.spine.attachments.PathAttachment; import com.esotericsoftware.spine.attachments.RegionAttachment; import com.esotericsoftware.spine.attachments.VertexAttachment; +/** Loads skeleton data in the Spine binary format. + *

+ * See Spine binary format and + * JSON and binary data in the Spine + * Runtimes Guide. */ public class SkeletonBinary { static public final int BONE_ROTATE = 0; static public final int BONE_TRANSLATE = 1; @@ -103,11 +109,14 @@ public class SkeletonBinary { this.attachmentLoader = attachmentLoader; } + /** Scales bone positions, image sizes, and translations as they are loaded. This allows different size images to be used at + * runtime than were used in Spine. + *

+ * See Scaling in the Spine Runtimes Guide. */ public float getScale () { return scale; } - /** Scales the bones, images, and animations as they are loaded. */ public void setScale (float scale) { this.scale = scale; } @@ -168,6 +177,7 @@ public class SkeletonBinary { boolean nonessential = input.readBoolean(); if (nonessential) { + skeletonData.fps = input.readFloat(); skeletonData.imagesPath = input.readString(); if (skeletonData.imagesPath.isEmpty()) skeletonData.imagesPath = null; } @@ -185,8 +195,7 @@ public class SkeletonBinary { data.shearX = input.readFloat(); data.shearY = input.readFloat(); data.length = input.readFloat() * scale; - data.inheritRotation = input.readBoolean(); - data.inheritScale = input.readBoolean(); + data.transformMode = TransformMode.values[input.readInt(true)]; if (nonessential) Color.rgba8888ToColor(data.color, input.readInt()); skeletonData.bones.add(data); } @@ -205,6 +214,7 @@ public class SkeletonBinary { // IK constraints. for (int i = 0, n = input.readInt(true); i < n; i++) { IkConstraintData data = new IkConstraintData(input.readString()); + data.order = input.readInt(true); for (int ii = 0, nn = input.readInt(true); ii < nn; ii++) data.bones.add(skeletonData.bones.get(input.readInt(true))); data.target = skeletonData.bones.get(input.readInt(true)); @@ -216,6 +226,7 @@ public class SkeletonBinary { // Transform constraints. for (int i = 0, n = input.readInt(true); i < n; i++) { TransformConstraintData data = new TransformConstraintData(input.readString()); + data.order = input.readInt(true); for (int ii = 0, nn = input.readInt(true); ii < nn; ii++) data.bones.add(skeletonData.bones.get(input.readInt(true))); data.target = skeletonData.bones.get(input.readInt(true)); @@ -235,6 +246,7 @@ public class SkeletonBinary { // Path constraints. for (int i = 0, n = input.readInt(true); i < n; i++) { PathConstraintData data = new PathConstraintData(input.readString()); + data.order = input.readInt(true); for (int ii = 0, nn = input.readInt(true); ii < nn; ii++) data.bones.add(skeletonData.bones.get(input.readInt(true))); data.target = skeletonData.slots.get(input.readInt(true)); @@ -314,7 +326,8 @@ public class SkeletonBinary { int slotIndex = input.readInt(true); for (int ii = 0, nn = input.readInt(true); ii < nn; ii++) { String name = input.readString(); - skin.addAttachment(slotIndex, name, readAttachment(input, skin, slotIndex, name, nonessential)); + Attachment attachment = readAttachment(input, skin, slotIndex, name, nonessential); + if (attachment != null) skin.addAttachment(slotIndex, name, attachment); } } return skin; @@ -612,7 +625,7 @@ public class SkeletonBinary { // Path constraint timelines. for (int i = 0, n = input.readInt(true); i < n; i++) { int index = input.readInt(true); - PathConstraintData data = skeletonData.getPathConstraints().get(index); + PathConstraintData data = skeletonData.pathConstraints.get(index); for (int ii = 0, nn = input.readInt(true); ii < nn; ii++) { int timelineType = input.readByte(); int frameCount = input.readInt(true); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java index 8e044977e..d57be8a49 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java @@ -30,13 +30,14 @@ package com.esotericsoftware.spine; -import com.esotericsoftware.spine.attachments.Attachment; -import com.esotericsoftware.spine.attachments.BoundingBoxAttachment; - import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.FloatArray; import com.badlogic.gdx.utils.Pool; +import com.esotericsoftware.spine.attachments.Attachment; +import com.esotericsoftware.spine.attachments.BoundingBoxAttachment; +/** Collects each {@link BoundingBoxAttachment} that is visible and computes the world vertices for its polygon. The polygon + * vertices are provided along with convenience methods for doing hit detection. */ public class SkeletonBounds { private float minX, minY, maxX, maxY; private Array boundingBoxes = new Array(); @@ -47,6 +48,10 @@ public class SkeletonBounds { } }; + /** Clears any previous polygons, finds all visible bounding box attachments, and computes the world vertices for each bounding + * box's polygon. + * @param updateAabb If true, the axis aligned bounding box containing all the polygons is computed. If false, the + * SkeletonBounds AABB methods will always return true. */ public void update (Skeleton skeleton, boolean updateAabb) { if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null."); Array boundingBoxes = this.boundingBoxes; @@ -71,7 +76,14 @@ public class SkeletonBounds { } } - if (updateAabb) aabbCompute(); + if (updateAabb) + aabbCompute(); + else { + minX = Integer.MIN_VALUE; + minY = Integer.MIN_VALUE; + maxX = Integer.MAX_VALUE; + maxY = Integer.MAX_VALUE; + } } private void aabbCompute () { @@ -187,34 +199,42 @@ public class SkeletonBounds { return false; } + /** The left edge of the axis aligned bounding box. */ public float getMinX () { return minX; } + /** The bottom edge of the axis aligned bounding box. */ public float getMinY () { return minY; } + /** The right edge of the axis aligned bounding box. */ public float getMaxX () { return maxX; } + /** The top edge of the axis aligned bounding box. */ public float getMaxY () { return maxY; } + /** The width of the axis aligned bounding box. */ public float getWidth () { return maxX - minX; } + /** The height of the axis aligned bounding box. */ public float getHeight () { return maxY - minY; } + /** The visible bounding boxes. */ public Array getBoundingBoxes () { return boundingBoxes; } + /** The world vertices for the bounding box polygons. */ public Array getPolygons () { return polygons; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java index 17863107c..209bcc0cf 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java @@ -32,6 +32,10 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.utils.Array; +/** Stores the setup pose and all of the stateless data for a skeleton. + *

+ * See Data objects in the Spine Runtimes + * Guide. */ public class SkeletonData { String name; final Array bones = new Array(); // Ordered parents first. @@ -44,15 +48,22 @@ public class SkeletonData { final Array transformConstraints = new Array(); final Array pathConstraints = new Array(); float width, height; - String version, hash, imagesPath; + String version, hash; + + // Nonessential. + float fps; + String imagesPath; // --- Bones. + /** The skeleton's bones, sorted parent first. The root bone is always the first bone. */ public Array getBones () { return bones; } - /** @return May be null. */ + /** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public BoneData findBone (String boneName) { if (boneName == null) throw new IllegalArgumentException("boneName cannot be null."); Array bones = this.bones; @@ -63,22 +74,16 @@ public class SkeletonData { return null; } - /** @return -1 if the bone was not found. */ - public int findBoneIndex (String boneName) { - if (boneName == null) throw new IllegalArgumentException("boneName cannot be null."); - Array bones = this.bones; - for (int i = 0, n = bones.size; i < n; i++) - if (bones.get(i).name.equals(boneName)) return i; - return -1; - } - // --- Slots. + /** The skeleton's slots. */ public Array getSlots () { return slots; } - /** @return May be null. */ + /** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public SlotData findSlot (String slotName) { if (slotName == null) throw new IllegalArgumentException("slotName cannot be null."); Array slots = this.slots; @@ -89,18 +94,12 @@ public class SkeletonData { return null; } - /** @return -1 if the slot was not found. */ - public int findSlotIndex (String slotName) { - if (slotName == null) throw new IllegalArgumentException("slotName cannot be null."); - Array slots = this.slots; - for (int i = 0, n = slots.size; i < n; i++) - if (slots.get(i).name.equals(slotName)) return i; - return -1; - } - // --- Skins. - /** @return May be null. */ + /** The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine. + *

+ * See {@link Skeleton#getAttachment(int, String)}. + * @return May be null. */ public Skin getDefaultSkin () { return defaultSkin; } @@ -110,7 +109,9 @@ public class SkeletonData { this.defaultSkin = defaultSkin; } - /** @return May be null. */ + /** Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public Skin findSkin (String skinName) { if (skinName == null) throw new IllegalArgumentException("skinName cannot be null."); for (Skin skin : skins) @@ -118,14 +119,16 @@ public class SkeletonData { return null; } - /** Returns all skins, including the default skin. */ + /** All skins, including the default skin. */ public Array getSkins () { return skins; } // --- Events. - /** @return May be null. */ + /** Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @return May be null. */ public EventData findEvent (String eventDataName) { if (eventDataName == null) throw new IllegalArgumentException("eventDataName cannot be null."); for (EventData eventData : events) @@ -133,17 +136,21 @@ public class SkeletonData { return null; } + /** The skeleton's events. */ public Array getEvents () { return events; } // --- Animations. + /** The skeleton's animations. */ public Array getAnimations () { return animations; } - /** @return May be null. */ + /** Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to + * call it multiple times. + * @return May be null. */ public Animation findAnimation (String animationName) { if (animationName == null) throw new IllegalArgumentException("animationName cannot be null."); Array animations = this.animations; @@ -156,11 +163,14 @@ public class SkeletonData { // --- IK constraints + /** The skeleton's IK constraints. */ public Array getIkConstraints () { return ikConstraints; } - /** @return May be null. */ + /** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ public IkConstraintData findIkConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array ikConstraints = this.ikConstraints; @@ -173,11 +183,14 @@ public class SkeletonData { // --- Transform constraints + /** The skeleton's transform constraints. */ public Array getTransformConstraints () { return transformConstraints; } - /** @return May be null. */ + /** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + * this method than to call it multiple times. + * @return May be null. */ public TransformConstraintData findTransformConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array transformConstraints = this.transformConstraints; @@ -190,11 +203,14 @@ public class SkeletonData { // --- Path constraints + /** The skeleton's path constraints. */ public Array getPathConstraints () { return pathConstraints; } - /** @return May be null. */ + /** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ public PathConstraintData findPathConstraint (String constraintName) { if (constraintName == null) throw new IllegalArgumentException("constraintName cannot be null."); Array pathConstraints = this.pathConstraints; @@ -205,18 +221,10 @@ public class SkeletonData { return null; } - /** @return -1 if the path constraint was not found. */ - public int findPathConstraintIndex (String pathConstraintName) { - if (pathConstraintName == null) throw new IllegalArgumentException("pathConstraintName cannot be null."); - Array pathConstraints = this.pathConstraints; - for (int i = 0, n = pathConstraints.size; i < n; i++) - if (pathConstraints.get(i).name.equals(pathConstraintName)) return i; - return -1; - } - // --- - /** @return May be null. */ + /** The skeleton's name, which by default is the name of the skeleton data file, if possible. + * @return May be null. */ public String getName () { return name; } @@ -226,6 +234,7 @@ public class SkeletonData { this.name = name; } + /** The width of the skeleton's axis aligned bounding box in the setup pose. */ public float getWidth () { return width; } @@ -234,6 +243,7 @@ public class SkeletonData { this.width = width; } + /** The height of the skeleton's axis aligned bounding box in the setup pose. */ public float getHeight () { return height; } @@ -242,7 +252,7 @@ public class SkeletonData { this.height = height; } - /** Returns the Spine version used to export this data, or null. */ + /** The Spine version used to export the skeleton data, or null. */ public String getVersion () { return version; } @@ -252,7 +262,8 @@ public class SkeletonData { this.version = version; } - /** @return May be null. */ + /** The skeleton data hash. This value will change if any of the skeleton data has changed. + * @return May be null. */ public String getHash () { return hash; } @@ -262,7 +273,8 @@ public class SkeletonData { this.hash = hash; } - /** @return May be null. */ + /** The path to the image directory as defined in Spine. Available only when nonessential data was exported. + * @return May be null. */ public String getImagesPath () { return imagesPath; } @@ -272,6 +284,15 @@ public class SkeletonData { this.imagesPath = imagesPath; } + /** The dopesheet FPS in Spine. Available only when nonessential data was exported. */ + public float getFps () { + return fps; + } + + public void setFps (float fps) { + this.fps = fps; + } + public String toString () { return name != null ? name : super.toString(); } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java index ad0b71ffa..7fb891225 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java @@ -55,6 +55,7 @@ import com.esotericsoftware.spine.Animation.ShearTimeline; import com.esotericsoftware.spine.Animation.Timeline; import com.esotericsoftware.spine.Animation.TransformConstraintTimeline; import com.esotericsoftware.spine.Animation.TranslateTimeline; +import com.esotericsoftware.spine.BoneData.TransformMode; import com.esotericsoftware.spine.PathConstraintData.PositionMode; import com.esotericsoftware.spine.PathConstraintData.RotateMode; import com.esotericsoftware.spine.PathConstraintData.SpacingMode; @@ -68,6 +69,11 @@ import com.esotericsoftware.spine.attachments.PathAttachment; import com.esotericsoftware.spine.attachments.RegionAttachment; import com.esotericsoftware.spine.attachments.VertexAttachment; +/** Loads skeleton data in the Spine JSON format. + *

+ * See Spine JSON format and + * JSON and binary data in the Spine + * Runtimes Guide. */ public class SkeletonJson { private final AttachmentLoader attachmentLoader; private float scale = 1; @@ -82,11 +88,14 @@ public class SkeletonJson { this.attachmentLoader = attachmentLoader; } + /** Scales bone positions, image sizes, and translations as they are loaded. This allows different size images to be used at + * runtime than were used in Spine. + *

+ * See Scaling in the Spine Runtimes Guide. */ public float getScale () { return scale; } - /** Scales the bones, images, and animations as they are loaded. */ public void setScale (float scale) { this.scale = scale; } @@ -108,6 +117,7 @@ public class SkeletonJson { skeletonData.version = skeletonMap.getString("spine", null); skeletonData.width = skeletonMap.getFloat("width", 0); skeletonData.height = skeletonMap.getFloat("height", 0); + skeletonData.fps = skeletonMap.getFloat("fps", 0); skeletonData.imagesPath = skeletonMap.getString("images", null); } @@ -128,8 +138,7 @@ public class SkeletonJson { data.scaleY = boneMap.getFloat("scaleY", 1); data.shearX = boneMap.getFloat("shearX", 0); data.shearY = boneMap.getFloat("shearY", 0); - data.inheritRotation = boneMap.getBoolean("inheritRotation", true); - data.inheritScale = boneMap.getBoolean("inheritScale", true); + data.transformMode = TransformMode.valueOf(boneMap.getString("transform", TransformMode.normal.name())); String color = boneMap.getString("color", null); if (color != null) data.getColor().set(Color.valueOf(color)); @@ -156,6 +165,7 @@ public class SkeletonJson { // IK constraints. for (JsonValue constraintMap = root.getChild("ik"); constraintMap != null; constraintMap = constraintMap.next) { IkConstraintData data = new IkConstraintData(constraintMap.getString("name")); + data.order = constraintMap.getInt("order", 0); for (JsonValue boneMap = constraintMap.getChild("bones"); boneMap != null; boneMap = boneMap.next) { String boneName = boneMap.asString(); @@ -177,6 +187,7 @@ public class SkeletonJson { // Transform constraints. for (JsonValue constraintMap = root.getChild("transform"); constraintMap != null; constraintMap = constraintMap.next) { TransformConstraintData data = new TransformConstraintData(constraintMap.getString("name")); + data.order = constraintMap.getInt("order", 0); for (JsonValue boneMap = constraintMap.getChild("bones"); boneMap != null; boneMap = boneMap.next) { String boneName = boneMap.asString(); @@ -207,6 +218,7 @@ public class SkeletonJson { // Path constraints. for (JsonValue constraintMap = root.getChild("path"); constraintMap != null; constraintMap = constraintMap.next) { PathConstraintData data = new PathConstraintData(constraintMap.getString("name")); + data.order = constraintMap.getInt("order", 0); for (JsonValue boneMap = constraintMap.getChild("bones"); boneMap != null; boneMap = boneMap.next) { String boneName = boneMap.asString(); @@ -237,12 +249,12 @@ public class SkeletonJson { for (JsonValue skinMap = root.getChild("skins"); skinMap != null; skinMap = skinMap.next) { Skin skin = new Skin(skinMap.name); for (JsonValue slotEntry = skinMap.child; slotEntry != null; slotEntry = slotEntry.next) { - int slotIndex = skeletonData.findSlotIndex(slotEntry.name); - if (slotIndex == -1) throw new SerializationException("Slot not found: " + slotEntry.name); + SlotData slot = skeletonData.findSlot(slotEntry.name); + if (slot == null) throw new SerializationException("Slot not found: " + slotEntry.name); for (JsonValue entry = slotEntry.child; entry != null; entry = entry.next) { try { - Attachment attachment = readAttachment(entry, skin, slotIndex, entry.name); - if (attachment != null) skin.addAttachment(slotIndex, entry.name, attachment); + Attachment attachment = readAttachment(entry, skin, slot.index, entry.name); + if (attachment != null) skin.addAttachment(slot.index, entry.name, attachment); } catch (Exception ex) { throw new SerializationException("Error reading attachment: " + entry.name + ", skin: " + skin, ex); } @@ -269,7 +281,7 @@ public class SkeletonJson { EventData data = new EventData(eventMap.name); data.intValue = eventMap.getInt("int", 0); data.floatValue = eventMap.getFloat("float", 0f); - data.stringValue = eventMap.getString("string", null); + data.stringValue = eventMap.getString("string", ""); skeletonData.events.add(data); } @@ -413,13 +425,13 @@ public class SkeletonJson { // Slot timelines. for (JsonValue slotMap = map.getChild("slots"); slotMap != null; slotMap = slotMap.next) { - int slotIndex = skeletonData.findSlotIndex(slotMap.name); - if (slotIndex == -1) throw new SerializationException("Slot not found: " + slotMap.name); + SlotData slot = skeletonData.findSlot(slotMap.name); + if (slot == null) throw new SerializationException("Slot not found: " + slotMap.name); for (JsonValue timelineMap = slotMap.child; timelineMap != null; timelineMap = timelineMap.next) { String timelineName = timelineMap.name; if (timelineName.equals("color")) { ColorTimeline timeline = new ColorTimeline(timelineMap.size); - timeline.slotIndex = slotIndex; + timeline.slotIndex = slot.index; int frameIndex = 0; for (JsonValue valueMap = timelineMap.child; valueMap != null; valueMap = valueMap.next) { @@ -433,7 +445,7 @@ public class SkeletonJson { } else if (timelineName.equals("attachment")) { AttachmentTimeline timeline = new AttachmentTimeline(timelineMap.size); - timeline.slotIndex = slotIndex; + timeline.slotIndex = slot.index; int frameIndex = 0; for (JsonValue valueMap = timelineMap.child; valueMap != null; valueMap = valueMap.next) @@ -447,13 +459,13 @@ public class SkeletonJson { // Bone timelines. for (JsonValue boneMap = map.getChild("bones"); boneMap != null; boneMap = boneMap.next) { - int boneIndex = skeletonData.findBoneIndex(boneMap.name); - if (boneIndex == -1) throw new SerializationException("Bone not found: " + boneMap.name); + BoneData bone = skeletonData.findBone(boneMap.name); + if (bone == null) throw new SerializationException("Bone not found: " + boneMap.name); for (JsonValue timelineMap = boneMap.child; timelineMap != null; timelineMap = timelineMap.next) { String timelineName = timelineMap.name; if (timelineName.equals("rotate")) { RotateTimeline timeline = new RotateTimeline(timelineMap.size); - timeline.boneIndex = boneIndex; + timeline.boneIndex = bone.index; int frameIndex = 0; for (JsonValue valueMap = timelineMap.child; valueMap != null; valueMap = valueMap.next) { @@ -475,7 +487,7 @@ public class SkeletonJson { timeline = new TranslateTimeline(timelineMap.size); timelineScale = scale; } - timeline.boneIndex = boneIndex; + timeline.boneIndex = bone.index; int frameIndex = 0; for (JsonValue valueMap = timelineMap.child; valueMap != null; valueMap = valueMap.next) { @@ -527,9 +539,9 @@ public class SkeletonJson { // Path constraint timelines. for (JsonValue constraintMap = map.getChild("paths"); constraintMap != null; constraintMap = constraintMap.next) { - int index = skeletonData.findPathConstraintIndex(constraintMap.name); - if (index == -1) throw new SerializationException("Path constraint not found: " + constraintMap.name); - PathConstraintData data = skeletonData.getPathConstraints().get(index); + PathConstraintData data = skeletonData.findPathConstraint(constraintMap.name); + if (data == null) throw new SerializationException("Path constraint not found: " + constraintMap.name); + int index = skeletonData.pathConstraints.indexOf(data, true); for (JsonValue timelineMap = constraintMap.child; timelineMap != null; timelineMap = timelineMap.next) { String timelineName = timelineMap.name; if (timelineName.equals("position") || timelineName.equals("spacing")) { @@ -574,17 +586,17 @@ public class SkeletonJson { Skin skin = skeletonData.findSkin(deformMap.name); if (skin == null) throw new SerializationException("Skin not found: " + deformMap.name); for (JsonValue slotMap = deformMap.child; slotMap != null; slotMap = slotMap.next) { - int slotIndex = skeletonData.findSlotIndex(slotMap.name); - if (slotIndex == -1) throw new SerializationException("Slot not found: " + slotMap.name); + SlotData slot = skeletonData.findSlot(slotMap.name); + if (slot == null) throw new SerializationException("Slot not found: " + slotMap.name); for (JsonValue timelineMap = slotMap.child; timelineMap != null; timelineMap = timelineMap.next) { - VertexAttachment attachment = (VertexAttachment)skin.getAttachment(slotIndex, timelineMap.name); + VertexAttachment attachment = (VertexAttachment)skin.getAttachment(slot.index, timelineMap.name); if (attachment == null) throw new SerializationException("Deform attachment not found: " + timelineMap.name); boolean weighted = attachment.getBones() != null; float[] vertices = attachment.getVertices(); int deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; DeformTimeline timeline = new DeformTimeline(timelineMap.size); - timeline.slotIndex = slotIndex; + timeline.slotIndex = slot.index; timeline.attachment = attachment; int frameIndex = 0; @@ -634,10 +646,10 @@ public class SkeletonJson { int[] unchanged = new int[slotCount - offsets.size]; int originalIndex = 0, unchangedIndex = 0; for (JsonValue offsetMap = offsets.child; offsetMap != null; offsetMap = offsetMap.next) { - int slotIndex = skeletonData.findSlotIndex(offsetMap.getString("slot")); - if (slotIndex == -1) throw new SerializationException("Slot not found: " + offsetMap.getString("slot")); + SlotData slot = skeletonData.findSlot(offsetMap.getString("slot")); + if (slot == null) throw new SerializationException("Slot not found: " + offsetMap.getString("slot")); // Collect unchanged items. - while (originalIndex != slotIndex) + while (originalIndex != slot.index) unchanged[unchangedIndex++] = originalIndex++; // Set changed items. drawOrder[originalIndex + offsetMap.getInt("offset")] = originalIndex++; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java index 28428d11a..67d74b891 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java @@ -34,9 +34,9 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.PolygonSpriteBatch; import com.badlogic.gdx.utils.Array; import com.esotericsoftware.spine.attachments.Attachment; -import com.esotericsoftware.spine.attachments.MeshAttachment; import com.esotericsoftware.spine.attachments.RegionAttachment; import com.esotericsoftware.spine.attachments.SkeletonAttachment; +import com.esotericsoftware.spine.attachments.MeshAttachment; public class SkeletonMeshRenderer extends SkeletonRenderer { static private final short[] quadTriangles = {0, 1, 2, 2, 3, 0}; @@ -44,6 +44,7 @@ public class SkeletonMeshRenderer extends SkeletonRenderer { @SuppressWarnings("null") public void draw (PolygonSpriteBatch batch, Skeleton skeleton) { boolean premultipliedAlpha = this.premultipliedAlpha; + BlendMode blendMode = null; float[] vertices = null; short[] triangles = null; @@ -72,7 +73,7 @@ public class SkeletonMeshRenderer extends SkeletonRenderer { float oldScaleX = rootBone.getScaleX(); float oldScaleY = rootBone.getScaleY(); float oldRotation = rootBone.getRotation(); - attachmentSkeleton.setPosition(skeleton.getX() + bone.getWorldX(), skeleton.getY() + bone.getWorldY()); + attachmentSkeleton.setPosition(bone.getWorldX(), bone.getWorldY()); // rootBone.setScaleX(1 + bone.getWorldScaleX() - oldScaleX); // rootBone.setScaleY(1 + bone.getWorldScaleY() - oldScaleY); // Set shear. @@ -88,8 +89,11 @@ public class SkeletonMeshRenderer extends SkeletonRenderer { } if (texture != null) { - BlendMode blendMode = slot.data.getBlendMode(); - batch.setBlendFunction(blendMode.getSource(premultipliedAlpha), blendMode.getDest()); + BlendMode slotBlendMode = slot.data.getBlendMode(); + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batch.setBlendFunction(blendMode.getSource(premultipliedAlpha), blendMode.getDest()); + } batch.draw(texture, vertices, 0, vertices.length, triangles, 0, triangles.length); } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java index a27989eec..ae6604720 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java @@ -65,7 +65,7 @@ public class SkeletonRenderer { float oldScaleX = rootBone.getScaleX(); float oldScaleY = rootBone.getScaleY(); float oldRotation = rootBone.getRotation(); - attachmentSkeleton.setPosition(skeleton.getX() + bone.getWorldX(), skeleton.getY() + bone.getWorldY()); + attachmentSkeleton.setPosition(bone.getWorldX(), bone.getWorldY()); // rootBone.setScaleX(1 + bone.getWorldScaleX() - oldScaleX); // rootBone.setScaleY(1 + bone.getWorldScaleY() - oldScaleY); // Set shear. diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java index 2824a2bdc..f30cfdb00 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java @@ -70,9 +70,6 @@ public class SkeletonRendererDebug { } public void draw (Skeleton skeleton) { - float skeletonX = skeleton.getX(); - float skeletonY = skeleton.getY(); - Gdx.gl.glEnable(GL20.GL_BLEND); int srcFunc = premultipliedAlpha ? GL20.GL_ONE : GL20.GL_SRC_ALPHA; Gdx.gl.glBlendFunc(srcFunc, GL20.GL_ONE_MINUS_SRC_ALPHA); @@ -81,18 +78,24 @@ public class SkeletonRendererDebug { Array bones = skeleton.getBones(); if (drawBones) { - shapes.setColor(boneLineColor); shapes.begin(ShapeType.Filled); for (int i = 0, n = bones.size; i < n; i++) { Bone bone = bones.get(i); if (bone.parent == null) continue; - float x = skeletonX + bone.data.length * bone.a + bone.worldX; - float y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, boneWidth * scale); + float length = bone.data.length, width = boneWidth; + if (length == 0) { + length = 8; + width /= 2; + shapes.setColor(boneOriginColor); + } else + shapes.setColor(boneLineColor); + float x = length * bone.a + bone.worldX; + float y = length * bone.c + bone.worldY; + shapes.rectLine(bone.worldX, bone.worldY, x, y, width * scale); } shapes.end(); shapes.begin(ShapeType.Line); - shapes.x(skeletonX, skeletonY, 4 * scale); + shapes.x(skeleton.getX(), skeleton.getY(), 4 * scale); } else shapes.begin(ShapeType.Line); @@ -208,7 +211,7 @@ public class SkeletonRendererDebug { for (int i = 0, n = bones.size; i < n; i++) { Bone bone = bones.get(i); shapes.setColor(Color.GREEN); - shapes.circle(skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * scale, 8); + shapes.circle(bone.worldX, bone.worldY, 3 * scale, 8); } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java index 8826bbbaa..c87de3916 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java @@ -30,15 +30,16 @@ package com.esotericsoftware.spine; -import java.util.Iterator; - import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap.Entry; import com.badlogic.gdx.utils.Pool; import com.esotericsoftware.spine.attachments.Attachment; -/** Stores attachments by slot index and attachment name. */ +/** Stores attachments by slot index and attachment name. + *

+ * See SkeletonData {@link SkeletonData#defaultSkin}, Skeleton {@link Skeleton#skin}, and + * Runtime skins in the Spine Runtimes Guide. */ public class Skin { static private final Key lookup = new Key(); @@ -55,6 +56,7 @@ public class Skin { this.name = name; } + /** Adds an attachment to the skin for the specified slot index and name. */ public void addAttachment (int slotIndex, String name, Attachment attachment) { if (attachment == null) throw new IllegalArgumentException("attachment cannot be null."); if (slotIndex < 0) throw new IllegalArgumentException("slotIndex must be >= 0."); @@ -63,7 +65,7 @@ public class Skin { attachments.put(key, attachment); } - /** @return May be null. */ + /** Returns the attachment for the specified slot index and name, or null. */ public Attachment getAttachment (int slotIndex, String name) { if (slotIndex < 0) throw new IllegalArgumentException("slotIndex must be >= 0."); lookup.set(slotIndex, name); @@ -90,14 +92,11 @@ public class Skin { attachments.clear(); } + /** The skin's name, which is unique within the skeleton. */ public String getName () { return name; } - public Iterator attachments () { - return attachments.values().iterator(); - } - public String toString () { return name; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java index 1ecbf5147..72d6b7b98 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java @@ -32,8 +32,13 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.FloatArray; +import com.esotericsoftware.spine.Animation.DeformTimeline; import com.esotericsoftware.spine.attachments.Attachment; +import com.esotericsoftware.spine.attachments.VertexAttachment; +/** Stores a slot's current pose. Slots organize attachments for {@link Skeleton#drawOrder} purposes and provide a place to store + * state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared + * across multiple skeletons. */ public class Slot { final SlotData data; final Bone bone; @@ -62,28 +67,33 @@ public class Slot { attachmentTime = slot.attachmentTime; } + /** The slot's setup pose data. */ public SlotData getData () { return data; } + /** The bone this slot belongs to. */ public Bone getBone () { return bone; } + /** The skeleton this slot belongs to. */ public Skeleton getSkeleton () { return bone.skeleton; } + /** The color used to tint the slot's attachment. */ public Color getColor () { return color; } - /** @return May be null. */ + /** The current attachment for the slot, or null if the slot has no attachment. */ public Attachment getAttachment () { return attachment; } - /** Sets the attachment and if it changed, resets {@link #getAttachmentTime()} and clears {@link #getAttachmentVertices()}. + /** Sets the slot's attachment and, if the attachment changed, resets {@link #attachmentTime} and clears + * {@link #attachmentVertices}. * @param attachment May be null. */ public void setAttachment (Attachment attachment) { if (this.attachment == attachment) return; @@ -92,13 +102,22 @@ public class Slot { attachmentVertices.clear(); } + /** The time that has elapsed since the last time the attachment was set or cleared. Relies on Skeleton + * {@link Skeleton#time}. */ + public float getAttachmentTime () { + return bone.skeleton.time - attachmentTime; + } + public void setAttachmentTime (float time) { attachmentTime = bone.skeleton.time - time; } - /** Returns the time since the attachment was set. */ - public float getAttachmentTime () { - return bone.skeleton.time - attachmentTime; + /** Vertices to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a + * weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. + *

+ * See {@link VertexAttachment#computeWorldVertices(Slot, int, int, float[], int)} and {@link DeformTimeline}. */ + public FloatArray getAttachmentVertices () { + return attachmentVertices; } public void setAttachmentVertices (FloatArray attachmentVertices) { @@ -106,10 +125,7 @@ public class Slot { this.attachmentVertices = attachmentVertices; } - public FloatArray getAttachmentVertices () { - return attachmentVertices; - } - + /** Sets this slot to the setup pose. */ public void setToSetupPose () { color.set(data.color); if (data.attachmentName == null) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java index c0d278c70..22184f919 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java @@ -32,6 +32,7 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.graphics.Color; +/** Stores the setup pose for a {@link Slot}. */ public class SlotData { final int index; final String name; @@ -49,18 +50,22 @@ public class SlotData { this.boneData = boneData; } + /** The index of the slot in {@link Skeleton#getSlots()}. */ public int getIndex () { return index; } + /** The name of the slot, which is unique within the skeleton. */ public String getName () { return name; } + /** The bone this slot belongs to. */ public BoneData getBoneData () { return boneData; } + /** The color used to tint the slot's attachment. */ public Color getColor () { return color; } @@ -70,11 +75,12 @@ public class SlotData { this.attachmentName = attachmentName; } - /** @return May be null. */ + /** The name of the attachment that is visible for this slot in the setup pose, or null if no attachment is visible. */ public String getAttachmentName () { return attachmentName; } + /** The blend mode for drawing the slot's attachment. */ public BlendMode getBlendMode () { return blendMode; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java index 26f704dc2..cd4a12b95 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java @@ -35,7 +35,11 @@ import static com.badlogic.gdx.math.MathUtils.*; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; -public class TransformConstraint implements Updatable { +/** Stores the current pose for a transform constraint. A transform constraint adjusts the world transform of the constrained + * bones to match that of the target bone. + *

+ * See Transform constraints in the Spine User Guide. */ +public class TransformConstraint implements Constraint { final TransformConstraintData data; final Array bones; Bone target; @@ -71,6 +75,7 @@ public class TransformConstraint implements Updatable { shearMix = constraint.shearMix; } + /** Applies the constraint to the constrained bones. */ public void apply () { update(); } @@ -79,13 +84,16 @@ public class TransformConstraint implements Updatable { float rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; Bone target = this.target; float ta = target.a, tb = target.b, tc = target.c, td = target.d; + float degRadReflect = ta * td - tb * tc > 0 ? degRad : -degRad; + float offsetRotation = data.offsetRotation * degRadReflect, offsetShearY = data.offsetShearY * degRadReflect; Array bones = this.bones; for (int i = 0, n = bones.size; i < n; i++) { Bone bone = bones.get(i); + boolean modified = false; - if (rotateMix > 0) { + if (rotateMix != 0) { float a = bone.a, b = bone.b, c = bone.c, d = bone.d; - float r = atan2(tc, ta) - atan2(c, a) + data.offsetRotation * degRad; + float r = atan2(tc, ta) - atan2(c, a) + offsetRotation; if (r > PI) r -= PI2; else if (r < -PI) r += PI2; @@ -95,26 +103,29 @@ public class TransformConstraint implements Updatable { bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + if (translateMix != 0) { Vector2 temp = this.temp; target.localToWorld(temp.set(data.offsetX, data.offsetY)); bone.worldX += (temp.x - bone.worldX) * translateMix; bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; } if (scaleMix > 0) { - float bs = (float)Math.sqrt(bone.a * bone.a + bone.c * bone.c); + float s = (float)Math.sqrt(bone.a * bone.a + bone.c * bone.c); float ts = (float)Math.sqrt(ta * ta + tc * tc); - float s = bs > 0.00001f ? (bs + (ts - bs + data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = (float)Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = (float)Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = (float)Math.sqrt(tb * tb + td * td); - s = bs > 0.00001f ? (bs + (ts - bs + data.offsetScaleY) * scaleMix) / bs : 0; + if (s > 0.00001f) s = (s + (ts - s + data.offsetScaleY) * scaleMix) / s; bone.b *= s; bone.d *= s; + modified = true; } if (shearMix > 0) { @@ -124,18 +135,27 @@ public class TransformConstraint implements Updatable { if (r > PI) r -= PI2; else if (r < -PI) r += PI2; - r = by + (r + data.offsetShearY * degRad) * shearMix; + r = by + (r + offsetShearY) * shearMix; float s = (float)Math.sqrt(b * b + d * d); bone.b = cos(r) * s; bone.d = sin(r) * s; + modified = true; } + + if (modified) bone.appliedValid = false; } } + public int getOrder () { + return data.order; + } + + /** The bones that will be modified by this transform constraint. */ public Array getBones () { return bones; } + /** The target bone whose world transform will be copied to the constrained bones. */ public Bone getTarget () { return target; } @@ -144,6 +164,7 @@ public class TransformConstraint implements Updatable { this.target = target; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getRotateMix () { return rotateMix; } @@ -152,6 +173,7 @@ public class TransformConstraint implements Updatable { this.rotateMix = rotateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained translations. */ public float getTranslateMix () { return translateMix; } @@ -160,6 +182,7 @@ public class TransformConstraint implements Updatable { this.translateMix = translateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained scales. */ public float getScaleMix () { return scaleMix; } @@ -168,6 +191,7 @@ public class TransformConstraint implements Updatable { this.scaleMix = scaleMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained scales. */ public float getShearMix () { return shearMix; } @@ -176,6 +200,7 @@ public class TransformConstraint implements Updatable { this.shearMix = shearMix; } + /** The transform constraint's setup pose data. */ public TransformConstraintData getData () { return data; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java index 537515996..a95b221e8 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java @@ -32,8 +32,12 @@ package com.esotericsoftware.spine; import com.badlogic.gdx.utils.Array; +/** Stores the setup pose for a {@link TransformConstraint}. + *

+ * See Transform constraints in the Spine User Guide. */ public class TransformConstraintData { final String name; + int order; final Array bones = new Array(); BoneData target; float rotateMix, translateMix, scaleMix, shearMix; @@ -44,14 +48,26 @@ public class TransformConstraintData { this.name = name; } + /** The transform constraint's name, which is unique within the skeleton. */ public String getName () { return name; } + /** See {@link Constraint#getOrder()}. */ + public int getOrder () { + return order; + } + + public void setOrder (int order) { + this.order = order; + } + + /** The bones that will be modified by this transform constraint. */ public Array getBones () { return bones; } + /** The target bone whose world transform will be copied to the constrained bones. */ public BoneData getTarget () { return target; } @@ -61,6 +77,7 @@ public class TransformConstraintData { this.target = target; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ public float getRotateMix () { return rotateMix; } @@ -69,6 +86,7 @@ public class TransformConstraintData { this.rotateMix = rotateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained translations. */ public float getTranslateMix () { return translateMix; } @@ -77,6 +95,7 @@ public class TransformConstraintData { this.translateMix = translateMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained scales. */ public float getScaleMix () { return scaleMix; } @@ -85,6 +104,7 @@ public class TransformConstraintData { this.scaleMix = scaleMix; } + /** A percentage (0-1) that controls the mix between the constrained and unconstrained shears. */ public float getShearMix () { return shearMix; } @@ -93,6 +113,7 @@ public class TransformConstraintData { this.shearMix = shearMix; } + /** An offset added to the constrained bone rotation. */ public float getOffsetRotation () { return offsetRotation; } @@ -101,6 +122,7 @@ public class TransformConstraintData { this.offsetRotation = offsetRotation; } + /** An offset added to the constrained bone X translation. */ public float getOffsetX () { return offsetX; } @@ -109,6 +131,7 @@ public class TransformConstraintData { this.offsetX = offsetX; } + /** An offset added to the constrained bone Y translation. */ public float getOffsetY () { return offsetY; } @@ -117,6 +140,7 @@ public class TransformConstraintData { this.offsetY = offsetY; } + /** An offset added to the constrained bone scaleX. */ public float getOffsetScaleX () { return offsetScaleX; } @@ -125,6 +149,7 @@ public class TransformConstraintData { this.offsetScaleX = offsetScaleX; } + /** An offset added to the constrained bone scaleY. */ public float getOffsetScaleY () { return offsetScaleY; } @@ -133,6 +158,7 @@ public class TransformConstraintData { this.offsetScaleY = offsetScaleY; } + /** An offset added to the constrained bone shearY. */ public float getOffsetShearY () { return offsetShearY; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AtlasAttachmentLoader.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AtlasAttachmentLoader.java index 780338779..ab8602e26 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AtlasAttachmentLoader.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AtlasAttachmentLoader.java @@ -35,6 +35,11 @@ import com.esotericsoftware.spine.Skin; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; +/** An {@link AttachmentLoader} that configures attachments using texture regions from an {@link Atlas}. + *

+ * See Loading skeleton data in the + * Spine Runtimes Guide. */ +@SuppressWarnings("javadoc") public class AtlasAttachmentLoader implements AttachmentLoader { private TextureAtlas atlas; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/Attachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/Attachment.java index 2c41b43c8..979d47eb3 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/Attachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/Attachment.java @@ -30,6 +30,7 @@ package com.esotericsoftware.spine.attachments; +/** The base class for all attachments. */ abstract public class Attachment { String name; @@ -38,6 +39,7 @@ abstract public class Attachment { this.name = name; } + /** The attachment's name. */ public String getName () { return name; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentLoader.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentLoader.java index 98834adb5..ee3ca7700 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentLoader.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentLoader.java @@ -32,16 +32,20 @@ package com.esotericsoftware.spine.attachments; import com.esotericsoftware.spine.Skin; +/** The interface which can be implemented to customize creating and populating attachments. + *

+ * See Loading skeleton data in the Spine + * Runtimes Guide. */ public interface AttachmentLoader { - /** @return May be null to not load any attachment. */ + /** @return May be null to not load the attachment. */ public RegionAttachment newRegionAttachment (Skin skin, String name, String path); - /** @return May be null to not load any attachment. */ + /** @return May be null to not load the attachment. */ public MeshAttachment newMeshAttachment (Skin skin, String name, String path); - /** @return May be null to not load any attachment. */ + /** @return May be null to not load the attachment. */ public BoundingBoxAttachment newBoundingBoxAttachment (Skin skin, String name); - /** @return May be null to not load any attachment. */ + /** @return May be null to not load the attachment. */ public PathAttachment newPathAttachment (Skin skin, String name); } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/BoundingBoxAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/BoundingBoxAttachment.java index cf5c56c9b..b8e8715c5 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/BoundingBoxAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/BoundingBoxAttachment.java @@ -31,8 +31,13 @@ package com.esotericsoftware.spine.attachments; import com.badlogic.gdx.graphics.Color; -import com.esotericsoftware.spine.Slot; +import com.esotericsoftware.spine.SkeletonBounds; +/** An attachment with vertices that make up a polygon. Can be used for hit detection, creating physics bodies, spawning particle + * effects, and more. + *

+ * See {@link SkeletonBounds} and Bounding Boxes in the Spine User + * Guide. */ public class BoundingBoxAttachment extends VertexAttachment { // Nonessential. final Color color = new Color(0.38f, 0.94f, 0, 1); @@ -41,10 +46,8 @@ public class BoundingBoxAttachment extends VertexAttachment { super(name); } - public void computeWorldVertices (Slot slot, float[] worldVertices) { - computeWorldVertices(slot, 0, worldVerticesLength, worldVertices, 0); - } - + /** The color of the bounding box as it was in Spine. Available only when nonessential data was exported. Bounding boxes are + * not usually rendered at runtime. */ public Color getColor () { return color; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java index 6e82be7c7..46cffde55 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java @@ -35,11 +35,15 @@ import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.FloatArray; import com.badlogic.gdx.utils.NumberUtils; +import com.esotericsoftware.spine.Animation.DeformTimeline; import com.esotericsoftware.spine.Bone; import com.esotericsoftware.spine.Skeleton; import com.esotericsoftware.spine.Slot; -/** Attachment that displays a texture region. */ +/** An attachment that displays a textured mesh. A mesh has hull vertices and internal vertices within the hull. Holes are not + * supported. Each vertex has UVs (texture coordinates) and triangles are used to map an image on to the mesh. + *

+ * See Mesh attachments in the Spine User Guide. */ public class MeshAttachment extends VertexAttachment { private TextureRegion region; private String path; @@ -68,6 +72,8 @@ public class MeshAttachment extends VertexAttachment { return region; } + /** Calculates {@link #worldVertices} UVs using {@link #regionUVs} and the {@link #region}. Must be called after changing the + * region UVs or region. */ public void updateUVs () { float[] regionUVs = this.regionUVs; int verticesLength = regionUVs.length; @@ -109,7 +115,6 @@ public class MeshAttachment extends VertexAttachment { | ((int)(skeletonColor.g * slotColor.g * meshColor.g * multiplier) << 8) // | (int)(skeletonColor.r * slotColor.r * meshColor.r * multiplier)); - float x = skeleton.getX(), y = skeleton.getY(); FloatArray deformArray = slot.getAttachmentVertices(); float[] vertices = this.vertices, worldVertices = this.worldVertices; int[] bones = this.bones; @@ -117,8 +122,7 @@ public class MeshAttachment extends VertexAttachment { int verticesLength = vertices.length; if (deformArray.size > 0) vertices = deformArray.items; Bone bone = slot.getBone(); - x += bone.getWorldX(); - y += bone.getWorldY(); + float x = bone.getWorldX(), y = bone.getWorldY(); float a = bone.getA(), b = bone.getB(), c = bone.getC(), d = bone.getD(); for (int v = 0, w = 0; v < verticesLength; v += 2, w += 5) { float vx = vertices[v], vy = vertices[v + 1]; @@ -131,7 +135,7 @@ public class MeshAttachment extends VertexAttachment { Object[] skeletonBones = skeleton.getBones().items; if (deformArray.size == 0) { for (int w = 0, v = 0, b = 0, n = bones.length; v < n; w += 5) { - float wx = x, wy = y; + float wx = 0, wy = 0; int nn = bones[v++] + v; for (; v < nn; v++, b += 3) { Bone bone = (Bone)skeletonBones[bones[v]]; @@ -146,7 +150,7 @@ public class MeshAttachment extends VertexAttachment { } else { float[] deform = deformArray.items; for (int w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 5) { - float wx = x, wy = y; + float wx = 0, wy = 0; int nn = bones[v++] + v; for (; v < nn; v++, b += 3, f += 2) { Bone bone = (Bone)skeletonBones[bones[v]]; @@ -162,6 +166,8 @@ public class MeshAttachment extends VertexAttachment { return worldVertices; } + /** Returns true if the sourceAttachment is this mesh, else returns true if {@link #inheritDeform} is true and the + * the sourceAttachment is the {@link #parentMesh}. */ public boolean applyDeform (VertexAttachment sourceAttachment) { return this == sourceAttachment || (inheritDeform && parentMesh == sourceAttachment); } @@ -170,11 +176,11 @@ public class MeshAttachment extends VertexAttachment { return worldVertices; } + /** Triplets of vertex indices which describe the mesh's triangulation. */ public short[] getTriangles () { return triangles; } - /** Vertex number triplets which describe the mesh's triangulation. */ public void setTriangles (short[] triangles) { this.triangles = triangles; } @@ -188,10 +194,12 @@ public class MeshAttachment extends VertexAttachment { this.regionUVs = regionUVs; } + /** The color to tint the mesh. */ public Color getColor () { return color; } + /** The name of the texture region for this attachment. */ public String getPath () { return path; } @@ -200,6 +208,7 @@ public class MeshAttachment extends VertexAttachment { this.path = path; } + /** The number of entries at the beginning of {@link #vertices} that make up the mesh hull. */ public int getHullLength () { return hullLength; } @@ -212,10 +221,13 @@ public class MeshAttachment extends VertexAttachment { this.edges = edges; } + /** Vertex index pairs describing edges for controling triangulation. Mesh triangles will never cross edges. Only available if + * nonessential data was exported. Triangulation is not performed at runtime. */ public short[] getEdges () { return edges; } + /** The width of the mesh's image. Available only when nonessential data was exported. */ public float getWidth () { return width; } @@ -224,6 +236,7 @@ public class MeshAttachment extends VertexAttachment { this.width = width; } + /** The height of the mesh's image. Available only when nonessential data was exported. */ public float getHeight () { return height; } @@ -232,7 +245,9 @@ public class MeshAttachment extends VertexAttachment { this.height = height; } - /** Returns the source mesh if this is a linked mesh, else returns null. */ + /** The parent mesh if this is a linked mesh, else null. A linked mesh shares the {@link #bones}, {@link #vertices}, + * {@link #regionUVs}, {@link #triangles}, {@link #hullLength}, {@link #edges}, {@link #width}, and {@link #height} with the + * parent mesh, but may have a different {@link #name} or {@link #path} (and therefore a different texture). */ public MeshAttachment getParentMesh () { return parentMesh; } @@ -252,6 +267,10 @@ public class MeshAttachment extends VertexAttachment { } } + /** When this is a linked mesh (see {@link #parentMesh}), if true, any {@link DeformTimeline} for the {@link #parentMesh} is + * also applied to this mesh. If false, this linked mesh may have its own deform timelines. + *

+ * See {@link #applyDeform(VertexAttachment)}. */ public boolean getInheritDeform () { return inheritDeform; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PathAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PathAttachment.java index 44c28fb73..348115e23 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PathAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PathAttachment.java @@ -31,8 +31,11 @@ package com.esotericsoftware.spine.attachments; import com.badlogic.gdx.graphics.Color; -import com.esotericsoftware.spine.Slot; +import com.esotericsoftware.spine.PathConstraint; +/** An attachment whose vertices make up a composite Bezier curve. + *

+ * See {@link PathConstraint} and Paths in the Spine User Guide. */ public class PathAttachment extends VertexAttachment { float[] lengths; boolean closed, constantSpeed; @@ -44,14 +47,7 @@ public class PathAttachment extends VertexAttachment { super(name); } - public void computeWorldVertices (Slot slot, float[] worldVertices) { - super.computeWorldVertices(slot, worldVertices); - } - - public void computeWorldVertices (Slot slot, int start, int count, float[] worldVertices, int offset) { - super.computeWorldVertices(slot, start, count, worldVertices, offset); - } - + /** If true, the start and end knots are connected. */ public boolean getClosed () { return closed; } @@ -60,6 +56,8 @@ public class PathAttachment extends VertexAttachment { this.closed = closed; } + /** If true, additional calculations are performed to make calculating positions along the path more accurate. If false, fewer + * calculations are performed but calculating positions along the path is less accurate. */ public boolean getConstantSpeed () { return constantSpeed; } @@ -68,7 +66,7 @@ public class PathAttachment extends VertexAttachment { this.constantSpeed = constantSpeed; } - /** Returns the length in the setup pose from the start of the path to the end of each curve. */ + /** The lengths along the path in the setup pose from the start of the path to the end of each Bezier curve. */ public float[] getLengths () { return lengths; } @@ -77,6 +75,8 @@ public class PathAttachment extends VertexAttachment { this.lengths = lengths; } + /** The color of the path as it was in Spine. Available only when nonessential data was exported. Paths are not usually + * rendered at runtime. */ public Color getColor () { return color; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java index acb628dbe..08981f758 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java @@ -30,10 +30,6 @@ package com.esotericsoftware.spine.attachments; -import com.esotericsoftware.spine.Bone; -import com.esotericsoftware.spine.Skeleton; -import com.esotericsoftware.spine.Slot; - import static com.badlogic.gdx.graphics.g2d.Batch.*; import com.badlogic.gdx.graphics.Color; @@ -41,8 +37,13 @@ import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.utils.NumberUtils; +import com.esotericsoftware.spine.Bone; +import com.esotericsoftware.spine.Skeleton; +import com.esotericsoftware.spine.Slot; -/** Attachment that displays a texture region. */ +/** An attachment that displays a textured quadrilateral. + *

+ * See Region attachments in the Spine User Guide. */ public class RegionAttachment extends Attachment { static public final int BLX = 0; static public final int BLY = 1; @@ -64,6 +65,7 @@ public class RegionAttachment extends Attachment { super(name); } + /** Calculates the {@link #offset} using the region settings. Must be called after changing region settings. */ public void updateOffset () { float width = getWidth(); float height = getHeight(); @@ -162,7 +164,7 @@ public class RegionAttachment extends Attachment { float[] vertices = this.vertices; float[] offset = this.offset; Bone bone = slot.getBone(); - float x = skeleton.getX() + bone.getWorldX(), y = skeleton.getY() + bone.getWorldY(); + float x = bone.getWorldX(), y = bone.getWorldY(); float a = bone.getA(), b = bone.getB(), c = bone.getC(), d = bone.getD(); float offsetX, offsetY; @@ -196,10 +198,14 @@ public class RegionAttachment extends Attachment { return vertices; } + /** For each of the 4 vertices, a pair of x,y values that is the local position of the vertex. + *

+ * See {@link #updateOffset()}. */ public float[] getOffset () { return offset; } + /** The local x translation. */ public float getX () { return x; } @@ -208,6 +214,7 @@ public class RegionAttachment extends Attachment { this.x = x; } + /** The local y translation. */ public float getY () { return y; } @@ -216,6 +223,7 @@ public class RegionAttachment extends Attachment { this.y = y; } + /** The local scaleX. */ public float getScaleX () { return scaleX; } @@ -224,6 +232,7 @@ public class RegionAttachment extends Attachment { this.scaleX = scaleX; } + /** The local scaleY. */ public float getScaleY () { return scaleY; } @@ -232,6 +241,7 @@ public class RegionAttachment extends Attachment { this.scaleY = scaleY; } + /** The local rotation. */ public float getRotation () { return rotation; } @@ -240,6 +250,7 @@ public class RegionAttachment extends Attachment { this.rotation = rotation; } + /** The width of the region attachment in Spine. */ public float getWidth () { return width; } @@ -248,6 +259,7 @@ public class RegionAttachment extends Attachment { this.width = width; } + /** The height of the region attachment in Spine. */ public float getHeight () { return height; } @@ -256,10 +268,12 @@ public class RegionAttachment extends Attachment { this.height = height; } + /** The color to tint the region attachment. */ public Color getColor () { return color; } + /** The name of the texture region for this attachment. */ public String getPath () { return path; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/VertexAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/VertexAttachment.java index 09dac4228..9ecf01a3f 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/VertexAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/VertexAttachment.java @@ -35,7 +35,8 @@ import com.esotericsoftware.spine.Bone; import com.esotericsoftware.spine.Skeleton; import com.esotericsoftware.spine.Slot; -/** An attachment with vertices that are transformed by one or more bones and can be deformed by a slot's vertices. */ +/** Base class for an attachment with vertices that are transformed by one or more bones and can be deformed by a slot's + * {@link Slot#getAttachmentVertices()}. */ public class VertexAttachment extends Attachment { int[] bones; float[] vertices; @@ -45,27 +46,33 @@ public class VertexAttachment extends Attachment { super(name); } - protected void computeWorldVertices (Slot slot, float[] worldVertices) { + /** Transforms the attachment's local {@link #getVertices()} to world coordinates, using 0 for start and + * offset. + *

+ * See {@link #computeWorldVertices(Slot, int, int, float[], int)}. */ + public void computeWorldVertices (Slot slot, float[] worldVertices) { computeWorldVertices(slot, 0, worldVerticesLength, worldVertices, 0); } - /** Transforms local vertices to world coordinates. - * @param start The index of the first local vertex value to transform. Each vertex has 2 values, x and y. - * @param count The number of world vertex values to output. Must be <= {@link #getWorldVerticesLength()} - start. - * @param worldVertices The output world vertices. Must have a length >= offset + count. - * @param offset The worldVertices index to begin writing values. */ - protected void computeWorldVertices (Slot slot, int start, int count, float[] worldVertices, int offset) { + /** Transforms the attachment's local {@link #getVertices()} to world coordinates. If the slot has + * {@link Slot#getAttachmentVertices()}, they are used to deform the vertices. + *

+ * See World transforms in the Spine + * Runtimes Guide. + * @param start The index of the first {@link #getVertices()} value to transform. Each vertex has 2 values, x and y. + * @param count The number of world vertex values to output. Must be <= {@link #getWorldVerticesLength()} - start. + * @param worldVertices The output world vertices. Must have a length >= offset + count. + * @param offset The worldVertices index to begin writing values. */ + public void computeWorldVertices (Slot slot, int start, int count, float[] worldVertices, int offset) { count += offset; Skeleton skeleton = slot.getSkeleton(); - float x = skeleton.getX(), y = skeleton.getY(); FloatArray deformArray = slot.getAttachmentVertices(); float[] vertices = this.vertices; int[] bones = this.bones; if (bones == null) { if (deformArray.size > 0) vertices = deformArray.items; Bone bone = slot.getBone(); - x += bone.getWorldX(); - y += bone.getWorldY(); + float x = bone.getWorldX(), y = bone.getWorldY(); float a = bone.getA(), b = bone.getB(), c = bone.getC(), d = bone.getD(); for (int v = start, w = offset; w < count; v += 2, w += 2) { float vx = vertices[v], vy = vertices[v + 1]; @@ -83,7 +90,7 @@ public class VertexAttachment extends Attachment { Object[] skeletonBones = skeleton.getBones().items; if (deformArray.size == 0) { for (int w = offset, b = skip * 3; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3) { @@ -98,7 +105,7 @@ public class VertexAttachment extends Attachment { } else { float[] deform = deformArray.items; for (int w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) { - float wx = x, wy = y; + float wx = 0, wy = 0; int n = bones[v++]; n += v; for (; v < n; v++, b += 3, f += 2) { @@ -113,32 +120,37 @@ public class VertexAttachment extends Attachment { } } - /** Returns true if a deform originally applied to the specified attachment should be applied to this attachment. */ + /** Returns true if a deform originally applied to the specified attachment should be applied to this attachment. The default + * implementation returns true only when sourceAttachment is this attachment. */ public boolean applyDeform (VertexAttachment sourceAttachment) { return this == sourceAttachment; } - /** @return May be null if this attachment has no weights. */ + /** The bones which affect the {@link #getVertices()}. The array entries are, for each vertex, the number of bones affecting + * the vertex followed by that many bone indices, which is the index of the bone in {@link Skeleton#getBones()}. Will be null + * if this attachment has no weights. */ public int[] getBones () { return bones; } - /** For each vertex, the number of bones affecting the vertex followed by that many bone indices. Ie: count, boneIndex, ... - * @param bones May be null if this attachment has no weights. */ + /** @param bones May be null if this attachment has no weights. */ public void setBones (int[] bones) { this.bones = bones; } + /** The vertex positions in the bone's coordinate system. For a non-weighted attachment, the values are x,y + * entries for each vertex. For a weighted attachment, the values are x,y,weight entries for each bone affecting + * each vertex. */ public float[] getVertices () { return vertices; } - /** Sets the vertex position in the bone's coordinate system. For a non-weighted attachment, the values are x,y entries for - * each vertex. For a weighted attachment, the values are x,y,weight entries for each bone affecting each vertex. */ public void setVertices (float[] vertices) { this.vertices = vertices; } + /** The maximum length required of the worldVertices passed to + * {@link #computeWorldVertices(Slot, int, int, float[], int)}. */ public int getWorldVerticesLength () { return worldVerticesLength; } diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java index 13a3e785a..3a3bdb411 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java @@ -62,7 +62,9 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.Touchable; +import com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup; import com.badlogic.gdx.scenes.scene2d.ui.CheckBox; +import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.List; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; @@ -73,8 +75,11 @@ import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; import com.badlogic.gdx.scenes.scene2d.ui.Window; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.StringBuilder; import com.badlogic.gdx.utils.viewport.ScreenViewport; +import com.esotericsoftware.spine.AnimationState.AnimationStateAdapter; import com.esotericsoftware.spine.AnimationState.TrackEntry; public class SkeletonViewer extends ApplicationAdapter { @@ -93,6 +98,8 @@ public class SkeletonViewer extends ApplicationAdapter { FileHandle skeletonFile; long lastModified; float lastModifiedCheck, reloadTimer; + StringBuilder status = new StringBuilder(); + Preferences prefs; public void create () { Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @@ -102,23 +109,26 @@ public class SkeletonViewer extends ApplicationAdapter { } }); + prefs = Gdx.app.getPreferences("spine-skeletonviewer"); ui = new UI(); batch = new PolygonSpriteBatch(); renderer = new SkeletonMeshRenderer(); debugRenderer = new SkeletonRendererDebug(); skeletonX = (int)(ui.window.getWidth() + (Gdx.graphics.getWidth() - ui.window.getWidth()) / 2); skeletonY = Gdx.graphics.getHeight() / 4; + ui.loadPrefs(); loadSkeleton( - Gdx.files.internal(Gdx.app.getPreferences("spine-skeletonviewer").getString("lastFile", "spineboy/spineboy.json")), - false); + Gdx.files.internal(Gdx.app.getPreferences("spine-skeletonviewer").getString("lastFile", "spineboy/spineboy.json"))); + + ui.loadPrefs(); } - void loadSkeleton (final FileHandle skeletonFile, boolean reload) { + void loadSkeleton (final FileHandle skeletonFile) { if (skeletonFile == null) return; try { - // A regular texture atlas would normally usually be used. This returns a white image for images not found in the atlas. + // Setup a texture atlas that uses a white image for images not found in the atlas. Pixmap pixmap = new Pixmap(32, 32, Format.RGBA8888); pixmap.setColor(new Color(1, 1, 1, 0.33f)); pixmap.fill(); @@ -147,6 +157,7 @@ public class SkeletonViewer extends ApplicationAdapter { } }; + // Load skeleton data. String extension = skeletonFile.extension(); if (extension.equalsIgnoreCase("json") || extension.equalsIgnoreCase("txt")) { SkeletonJson json = new SkeletonJson(atlas); @@ -167,13 +178,17 @@ public class SkeletonViewer extends ApplicationAdapter { skeleton = new Skeleton(skeletonData); skeleton.setToSetupPose(); - skeleton = new Skeleton(skeleton); + skeleton = new Skeleton(skeleton); // Tests copy constructors. skeleton.updateWorldTransform(); state = new AnimationState(new AnimationStateData(skeletonData)); + state.addListener(new AnimationStateAdapter() { + public void event (TrackEntry entry, Event event) { + ui.toast(event.getData().getName()); + } + }); this.skeletonFile = skeletonFile; - Preferences prefs = Gdx.app.getPreferences("spine-skeletonviewer"); prefs.putString("lastFile", skeletonFile.path()); prefs.flush(); lastModified = skeletonFile.lastModified(); @@ -183,6 +198,7 @@ public class SkeletonViewer extends ApplicationAdapter { ui.window.getTitleLabel().setText(skeletonFile.name()); { + Array items = new Array(); for (Skin skin : skeletonData.getSkins()) items.add(skin.getName()); @@ -194,14 +210,29 @@ public class SkeletonViewer extends ApplicationAdapter { items.add(animation.getName()); ui.animationList.setItems(items); } + ui.trackButtons.getButtons().first().setChecked(true); // Configure skeleton from UI. if (ui.skinList.getSelected() != null) skeleton.setSkin(ui.skinList.getSelected()); - if (ui.animationList.getSelected() != null) - state.setAnimation(0, ui.animationList.getSelected(), ui.loopCheckbox.isChecked()); + setAnimation(); + } - if (reload) ui.toast("Reloaded."); + void setAnimation () { + if (ui.animationList.getSelected() == null) return; + int track = ui.trackButtons.getCheckedIndex(); + TrackEntry current = state.getCurrent(track); + TrackEntry entry; + if (current == null) { + state.setEmptyAnimation(track, 0); + entry = state.addAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked(), 0); + entry.setMixDuration(ui.mixSlider.getValue()); + entry.setTrackEnd(Integer.MAX_VALUE); + } else { + entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked()); + entry.setTrackEnd(Integer.MAX_VALUE); + } + entry.setAlpha(ui.alphaSlider.getValue()); } public void render () { @@ -209,7 +240,18 @@ public class SkeletonViewer extends ApplicationAdapter { float delta = Gdx.graphics.getDeltaTime(); + // Draw skeleton origin lines. + ShapeRenderer shapes = debugRenderer.getShapeRenderer(); + if (state != null) { + shapes.setColor(Color.DARK_GRAY); + shapes.begin(ShapeType.Line); + shapes.line(skeleton.x, -99999, skeleton.x, 99999); + shapes.line(-99999, skeleton.y, 99999, skeleton.y); + shapes.end(); + } + if (skeleton != null) { + // Reload if skeleton file was modified. if (reloadTimer <= 0) { lastModifiedCheck -= delta; if (lastModifiedCheck < 0) { @@ -219,20 +261,23 @@ public class SkeletonViewer extends ApplicationAdapter { } } else { reloadTimer -= delta; - if (reloadTimer <= 0) loadSkeleton(skeletonFile, true); + if (reloadTimer <= 0) { + loadSkeleton(skeletonFile); + ui.toast("Reloaded."); + } } + // Pose and render skeleton. state.getData().setDefaultMix(ui.mixSlider.getValue()); renderer.setPremultipliedAlpha(ui.premultipliedCheckbox.isChecked()); + skeleton.setFlip(ui.flipXCheckbox.isChecked(), ui.flipYCheckbox.isChecked()); + skeleton.setPosition(skeletonX, skeletonY); + delta = Math.min(delta, 0.032f) * ui.speedSlider.getValue(); skeleton.update(delta); - skeleton.setFlip(ui.flipXCheckbox.isChecked(), ui.flipYCheckbox.isChecked()); - if (!ui.pauseButton.isChecked()) { - state.update(delta); - state.apply(skeleton); - } - skeleton.setPosition(skeletonX, skeletonY); + state.update(delta); + state.apply(skeleton); skeleton.updateWorldTransform(); batch.setColor(Color.WHITE); @@ -249,25 +294,56 @@ public class SkeletonViewer extends ApplicationAdapter { debugRenderer.draw(skeleton); } - ui.stage.act(); - ui.stage.draw(); - - // Draw indicator for timeline position. if (state != null) { - ShapeRenderer shapes = debugRenderer.getShapeRenderer(); + // AnimationState status. + status.setLength(0); + for (int i = 0, n = state.getTracks().size; i < n; i++) { + TrackEntry entry = state.getTracks().get(i); + if (entry == null) continue; + status.append(i); + status.append(": [LIGHT_GRAY]"); + status(entry); + status.append("[WHITE]"); + status.append(entry.animation.name); + status.append('\n'); + } + ui.statusLabel.setText(status); + } + + // Render UI. + ui.render(); + + // Draw indicator lines for animation and mix times. + if (state != null) { TrackEntry entry = state.getCurrent(0); if (entry != null) { - float percent = entry.getTime() / entry.getEndTime(); - if (entry.getLoop()) percent %= 1; + shapes.begin(ShapeType.Line); + + float percent = entry.getAnimationTime() / entry.getAnimationEnd(); float x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent; shapes.setColor(Color.CYAN); - shapes.begin(ShapeType.Line); - shapes.line(x, 0, x, 20); + shapes.line(x, 0, x, 12); + + percent = entry.getMixDuration() == 0 ? 1 : Math.min(1, entry.getMixTime() / entry.getMixDuration()); + x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent; + shapes.setColor(Color.RED); + shapes.line(x, 0, x, 12); + shapes.end(); } } } + void status (TrackEntry entry) { + TrackEntry from = entry.mixingFrom; + if (from == null) return; + status(from); + status.append(from.animation.name); + status.append(' '); + status.append(Math.min(100, (int)(entry.mixTime / entry.mixDuration * 100))); + status.append("% -> "); + } + public void resize (int width, int height) { batch.getProjectionMatrix().setToOrtho2D(0, 0, width, height); debugRenderer.getShapeRenderer().setProjectionMatrix(batch.getProjectionMatrix()); @@ -284,12 +360,14 @@ public class SkeletonViewer extends ApplicationAdapter { Table root = new Table(skin); TextButton openButton = new TextButton("Open", skin); List animationList = new List(skin); + ScrollPane animationScroll = new ScrollPane(animationList, skin, "bg"); List skinList = new List(skin); + ScrollPane skinScroll = new ScrollPane(skinList, skin, "bg"); CheckBox loopCheckbox = new CheckBox("Loop", skin); CheckBox premultipliedCheckbox = new CheckBox("Premultiplied", skin); - Slider mixSlider = new Slider(0f, 2, 0.01f, false, skin); + Slider mixSlider = new Slider(0, 4, 0.01f, false, skin); Label mixLabel = new Label("0.3", skin); - Slider speedSlider = new Slider(0.1f, 3, 0.01f, false, skin); + Slider speedSlider = new Slider(0, 3, 0.01f, false, skin); Label speedLabel = new Label("1.0", skin); CheckBox flipXCheckbox = new CheckBox("X", skin); CheckBox flipYCheckbox = new CheckBox("Y", skin); @@ -301,15 +379,28 @@ public class SkeletonViewer extends ApplicationAdapter { CheckBox debugPathsCheckbox = new CheckBox("Paths", skin); Slider scaleSlider = new Slider(0.1f, 3, 0.01f, false, skin); Label scaleLabel = new Label("1.0", skin); - TextButton pauseButton = new TextButton("Pause", skin, "toggle"); TextButton minimizeButton = new TextButton("-", skin); TextButton bonesSetupPoseButton = new TextButton("Bones", skin); TextButton slotsSetupPoseButton = new TextButton("Slots", skin); TextButton setupPoseButton = new TextButton("Both", skin); + Label statusLabel = new Label("", skin); WidgetGroup toasts = new WidgetGroup(); + ButtonGroup trackButtons = new ButtonGroup(); + Slider alphaSlider = new Slider(0, 1, 0.01f, false, skin); + Label alphaLabel = new Label("1.0", skin); + boolean prefsLoaded; - public UI () { - // Configure widgets. + UI () { + initialize(); + layout(); + events(); + } + + void initialize () { + skin.getFont("default").getData().markupEnabled = true; + + for (int i = 0; i < 6; i++) + trackButtons.add(new TextButton(i + "", skin, "toggle")); animationList.getSelection().setRequired(false); @@ -318,12 +409,16 @@ public class SkeletonViewer extends ApplicationAdapter { loopCheckbox.setChecked(true); scaleSlider.setValue(1); - scaleSlider.setSnapToValues(new float[] {1}, 0.1f); + scaleSlider.setSnapToValues(new float[] {1, 1.5f, 2, 2.5f, 3, 3.5f}, 0.01f); mixSlider.setValue(0.3f); + mixSlider.setSnapToValues(new float[] {1, 1.5f, 2, 2.5f, 3, 3.5f}, 0.1f); speedSlider.setValue(1); - speedSlider.setSnapToValues(new float[] {1}, 0.1f); + speedSlider.setSnapToValues(new float[] {0.5f, 0.75f, 1, 1.25f, 1.5f, 2, 2.5f}, 0.1f); + + alphaSlider.setValue(1); + alphaSlider.setDisabled(true); window.setMovable(false); window.setResizable(false); @@ -335,14 +430,12 @@ public class SkeletonViewer extends ApplicationAdapter { window.getTitleTable().add(openButton).space(3); window.getTitleTable().add(minimizeButton).width(20); - ScrollPane skinScroll = new ScrollPane(skinList, skin, "bg"); skinScroll.setFadeScrollBars(false); - ScrollPane animationScroll = new ScrollPane(animationList, skin, "bg"); animationScroll.setFadeScrollBars(false); + } - // Layout. - + void layout () { root.defaults().space(6); root.columnDefaults(0).top().right().padTop(3); root.columnDefaults(1).left(); @@ -359,15 +452,37 @@ public class SkeletonViewer extends ApplicationAdapter { root.add(table(debugBonesCheckbox, debugRegionsCheckbox, debugBoundingBoxesCheckbox)).row(); root.add(); root.add(table(debugMeshHullCheckbox, debugMeshTrianglesCheckbox, debugPathsCheckbox)).row(); - root.add("Alpha:"); + root.add("Atlas alpha:"); root.add(premultipliedCheckbox).row(); - root.add("Skin:"); - root.add(skinScroll).expand().fill().minHeight(75).row(); + + root.add(new Image(skin.newDrawable("white", new Color(0x4e4e4eff)))).height(1).fillX().colspan(2).pad(-3, 0, 1, 0) + .row(); + root.add("Setup pose:"); root.add(table(bonesSetupPoseButton, slotsSetupPoseButton, setupPoseButton)).row(); + root.add("Skin:"); + root.add(skinScroll).expand().fill().row(); + + root.add(new Image(skin.newDrawable("white", new Color(0x4e4e4eff)))).height(1).fillX().colspan(2).pad(1, 0, 1, 0).row(); + + root.add("Track:"); + { + Table table = table(); + for (TextButton button : trackButtons.getButtons()) + table.add(button); + table.add(loopCheckbox); + root.add(table).row(); + } + root.add("Entry alpha:"); + { + Table table = table(); + table.add(alphaLabel).width(29); + table.add(alphaSlider).fillX().expandX(); + root.add(table).fill().row(); + } root.add("Animation:"); - root.add(animationScroll).expand().fill().minHeight(75).row(); - root.add("Mix:"); + root.add(animationScroll).expand().fill().row(); + root.add("Default mix:"); { Table table = table(); table.add(mixLabel).width(29); @@ -381,19 +496,19 @@ public class SkeletonViewer extends ApplicationAdapter { table.add(speedSlider).fillX().expandX(); root.add(table).fill().row(); } - root.add("Playback:"); - root.add(table(pauseButton, loopCheckbox)).row(); window.add(root).expand().fill(); window.pack(); stage.addActor(window); + stage.addActor(statusLabel); + { - Table table = new Table(skin); + Table table = new Table(); table.setFillParent(true); table.setTouchable(Touchable.disabled); stage.addActor(table); - table.pad(10).bottom().right(); + table.pad(10, 10, 22, 10).bottom().right(); table.add(toasts); } @@ -403,11 +518,12 @@ public class SkeletonViewer extends ApplicationAdapter { table.setTouchable(Touchable.disabled); stage.addActor(table); table.pad(10).top().right(); + table.defaults().right(); table.add(new Label("", skin, "default", Color.LIGHT_GRAY)); // Version. } + } - // Events. - + void events () { window.addListener(new InputListener() { public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { event.cancel(); @@ -423,7 +539,7 @@ public class SkeletonViewer extends ApplicationAdapter { String name = fileDialog.getFile(); String dir = fileDialog.getDirectory(); if (name == null || dir == null) return; - loadSkeleton(new FileHandle(new File(dir, name).getAbsolutePath()), false); + loadSkeleton(new FileHandle(new File(dir, name).getAbsolutePath())); } }); @@ -465,7 +581,7 @@ public class SkeletonViewer extends ApplicationAdapter { scaleSlider.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { scaleLabel.setText(Float.toString((int)(scaleSlider.getValue() * 100) / 100f)); - if (!scaleSlider.isDragging()) loadSkeleton(skeletonFile, false); + if (!scaleSlider.isDragging()) loadSkeleton(skeletonFile); } }); @@ -475,6 +591,17 @@ public class SkeletonViewer extends ApplicationAdapter { } }); + alphaSlider.addListener(new ChangeListener() { + public void changed (ChangeEvent event, Actor actor) { + alphaLabel.setText(Float.toString((int)(alphaSlider.getValue() * 100) / 100f)); + int track = trackButtons.getCheckedIndex(); + if (track > 0) { + TrackEntry current = state.getCurrent(track); + if (current != null) current.setAlpha(alphaSlider.getValue()); + } + } + }); + mixSlider.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { mixLabel.setText(Float.toString((int)(mixSlider.getValue() * 100) / 100f)); @@ -487,13 +614,19 @@ public class SkeletonViewer extends ApplicationAdapter { if (state != null) { String name = animationList.getSelected(); if (name == null) - state.clearTrack(0); + state.setEmptyAnimation(trackButtons.getCheckedIndex(), ui.mixSlider.getValue()); else - state.setAnimation(0, name, loopCheckbox.isChecked()); + setAnimation(); } } }); + loopCheckbox.addListener(new ChangeListener() { + public void changed (ChangeEvent event, Actor actor) { + setAnimation(); + } + }); + skinList.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { if (skeleton != null) { @@ -507,6 +640,22 @@ public class SkeletonViewer extends ApplicationAdapter { } }); + ChangeListener trackButtonListener = new ChangeListener() { + public void changed (ChangeEvent event, Actor actor) { + int track = ui.trackButtons.getCheckedIndex(); + if (track == -1) return; + TrackEntry current = state.getCurrent(track); + animationList.getSelection().setProgrammaticChangeEvents(false); + animationList.setSelected(current == null ? null : current.animation.name); + animationList.getSelection().setProgrammaticChangeEvents(true); + + alphaSlider.setDisabled(track == 0); + alphaSlider.setValue(current == null ? 1 : current.alpha); + } + }; + for (TextButton button : trackButtons.getButtons()) + button.addListener(trackButtonListener); + Gdx.input.setInputProcessor(new InputMultiplexer(stage, new InputAdapter() { public boolean touchDown (int screenX, int screenY, int pointer, int button) { touchDragged(screenX, screenY, pointer); @@ -518,16 +667,51 @@ public class SkeletonViewer extends ApplicationAdapter { skeletonY = Gdx.graphics.getHeight() - screenY; return false; } + + public boolean touchUp (int screenX, int screenY, int pointer, int button) { + savePrefs(); + return false; + } })); + + ChangeListener savePrefsListener = new ChangeListener() { + public void changed (ChangeEvent event, Actor actor) { + if (actor instanceof Slider && ((Slider)actor).isDragging()) return; + savePrefs(); + } + }; + debugBonesCheckbox.addListener(savePrefsListener); + debugRegionsCheckbox.addListener(savePrefsListener); + debugMeshHullCheckbox.addListener(savePrefsListener); + debugMeshTrianglesCheckbox.addListener(savePrefsListener); + debugPathsCheckbox.addListener(savePrefsListener); + premultipliedCheckbox.addListener(savePrefsListener); + loopCheckbox.addListener(savePrefsListener); + speedSlider.addListener(savePrefsListener); + mixSlider.addListener(savePrefsListener); + scaleSlider.addListener(savePrefsListener); + animationList.addListener(savePrefsListener); + skinList.addListener(savePrefsListener); } - private Table table (Actor... actors) { + Table table (Actor... actors) { Table table = new Table(); table.defaults().space(6); table.add(actors); return table; } + void render () { + statusLabel.pack(); + if (minimizeButton.isChecked()) + statusLabel.setPosition(10, 25, Align.bottom | Align.left); + else + statusLabel.setPosition(window.getWidth() + 6, 5, Align.bottom | Align.left); + + stage.act(); + stage.draw(); + } + void toast (String text) { Table table = new Table(); table.add(new Label(text, skin)); @@ -545,6 +729,48 @@ public class SkeletonViewer extends ApplicationAdapter { toasts.addActor(table); toasts.getParent().toFront(); } + + void savePrefs () { + if (!prefsLoaded) return; + prefs.putBoolean("debugBones", debugBonesCheckbox.isChecked()); + prefs.putBoolean("debugRegions", debugRegionsCheckbox.isChecked()); + prefs.putBoolean("debugMeshHull", debugMeshHullCheckbox.isChecked()); + prefs.putBoolean("debugMeshTriangles", debugMeshTrianglesCheckbox.isChecked()); + prefs.putBoolean("debugPaths", debugPathsCheckbox.isChecked()); + prefs.putBoolean("premultiplied", premultipliedCheckbox.isChecked()); + prefs.putBoolean("loop", loopCheckbox.isChecked()); + prefs.putFloat("speed", speedSlider.getValue()); + prefs.putFloat("mix", mixSlider.getValue()); + prefs.putFloat("scale", scaleSlider.getValue()); + prefs.putInteger("x", skeletonX); + prefs.putInteger("y", skeletonY); + TrackEntry current = state.getCurrent(0); + if (current != null) { + String name = current.animation.name; + if (name.equals("")) name = current.next == null ? "" : current.next.animation.name; + prefs.putString("animationName", name); + } + if (skinList.getSelected() != null) prefs.putString("skinName", skinList.getSelected()); + prefs.flush(); + } + + void loadPrefs () { + debugBonesCheckbox.setChecked(prefs.getBoolean("debugBones", true)); + debugRegionsCheckbox.setChecked(prefs.getBoolean("debugRegions", false)); + debugMeshHullCheckbox.setChecked(prefs.getBoolean("debugMeshHull", false)); + debugMeshTrianglesCheckbox.setChecked(prefs.getBoolean("debugMeshTriangles", false)); + debugPathsCheckbox.setChecked(prefs.getBoolean("debugPaths", true)); + premultipliedCheckbox.setChecked(prefs.getBoolean("premultiplied", true)); + loopCheckbox.setChecked(prefs.getBoolean("loop", false)); + speedSlider.setValue(prefs.getFloat("speed", 0.3f)); + mixSlider.setValue(prefs.getFloat("mix", 0.3f)); + scaleSlider.setValue(prefs.getFloat("scale", 1)); + skeletonX = prefs.getInteger("x", 0); + skeletonY = prefs.getInteger("y", 0); + animationList.setSelected(prefs.getString("animationName", null)); + skinList.setSelected(prefs.getString("skinName", null)); + prefsLoaded = true; + } } static public void main (String[] args) throws Exception { diff --git a/spine-love/data/goblins-mesh.json b/spine-love/data/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-love/data/goblins-mesh.json +++ b/spine-love/data/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-love/data/raptor.json b/spine-love/data/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-love/data/raptor.json +++ b/spine-love/data/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-love/data/spineboy.json b/spine-love/data/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-love/data/spineboy.json +++ b/spine-love/data/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-love/data/stretchyman.json b/spine-love/data/stretchyman.json index 63d89f419..1f852d0f2 100644 --- a/spine-love/data/stretchyman.json +++ b/spine-love/data/stretchyman.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "blOhTH+VBhIluqnZVQ+1mnv7uxQ", "spine": "3.4.02", "width": 264.48, "height": 570.1, "images": "./images/" }, +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, @@ -7,13 +14,11 @@ { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, - { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "inheritScale": false }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, - { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, - { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back foot 1", "parent": "hip", @@ -21,29 +26,28 @@ "rotation": -6.55, "x": -34, "y": -279.68, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, - { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "inheritScale": false }, - { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "inheritScale": false }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, - { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "inheritScale": false }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, - { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "inheritScale": false }, - { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, - { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, { "name": "front foot 1", "parent": "hip", @@ -51,11 +55,11 @@ "rotation": -10.97, "x": -77.04, "y": -285.03, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, { @@ -94,12 +98,13 @@ "y": -42.55, "color": "abe323ff" }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, - { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "inheritScale": false } + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } ], "slots": [ { "name": "back arm", "bone": "root", "attachment": "back arm" }, @@ -113,12 +118,14 @@ "ik": [ { "name": "back leg IK", + "order": 0, "bones": [ "back leg IK 1", "back leg IK 2" ], "target": "back leg IK target", "bendPositive": false }, { "name": "front leg IK", + "order": 1, "bones": [ "front leg IK 1", "front leg IK 2" ], "target": "front leg IK target", "bendPositive": false @@ -127,6 +134,7 @@ "transform": [ { "name": "back foot position", + "order": 4, "bones": [ "back foot 1" ], "target": "back leg 8", "rotation": 108.8, @@ -140,6 +148,7 @@ }, { "name": "front foot position", + "order": 5, "bones": [ "front foot 1" ], "target": "front leg 8", "rotation": 101.55, @@ -155,6 +164,7 @@ "path": [ { "name": "back leg path", + "order": 2, "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], "target": "back leg path", "spacingMode": "percent", @@ -163,6 +173,7 @@ }, { "name": "front leg path", + "order": 3, "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], "target": "front leg path", "spacingMode": "percent", @@ -177,7 +188,7 @@ "type": "mesh", "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], - "vertices": [ 1, 6, -7.68, -11.48, 1, 1, 6, 4.08, -13.62, 1, 1, 6, 23.48, -9.35, 1, 1, 7, 13.44, -9.22999, 1, 2, 7, 35.2, -9.62, 0.50649, 8, -0.57, -9.64999, 0.4935, 1, 8, 26.03, -6.38, 1, 1, 9, 14.15, -6.11, 1, 2, 9, 31.53, -5.56, 0.66492, 10, -3.33, -5.03, 0.33507, 1, 10, 13.08, -11.25, 1, 1, 10, 24.41, -14.88, 1, 1, 10, 30.15, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.07, -2.33, 1, 1, 10, 55.73, 14.14, 1, 1, 10, 41.39, 18.46999, 1, 1, 10, 37.28, 26.87, 1, 1, 10, 24.65, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.33, 6.77, 0.4788, 10, -1.11, 7.11, 0.52119, 1, 9, 13.77, 6.04, 1, 2, 8, 24.98, 6.17, 0.89217, 9, -5.47, 6.96, 0.10782, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.32, 7.44, 0.40157, 1, 7, 11.07, 8.84, 1, 1, 6, 17.89, 11.87, 1, 1, 6, -4.82, 9.45, 1, 1, 6, -13.68, -0.69, 1 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], "hull": 26, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], "width": 72, @@ -189,7 +200,7 @@ "type": "mesh", "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], - "vertices": [ 1, 11, -19.79, -5.66, 1, 2, 11, -5.61, -22.28, 0.83363, 16, -41.06, -23.3, 0.16636, 2, 11, 22.31, -21.98, 0.65187, 16, -13.17, -21.88, 0.34812, 3, 11, 50.83, -22.1, 0.3172, 16, 15.33, -20.86, 0.43086, 17, -19.67, -21.08, 0.25193, 4, 11, 79.83999, -23.28, 0.10791, 16, 44.37, -20.87999, 0.35417, 17, 9.3, -19.19, 0.31919, 18, -25.21, -20.06, 0.21871, 4, 16, 74.05, -20.98, 0.16485, 17, 38.93, -17.34, 0.32776, 18, 4.09, -15.38, 0.2983, 19, -30.1, -17.15, 0.20907, 3, 17, 65.53, -17.61, 0.17522, 18, 30.6, -13.1, 0.39172, 19, -4.11, -11.42, 0.43304, 3, 18, 57.03, -15.71, 0.19717, 19, 22.42, -10.53, 0.5297, 20, -12.96, -9.8, 0.27311, 3, 19, 46.04, -13.46, 0.40991, 20, 10.83, -10.17, 0.34747, 21, -24.93, -10.51, 0.24261, 3, 19, 73.37999, -18.69, 0.19432, 20, 38.58, -12.41, 0.37176, 21, 2.89, -10.98, 0.4339, 3, 20, 64.06, -14.98, 0.16664, 21, 28.48, -11.94, 0.56755, 12, -7.52, -11.48, 0.26578, 3, 21, 54.57, -12.36, 0.52113, 12, 18.54999, -10.93, 0.36167, 13, -3.08, 24.95, 0.11717, 4, 21, 82.97, -14.35, 0.35144, 12, 47, -11.86, 0.29521, 13, -13.06, -1.67, 0.25118, 14, -46.29, 1.83, 0.10216, 1, 13, 16.36, -4.67, 1, 2, 13, 34.31, -4.36, 0.53486, 14, 0.74, -4.42999, 0.46513, 3, 13, 51.09, -4.08, 0.1461, 14, 17.49, -5.42, 0.54314, 15, -15.5, -2.75, 0.31075, 2, 14, 34.66999, -4.01, 0.40714, 15, 1.64, -4.36, 0.59285, 2, 14, 45.08, -3.15, 0.25726, 15, 12.05, -5.34, 0.74273, 2, 14, 53.98, 5.81, 0.25311, 15, 22.38, 1.93, 0.74688, 2, 14, 37.18999, 9.56, 0.4029, 15, 6.5, 8.56, 0.59709, 3, 13, 57.07, 14.16, 0.1335, 14, 24.83, 12.32, 0.54644, 15, -5.17999, 13.44, 0.32003, 4, 21, 47.09, 33.09999, 0.13131, 13, 42.64, 19.07, 0.26349, 14, 10.81, 18.31, 0.49745, 15, -17.93, 21.78, 0.10773, 4, 21, 46.45, 16.09, 0.21158, 12, 9.35999, 17.2, 0.10679, 13, 26.5, 24.56, 0.4495, 14, -4.85, 25, 0.2321, 3, 21, 46.8, 8.62, 0.4011, 12, 9.99, 9.75, 0.24543, 13, 19.24, 26.37, 0.35346, 3, 21, 39.7, 8.6, 0.5825, 12, 2.9, 9.47, 0.30791, 13, 21.25, 33.16999, 0.10958, 3, 20, 59.16, 5.88, 0.21954, 21, 22.27, 8.58, 0.57946, 12, -14.51, 8.79, 0.20099, 3, 19, 71.83, 0.47, 0.21583, 20, 34.96, 6.47, 0.32262, 21, -1.92, 7.62, 0.46154, 3, 19, 45.8, 3.95, 0.40553, 20, 8.7, 7.12, 0.38601, 21, -28.16, 6.61, 0.20844, 3, 18, 56.78, 2.13, 0.25409, 19, 19.83, 7.12, 0.53004, 20, -17.45, 7.46, 0.21584, 3, 17, 66.18, 3.45, 0.22413, 18, 29.22, 7.92, 0.34135, 19, -8.25, 9.24, 0.43451, 4, 16, 76.6, 4.5, 0.19364, 17, 39.78, 8.26, 0.28886, 18, 2.48, 10.18, 0.33579, 19, -35.05, 7.97, 0.1817, 4, 11, 82.87999, 7.08, 0.11658, 16, 46.17, 9.57, 0.35727, 17, 9.08, 11.32, 0.35745, 18, -28.35, 10.29, 0.16869, 3, 11, 54.45, 12.1, 0.35356, 16, 17.57, 13.46, 0.44494, 17, -19.70999, 13.31, 0.20148, 2, 11, 24.65, 16.69, 0.65438, 16, -12.39, 16.85, 0.34561, 2, 11, -8.38, 15.21, 0.8533, 16, -45.34, 14.04, 0.14669, 1, 11, -20.18, 4.56, 1, 2, 14, 35.88, 2.53, 0.40509, 15, 3.98, 1.86, 0.5949, 3, 13, 54.37, 5.91, 0.1392, 14, 21.51, 4.29, 0.54494, 15, -9.85, 6.11, 0.31584, 2, 13, 37.78, 7.63, 0.44938, 14, 5.1, 7.26, 0.55061, 3, 21, 65.37999, 20.69, 0.11857, 13, 20.59, 11.34, 0.75134, 14, -11.76, 12.27, 0.13007, 3, 21, 65.41, 1.81, 0.39679, 12, 24.3, 0.23, 0.28257, 13, 2.06, 14.97, 0.32062, 3, 21, 48, 0.07, 0.55395, 12, 6.93, -0.32, 0.33293, 13, 3.37, 30.47, 0.11311, 3, 20, 65.94999, -2.96, 0.19447, 21, 24.95, -1.57, 0.57382, 12, -15.99, -0.42, 0.2317 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], "hull": 36, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], "width": 100, @@ -201,7 +212,7 @@ "type": "path", "lengths": [ 137.82, 291.73, 641.11 ], "vertexCount": 9, - "vertices": [ 1, 23, -43.14, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.07, -0.18, 1, 2, 23, 72.07, 13.65, 0.5, 24, -69.11, -16.07, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.02, 0.5, 2, 23, 202.92, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.03, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.81, 1 ] + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] } }, "body": { @@ -209,7 +220,7 @@ "type": "mesh", "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], - "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.42, 12.41, 0.24858, 5, 22.32, 18.17, 0.75141, 2, 4, 39.47, 25.24, 0.44331, 5, -1.05999, 25.71, 0.55668, 3, 3, 48.02, 29.46, 0.3743, 4, 14.54, 26.45, 0.47619, 5, -25.57, 21.01, 0.1495, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.64611, 4, -8.99, 30.49, 0.24146, 3, 32, -45.21, -8.8, 0.10611, 2, 28.68, 30.39, 0.49532, 3, 2.88, 30.84, 0.39856, 3, 32, -28.91, -12.44, 0.25801, 2, 12.15, 32.79, 0.60893, 3, -12.28, 37.83, 0.13304, 3, 32, -18.5, -14.05, 0.28713, 2, 2.33999, 35.97, 0.51935, 26, -7.59, 18.95, 0.1935, 4, 32, -10.78, -18.35, 0.28478, 25, -42.03, 75.56, 0.10294, 2, -6.36, 37.31, 0.37493, 26, -10.2, 10.25, 0.23733, 3, 32, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.2, -0.66, 0.33772, 4, 32, 10.64, -16.31, 0.3269, 37, -24.05, -14.89, 0.16082, 2, -27.57, 33.66, 0.14432, 26, -6.36, -11.04, 0.36794, 4, 32, 28.49, -15.62, 0.24236, 37, -9.54, -15.11, 0.27028, 38, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 32, 41.59, -14.89, 0.2176, 37, 6.92, -15.34, 0.33285, 38, -26.85, -17.48, 0.20377, 26, -1.29999, -43.27, 0.24577, 3, 37, 33.82, -15.8, 0.47178, 38, 0, -15.85, 0.42626, 39, -31.79, -17.82, 0.10194, 3, 37, 63.38, -16.48, 0.2126, 38, 29.52, -14.21, 0.42737, 39, -2.42, -14.38, 0.36002, 3, 38, 49.78, -15.51, 0.30177, 39, 14.85, -13.08, 0.47126, 40, -21.14, -15.63, 0.22694, 3, 38, 61.09, -13.4, 0.15443, 39, 29.03, -11.64, 0.50848, 40, -3.26, -12.45, 0.33708, 2, 39, 41.23, -10.79, 0.28077, 40, 8.39999, -8.79, 0.71921, 2, 40, 36.23, -8.59, 0.56512, 41, -3.02, -8.83, 0.43487, 3, 40, 67.93, -10.06, 0.16322, 41, 28.68, -7.81, 0.53712, 42, -8.10999, -7.69, 0.29965, 3, 41, 47.76, -8.47, 0.402, 42, 10.97, -7.89, 0.4513, 33, -26.34, -6.21, 0.14668, 3, 41, 64.61, -8.06, 0.25016, 42, 27.8, -8.39999, 0.46039, 33, -12.76, -8.81, 0.28943, 4, 41, 79.12, -10.24, 0.11858, 42, 42.33, -8.03, 0.26981, 33, 4.53, -8.37, 0.48104, 34, -1.55, 35.59999, 0.13056, 2, 33, 20.84, -9.18999, 0.72799, 34, -5.37, 19.54999, 0.272, 1, 34, -11.5, -7.29, 1, 4, 33, 43.23, 16.27, 0.2746, 34, 15.1, -7.51, 0.48158, 35, -12.29, -5.54, 0.12942, 36, -41.75999, 0.94, 0.11439, 4, 33, 36.99, 33.93999, 0.18804, 34, 33.7, -4.57, 0.34252, 35, 6.53, -5.75, 0.18296, 36, -23.19, -2.18, 0.28646, 3, 34, 53.35, -1.58, 0.21646, 35, 26.4, -6.08, 0.26516, 36, -3.61, -5.59, 0.51836, 2, 35, 47.99, -1.76, 0.15752, 36, 18.37, -4.66, 0.84247, 1, 36, 33.16, -0.11, 1, 2, 35, 47.97, 10.84, 0.17387, 36, 20.31, 7.79, 0.82612, 4, 33, 9.83, 48.43, 0.17571, 34, 53.28, 18.69, 0.17038, 35, 29.73, 13.92, 0.136, 36, 2.76, 13.66, 0.5179, 4, 33, 11.45, 34.57, 0.26313, 34, 39.25999, 20.54999, 0.23037, 35, 16.20999, 18.09, 0.15679, 36, -9.93999, 19.87999, 0.3497, 4, 33, 12.4, 17.12999, 0.37056, 34, 22.1, 22.5, 0.30409, 35, -0.37, 22.87, 0.18235, 36, -25.59, 27.17, 0.14297, 3, 33, 12.34, 10.43, 0.44639, 34, 15.56, 23.91, 0.2976, 35, -6.59, 25.36, 0.256, 5, 41, 75.94999, 9.06, 0.10562, 42, 38.15, 11.08, 0.25494, 33, 1.65, 10.97, 0.33578, 34, 17.98, 34.75, 0.16322, 35, -2.38, 35.64, 0.14041, 3, 41, 62.61, 10.94, 0.26063, 42, 26.04, 10.62, 0.49791, 33, -15.14, 10.14, 0.24144, 3, 41, 47.27, 9.67, 0.40348, 42, 9.53, 10.18999, 0.4787, 33, -26.59, 11.93, 0.11781, 3, 40, 69.23, 6.97, 0.16043, 41, 28.63, 9.26, 0.53934, 42, -7.94, 9.38, 0.30019, 2, 40, 37.36, 8, 0.57647, 41, -3.21, 7.8, 0.42351, 2, 39, 45.48, 7.1, 0.29349, 40, 8.38, 9.60999, 0.7065, 3, 38, 62.84, 9, 0.15445, 39, 29.4, 10.82, 0.49324, 40, -8.12, 9.49, 0.35229, 3, 38, 52.14, 9.27, 0.30575, 39, 12.84, 11.73, 0.46742, 40, -26.12, 8.77, 0.22682, 3, 37, 66.66, 11.26, 0.21798, 38, 30.61, 13.69, 0.42844, 39, -3.05, 13.53, 0.35357, 3, 37, 37.7, 16.76, 0.48245, 38, 1.30999, 16.92, 0.41751, 39, -32.49, 14.97, 0.10002, 4, 32, 44.34, 22.11, 0.23459, 37, 11.91, 21.43, 0.43853, 38, -24.76, 19.56, 0.20679, 2, -58.28, -7.19, 0.12007, 4, 32, 28.54, 23.57, 0.31079, 37, -3.76, 23.83, 0.19157, 25, -76.76, 29.22, 0.2153, 2, -42.42, -7.45, 0.2823, 3, 32, 22.31, 41.64, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37848, 3, 32, 19.77, 51.42, 0.1392, 25, -59.84, 2.52, 0.47895, 2, -23.89, -35.16, 0.38184, 3, 32, 6.03, 61.53, 0.10543, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.16, -13.13, 0.67426, 2, -1.22, -50.82, 0.32573, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.49, 0.89018, 2, 37.39, -48.18, 0.10981, 3, 25, 30.4, 0.96, 0.43019, 2, 66.35, -36.72, 0.16237, 3, 19.96999, -44.2, 0.40743, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.21, 0.31834, 2, 3, 50.68, -30.61, 0.51066, 4, 0.38, -31.99, 0.48933, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.28, 0.12041, 3, 3, 69.4, -22.88, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.52, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.55, -19.37, 0.1738, 5, 26.05, -13.63, 0.82619, 5, 32, 20.79, 3.26, 0.38867, 37, -12.73, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10105, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.24, 0.13748, 4, 32, 2.68, 26.81, 0.26409, 25, -50.86, 29.21, 0.2337, 2, -16.39, -8.72999, 0.34628, 26, 35.78, -0.48, 0.15592, 3, 32, -15.65, 28.57, 0.15678, 25, -33.53, 28.78, 0.29159, 2, 2.02, -9.1, 0.55161, 1, 25, -28.17, 8.37, 1, 1, 25, -5.01, 10.99, 1, 3, 25, 24.12, 24.17, 0.12051, 2, 60.06, -13.51, 0.21384, 3, 20.53, -20.16, 0.66563, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.65, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58729, 5, -3.66, 7.65, 0.4127, 2, 3, 39.52, 3.1, 0.47136, 4, -0.95, 3.49, 0.52863, 1, 3, 17.87999, 2.56, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 32, -2.63, 46, 0.10032, 25, -45.41, 10.26, 0.52611, 2, -9.64, -27.46, 0.37355, 2, 35, 47.98, 4.75, 0.16597, 36, 19.37, 1.77, 0.83402, 4, 33, 19.54999, 50.48, 0.12624, 34, 53.3, 9.5, 0.16908, 35, 28.21, 4.85, 0.24846, 36, -0.13, 4.94, 0.4562, 4, 33, 26.31, 16.82, 0.32786, 34, 18.95999, 9.25, 0.38307, 35, -5.68, 10.34, 0.15879, 36, -32.77, 15.61, 0.13026, 2, 33, 16.95999, -0.03, 0.66864, 34, 4.23, 21.71, 0.33135, 3, 33, 28.1, 2.85, 0.4826, 34, 4.91, 10.14, 0.31302, 35, -19.37999, 13.57, 0.20437, 3, 41, 63.21, -0.58, 0.21068, 42, 25.96, 0.78, 0.49386, 33, -11.01, 1.48, 0.29543, 3, 32, -14.83, 8.08, 0.24448, 25, -33.34, 51.23, 0.16324, 2, 2.58999, 13.53, 0.59226, 4, 32, 3.37, 4.96, 0.28616, 25, -51.81, 51.13, 0.16476, 2, -15.86, 13.44, 0.31891, 26, 13.85, -0.52, 0.23015, 4, 32, 46.08, 3.58, 0.24089, 37, 9.06, 3.09, 0.41151, 38, -28.46, 0.64, 0.21862, 26, 17.5, -43.07, 0.12896, 3, 37, 37.22, 1.25, 0.47744, 38, -0.08, 1.25, 0.42162, 39, -36.25, -5.25, 0.10092, 4, 32, -5.23, 6.29, 0.25594, 25, -43.1, 51.32, 0.15578, 2, -7.16, 13.62, 0.42092, 26, 14.16, 8.17, 0.16734, 4, 32, 33.03, 3.37, 0.36684, 37, -3.96, 3.6, 0.31093, 2, -45.32, 9.82, 0.17306, 26, 15.75, -30.14, 0.14914, 4, 41, 77.5, -1.16, 0.11479, 42, 40.23, 0.95, 0.26888, 33, 3.05, 0.72, 0.44972, 34, 7.66, 35.32, 0.16659, 4, 33, 22.72, 34.66999, 0.2209, 34, 37.18, 9.38, 0.26955, 35, 12.29, 7.43, 0.20636, 36, -15.46, 9.95, 0.30317 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], "hull": 60, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], "width": 141, @@ -221,7 +232,7 @@ "type": "mesh", "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], - "vertices": [ 1, 47, 21.66, 6.07, 1, 2, 46, 18.12999, 3.37, 0.16553, 47, 3.91, 4.23, 0.83446, 3, 27, -6.12, -15.23, 0.20965, 46, -0.04, 8.85, 0.53629, 5, 43.44, 6.81, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.88821, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.57, -9.68999, 0.30995, 28, 12.31, -9.60999, 0.69004, 2, 28, 24.21, -9.37, 0.86562, 29, -13.42, -6.2, 0.13437, 2, 28, 32.12, -9.21, 0.73143, 29, -5.72, -8.02, 0.26856, 2, 28, 39.34999, -7.58, 0.54007, 29, 1.68, -8.24, 0.45992, 2, 28, 46.9, -5.88, 0.29036, 29, 9.41, -8.47999, 0.70963, 2, 29, 18.58, -8.76, 0.66539, 30, -15.75, -5.12, 0.3346, 1, 30, 6.03, -8.58, 1, 2, 30, 31.42, -5.97, 0.39256, 31, 0.49, -6.36, 0.60743, 1, 31, 23.79, -9.31, 1, 1, 31, 52.37, -11.28, 1, 1, 31, 62.39, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.48, 1, 1, 31, 25.99, 28.24, 1, 1, 31, 8.33, 5.63, 1, 2, 30, 28.81, 6.64, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.66, 11.07, 0.10767, 29, 18.26, 6.74, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.87, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.35, 9.85999, 0.40816, 2, 28, 23.72, 9.68999, 0.83035, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.2992, 28, 13.67, 9.97, 0.70079, 2, 27, 32.18, 12.59, 0.84686, 28, -6.23, 12.54, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47199, 4, 29.16, -0.35, 0.528, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.45, -29.43, 1, 2, 5, -8.22999, -31.56, 0.51928, 4, 19, -28.73, 0.4807, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.69, -14.54, 0.25481, 47, 2.13, -14.4, 0.32231, 5, 42.47, -19.81, 0.42286, 1, 47, 13.63, -8.89, 1, 1, 27, 3.55, 0.9, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.33, 0.49989, 1, 5, 25.66, -11.24, 1, 3, 46, 13.39, -4.64, 0.33234, 47, 0.86, -4.56, 0.48165, 5, 48.11, -11.65, 0.186 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], "hull": 38, "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], "width": 145, @@ -233,7 +244,7 @@ "type": "path", "lengths": [ 140.43, 297.34, 652.04 ], "vertexCount": 9, - "vertices": [ 1, 44, -40.7, -0.41, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.42, 0.33, 1, 2, 44, 82.92, 8.49, 0.5, 45, -58.75, -8.53, 0.5, 2, 44, 141.34, 0.52, 0.5, 45, 0.45, 0.71, 0.5, 2, 44, 208.26, -14.83, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.81, 1.41, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.76, 1 ] + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] } }, "head": { @@ -241,7 +252,7 @@ "type": "mesh", "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], - "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.33, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.14, 26.24, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.06, 1, 1, 47, 10.7, -8.62, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.7, -44.64, 1, 1, 48, 27.89, -48.41, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.91, -45.89, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.05, 1, 1, 48, 86.81, -25.91, 1, 1, 48, 92.45, -10.29, 1, 1, 48, 60.63, -22.97, 1, 1, 48, 49.77, -12.03, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.73, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.7, 1, 1, 48, 63.85, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.66, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.39, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.07, -38.41999, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], "hull": 19, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], "width": 87, @@ -260,11 +271,11 @@ { "time": 0.3333, "angle": -31.29 }, { "time": 0.5333, "angle": -44.75 }, { "time": 0.7333, "angle": -25.49 }, - { "time": 0.9, "angle": -9.45 }, + { "time": 0.8999, "angle": -9.45 }, { "time": 1.0666, "angle": 30.27 }, { "time": 1.2333, "angle": -10.1 }, { "time": 1.6333, "angle": -41.47 }, - { "time": 1.8, "angle": 30.27 } + { "time": 1.7999, "angle": 30.27 } ], "translate": [ { "time": 0, "x": -57.43, "y": -40.92 }, @@ -284,7 +295,7 @@ { "time": 0.4333, "x": 344.29, "y": -134.94 }, { "time": 0.5333, "x": 543.13, "y": -81.1 }, { "time": 0.7333, "x": 569.68, "y": -62.13 }, - { "time": 0.9, "x": 591.8, "y": -46.32 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, { "time": 1.0666, "x": 653.14, @@ -296,7 +307,7 @@ { "time": 1.3333, "x": 986.94, "y": -153.35 }, { "time": 1.4333, "x": 1178.19, "y": -111.88 }, { "time": 1.6333, "x": 1195.1, "y": -62.1 }, - { "time": 1.8, "x": 1246.53, "y": -40.92 } + { "time": 1.7999, "x": 1246.53, "y": -40.92 } ] }, "front leg IK target": { @@ -311,32 +322,32 @@ "curve": [ 0.532, 0, 0.75, 1 ] }, { "time": 0.7333, "x": 566.43, "y": 107.27 }, - { "time": 0.9, "x": 1215.89, "y": 68.21 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, { "time": 1.0666, "x": 1235.47, "y": 15.8 }, { "time": 1.2333, "x": 1235.47, "y": 0.97 }, { "time": 1.5666, "x": 1230.15, "y": 3.76 }, { "time": 1.7, "x": 1244, "y": 26.76 }, - { "time": 1.8, "x": 1253.53, "y": 44.61 } + { "time": 1.7999, "x": 1253.53, "y": 44.61 } ] }, "front foot 1": { "rotate": [ { "time": 0, "angle": -48.38, "curve": "stepped" }, { "time": 0.3333, "angle": -48.38 }, - { "time": 0.7, "angle": -121.34 }, + { "time": 0.6999, "angle": -121.34 }, { "time": 0.8, "angle": -80.19 }, - { "time": 0.9, "angle": 45.59 }, + { "time": 0.8999, "angle": 45.59 }, { "time": 1.0666, "angle": 2.1 }, { "time": 1.2333, "angle": 4.65 }, { "time": 1.5666, "angle": 5.66 }, - { "time": 1.8, "angle": -48.38 } + { "time": 1.7999, "angle": -48.38 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.6, "x": 1, "y": 1 }, { "time": 0.6333, "x": 0.954, "y": 1 }, { "time": 0.7666, "x": 0.82, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, { "time": 1.0666, "x": 0.851, "y": 1 }, { "time": 1.3666, "x": 1, "y": 1 } ] @@ -348,12 +359,12 @@ { "time": 0.5, "angle": 34.84 }, { "time": 0.5333, "angle": 30.32 }, { "time": 0.5666, "angle": 61.67 }, - { "time": 0.7, "angle": -19.47 }, - { "time": 0.9, "angle": -0.12 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, { "time": 1.0666, "angle": -7.21 }, { "time": 1.2333, "angle": -11.34 }, { "time": 1.5666, "angle": -11.23 }, - { "time": 1.8, "angle": 36.32 } + { "time": 1.7999, "angle": 36.32 } ] }, "back leg IK target": { @@ -361,15 +372,15 @@ { "time": 0, "x": 516.79, "y": 86.68 }, { "time": 0.1666, "x": 523.71, "y": 16.63 }, { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, - { "time": 0.7, "x": 523.03, "y": -5 }, - { "time": 0.9, "x": 551.31, "y": 41.86 }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, { "time": 1.0666, "x": 554.24, "y": 44.45 }, { "time": 1.1333, "x": 555.44, "y": 44.74 }, { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, { "time": 1.4333, "x": 556.6, "y": 46.19 }, { "time": 1.5, "x": 746.96, "y": 74.82 }, { "time": 1.6333, "x": 1127.68, "y": 103.61 }, - { "time": 1.8, "x": 1820.75, "y": 86.68 } + { "time": 1.7999, "x": 1820.75, "y": 86.68 } ] }, "back foot 1": { @@ -377,32 +388,32 @@ { "time": 0, "angle": 74.17 }, { "time": 0.1666, "angle": -17.01 }, { "time": 0.3333, "angle": 5.05 }, - { "time": 0.7, "angle": 3.74 }, - { "time": 0.9, "angle": -65.56 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, { "time": 1.6333, "angle": -92.52 }, - { "time": 1.8, "angle": 74.17 } + { "time": 1.7999, "angle": 74.17 } ], "scale": [ { "time": 0, "x": 0.824, "y": 1 }, { "time": 0.1666, "x": 0.754, "y": 1 }, { "time": 0.3333, "x": 0.589, "y": 1 }, { "time": 0.5666, "x": 0.909, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 1.4, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, { "time": 1.5, "x": 0.844, "y": 1 }, - { "time": 1.8, "x": 0.824, "y": 1 } + { "time": 1.7999, "x": 0.824, "y": 1 } ] }, "back foot 2": { "rotate": [ { "time": 0, "angle": 8.13 }, { "time": 0.1666, "angle": -3.21 }, - { "time": 0.7, "angle": -1.14 }, - { "time": 0.9, "angle": 34.12 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, { "time": 1.4333, "angle": 46.68 }, { "time": 1.5333, "angle": -15.6 }, { "time": 1.6333, "angle": -11.91 }, - { "time": 1.8, "angle": 8.13 } + { "time": 1.7999, "angle": 8.13 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -416,12 +427,12 @@ { "time": 0.1666, "angle": -37.29 }, { "time": 0.3333, "angle": 30.66 }, { - "time": 0.9, + "time": 0.8999, "angle": -53.28, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 36 }, - { "time": 1.8, "angle": -39.71 } + { "time": 1.7999, "angle": -39.71 } ] }, "neck 1": { @@ -434,7 +445,7 @@ { "time": 1.1666, "angle": 23.95 }, { "time": 1.2333, "angle": 36.37 }, { "time": 1.6333, "angle": 41.16 }, - { "time": 1.8, "angle": 21.95 } + { "time": 1.7999, "angle": 21.95 } ] }, "neck 2": { @@ -444,11 +455,11 @@ { "time": 0.2666, "angle": 8.84 }, { "time": 0.3333, "angle": 30.71 }, { "time": 0.7333, "angle": -3.36 }, - { "time": 0.9, "angle": -17.57 }, + { "time": 0.8999, "angle": -17.57 }, { "time": 1.1666, "angle": 2.19 }, { "time": 1.2333, "angle": 15.25 }, { "time": 1.6333, "angle": 4.41 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "head": { @@ -459,11 +470,11 @@ { "time": 0.3333, "angle": 13.1 }, { "time": 0.5, "angle": 13.1 }, { "time": 0.7333, "angle": -18.9 }, - { "time": 0.9, "angle": -41.77 }, + { "time": 0.8999, "angle": -41.77 }, { "time": 1.1666, "angle": -4 }, { "time": 1.2333, "angle": -2.35 }, { "time": 1.6333, "angle": -22.89 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "back arm 1": { @@ -472,11 +483,11 @@ { "time": 0.1666, "angle": -18.65 }, { "time": 0.3333, "angle": 324.98 }, { "time": 0.5666, "angle": -6.41 }, - { "time": 0.9, "angle": -14.83 }, + { "time": 0.8999, "angle": -14.83 }, { "time": 1.0666, "angle": -16.9 }, { "time": 1.2333, "angle": 1.49 }, - { "time": 1.4, "angle": 2.56 }, - { "time": 1.8, "angle": -17.23 } + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } ], "translate": [ { "time": 0, "x": -14.25, "y": -6.6 } @@ -494,7 +505,7 @@ { "time": 1.2333, "x": 0.956, "y": 1 }, { "time": 1.4333, "x": 2.315, "y": 1 }, { "time": 1.6333, "x": 0.774, "y": 1 }, - { "time": 1.8, "x": 2.186, "y": 1 } + { "time": 1.7999, "x": 2.186, "y": 1 } ] }, "front leg 1": { @@ -518,18 +529,18 @@ "y": 1, "curve": [ 0.532, 0, 0.75, 1 ] }, - { "time": 0.7, "x": 1, "y": 1 }, - { "time": 0.9, "x": 2.248, "y": 1 }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, { "time": 1.0666, "x": 2.002, "y": 1 }, { "time": 1.2333, "x": 1.495, "y": 1 }, { - "time": 1.3, + "time": 1.2999, "x": 1.047, "y": 1, "curve": [ 0.339, 0.58, 0.764, 1 ] }, { "time": 1.4333, "x": 0.779, "y": 0.762 }, - { "time": 1.8, "x": 1, "y": 1 } + { "time": 1.7999, "x": 1, "y": 1 } ] }, "front leg IK 2": { @@ -543,12 +554,12 @@ { "time": 0.1666, "angle": 17.37 }, { "time": 0.3333, "angle": 31.94 }, { - "time": 0.9, + "time": 0.8999, "angle": 4.76, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 39.96 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "spine 2": { @@ -561,7 +572,7 @@ { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -6.69 }, { "time": 1.6333, "angle": -2.5 }, - { "time": 1.8, "angle": -3.49 } + { "time": 1.7999, "angle": -3.49 } ] }, "spine 3": { @@ -571,11 +582,11 @@ { "time": 0.3333, "angle": -9.02 }, { "time": 0.5, "angle": -2.65 }, { "time": 0.7333, "angle": -10.53 }, - { "time": 0.9, "angle": -16.16 }, + { "time": 0.8999, "angle": -16.16 }, { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -9.02 }, { "time": 1.6333, "angle": -7.26 }, - { "time": 1.8, "angle": -20.41 } + { "time": 1.7999, "angle": -20.41 } ] }, "back arm 3": { @@ -584,22 +595,22 @@ { "time": 0.1666, "angle": 53.14 }, { "time": 0.3333, "angle": 116.25 }, { "time": 0.5666, "angle": 35.72 }, - { "time": 0.9, "angle": 39.32 }, + { "time": 0.8999, "angle": 39.32 }, { "time": 1.0666, "angle": 41.19 }, { "time": 1.2333, "angle": 78.09 }, - { "time": 1.4, "angle": 36.16 }, - { "time": 1.8, "angle": 26.23 } + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } ] }, "back foot 3": { "rotate": [ { "time": 0, "angle": 11.35 }, - { "time": 0.7, "angle": -4.24 }, - { "time": 0.9, "angle": 25.48, "curve": "stepped" }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, { "time": 1.4333, "angle": 25.48 }, { "time": 1.5333, "angle": -30.51 }, { "time": 1.6333, "angle": -20.54 }, - { "time": 1.8, "angle": 11.35 } + { "time": 1.7999, "angle": 11.35 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -614,11 +625,11 @@ { "time": 0.3333, "angle": -24.32 }, { "time": 0.5, "angle": -13.37 }, { "time": 0.7333, "angle": 21.61 }, - { "time": 0.9, "angle": 46.61 }, + { "time": 0.8999, "angle": 46.61 }, { "time": 1.1666, "angle": -28.69 }, { "time": 1.2333, "angle": -43.33 }, { "time": 1.6333, "angle": 24.89 }, - { "time": 1.8, "angle": 10.81 } + { "time": 1.7999, "angle": 10.81 } ] }, "spine 4": { @@ -628,11 +639,11 @@ { "time": 0.3333, "angle": -0.82 }, { "time": 0.5, "angle": 4.13 }, { "time": 0.7333, "angle": -3.74 }, - { "time": 0.9, "angle": -9.37 }, + { "time": 0.8999, "angle": -9.37 }, { "time": 1.1666, "angle": -9.02 }, { "time": 1.2333, "angle": -0.82 }, { "time": 1.6333, "angle": 3.81 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "front foot 2": { @@ -642,12 +653,12 @@ { "time": 0.3333, "angle": -0.2 }, { "time": 0.5, "angle": 22.72 }, { "time": 0.5333, "angle": 26.87 }, - { "time": 0.7, "angle": -39.25 }, - { "time": 0.9, "angle": 11.26 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, { "time": 1.0666, "angle": -18.17 }, { "time": 1.2333, "angle": -2.64 }, { "time": 1.5666, "angle": -5.84 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "belly": { @@ -660,7 +671,7 @@ { "time": 1.1, "x": -0.44, "y": -1.45 }, { "time": 1.2333, "x": 12.37, "y": 2.32 }, { "time": 1.3666, "x": 11.51, "y": 5.52 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "butt": { @@ -669,7 +680,7 @@ { "time": 0.7666, "x": 9.88, "y": -25.41 }, { "time": 0.8333, "x": 15.89, "y": -41.88 }, { "time": 1.2333, "x": -12.49, "y": -32.99 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] } }, @@ -688,7 +699,7 @@ { "time": 1.4333, "offset": 110, - "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56073, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] }, { "time": 1.5 } ] @@ -698,11 +709,11 @@ { "time": 1.4333 }, { "time": 1.5, - "vertices": [ 4.67718, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17206 ] + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] }, { "time": 1.5666, - "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62085, -280.84912 ] + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] }, { "time": 1.6666 } ] @@ -713,7 +724,7 @@ { "time": 0.3333, "offset": 164, - "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28855, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] }, { "time": 0.5333, @@ -746,11 +757,11 @@ { "time": 0.5666 }, { "time": 0.6333, - "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] }, { - "time": 0.7, - "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] }, { "time": 0.8 } ] diff --git a/spine-love/data/tank.json b/spine-love/data/tank.json index cab50642b..b483fe274 100644 --- a/spine-love/data/tank.json +++ b/spine-love/data/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-love/data/test.json b/spine-love/data/test.json index 773d0b805..7c344afab 100644 --- a/spine-love/data/test.json +++ b/spine-love/data/test.json @@ -1,18 +1,25 @@ { -"skeleton": { "hash": "xbu5IFg+2tCx4+2MavNPurEogzA", "spine": "3.4.02", "width": 1333.78, "height": 1112.91, "images": "./images/" }, +"skeleton": { + "hash": "i05EldfljpjLC64I/kHnNrqzJ5A", + "spine": "3.5.03-beta", + "width": 1333.78, + "height": 1112.91, + "fps": 30, + "images": "./images/" +}, "bones": [ - { "name": "root", "x": 28.68, "y": -105.71 }, - { "name": "attachment", "parent": "root", "x": -267.71, "y": -366.62 }, - { "name": "color", "parent": "root", "x": -298.29, "y": 44.1 }, - { "name": "draworder", "parent": "root", "x": 283.53, "y": -356.27 }, - { "name": "mesh", "parent": "root", "x": -320.74, "y": 413.7 }, - { "name": "meshweighted", "parent": "root", "rotation": -11.22, "x": -353.28, "y": 627.53 }, - { "name": "pathfollower", "parent": "root", "x": 177.52, "y": 56.62 }, + { "name": "root", "x": 28.68, "y": -105.7 }, + { "name": "attachment", "parent": "root", "x": -267.7, "y": -366.61 }, + { "name": "color", "parent": "root", "x": -298.29, "y": 44.09 }, + { "name": "draworder", "parent": "root", "x": 283.52, "y": -356.26 }, + { "name": "mesh", "parent": "root", "x": -320.73, "y": 413.7 }, + { "name": "meshweighted", "parent": "root", "rotation": -11.22, "x": -353.27, "y": 627.53 }, + { "name": "pathfollower", "parent": "root", "x": 177.52, "y": 56.61 }, { "name": "rotate", "parent": "root", "x": -305, "y": 201 }, { "name": "scale", "parent": "root", "x": 183.99, "y": -138 }, { "name": "shear", "parent": "root", "x": -304, "y": -146 }, - { "name": "transformconstrainttarget", "parent": "root", "x": 604.27, "y": 420.7, "color": "abe323ff" }, { "name": "transformconstrained", "parent": "root", "x": 169.6, "y": 420.7 }, + { "name": "transformconstrainttarget", "parent": "root", "x": 604.27, "y": 420.7, "color": "abe323ff" }, { "name": "translate", "parent": "root", "x": 190.99, "y": 201, "color": "abe323ff" } ], "slots": [ @@ -34,6 +41,7 @@ "transform": [ { "name": "transformconstraint", + "order": 1, "bones": [ "transformconstrained" ], "target": "transformconstrainttarget", "x": -400, @@ -46,6 +54,7 @@ "path": [ { "name": "pathconstraint", + "order": 0, "bones": [ "pathfollower" ], "target": "path2", "rotation": 34.2 @@ -72,7 +81,7 @@ "path": "spine", "uvs": [ 0, 0, 0.25, 0, 0.5, 0, 0.75, 0, 1, 0, 1, 0.25, 1, 0.5, 1, 0.75, 1, 1, 0.75, 1, 0.5, 1, 0.25, 1, 0, 1, 0, 0.75, 0, 0.5, 0, 0.25, 0.25, 0.25, 0.25, 0.5, 0.25, 0.75, 0.5, 0.25, 0.5, 0.5, 0.5, 0.75, 0.75, 0.25, 0.75, 0.5, 0.75, 0.75 ], "triangles": [ 15, 0, 1, 16, 1, 2, 15, 1, 16, 19, 2, 3, 16, 2, 19, 22, 3, 4, 19, 3, 22, 22, 4, 5, 14, 15, 16, 17, 16, 19, 14, 16, 17, 20, 19, 22, 17, 19, 20, 23, 22, 5, 20, 22, 23, 23, 5, 6, 13, 14, 17, 18, 17, 20, 13, 17, 18, 21, 20, 23, 18, 20, 21, 24, 23, 6, 21, 23, 24, 24, 6, 7, 12, 13, 18, 11, 18, 21, 12, 18, 11, 10, 21, 24, 11, 21, 10, 9, 24, 7, 10, 24, 9, 9, 7, 8 ], - "vertices": [ 1, 5, -194.67, 21.29, 1, 1, 5, -102.08, 38.91, 1, 1, 5, -9.49, 56.54, 1, 1, 5, 83.08, 74.16, 1, 1, 5, 175.67, 91.79, 1, 1, 5, 181.28, 62.32, 1, 1, 5, 186.89, 32.84, 1, 1, 5, 192.5, 3.38, 1, 1, 5, 198.11, -26.09, 1, 1, 5, 105.52, -43.71, 1, 1, 5, 12.94, -61.33, 1, 1, 5, -79.64, -78.96, 1, 1, 5, -172.23, -96.58, 1, 1, 5, -177.84, -67.11, 1, 1, 5, -183.45, -37.64, 1, 1, 5, -189.06, -8.17, 1, 1, 5, -96.47, 9.45, 1, 1, 5, -90.86, -20.01, 1, 1, 5, -85.25, -49.48, 1, 1, 5, -3.88, 27.07, 1, 1, 5, 1.72, -2.39, 1, 1, 5, 7.33, -31.86, 1, 1, 5, 88.7, 44.69, 1, 1, 5, 94.31, 15.22, 1, 1, 5, 99.92, -14.24, 1 ], + "vertices": [ 1, 5, -194.66, 21.29, 1, 1, 5, -102.08, 38.90999, 1, 1, 5, -9.47999, 56.54, 1, 1, 5, 83.08, 74.16, 1, 1, 5, 175.66, 91.79, 1, 1, 5, 181.27, 62.31, 1, 1, 5, 186.88, 32.84, 1, 1, 5, 192.5, 3.38, 1, 1, 5, 198.11, -26.09, 1, 1, 5, 105.51, -43.7, 1, 1, 5, 12.93, -61.33, 1, 1, 5, -79.62999, -78.94999, 1, 1, 5, -172.22, -96.58, 1, 1, 5, -177.83, -67.11, 1, 1, 5, -183.44, -37.63, 1, 1, 5, -189.05, -8.17, 1, 1, 5, -96.47, 9.43999, 1, 1, 5, -90.86, -20.01, 1, 1, 5, -85.25, -49.47, 1, 1, 5, -3.88, 27.05999, 1, 1, 5, 1.72, -2.39, 1, 1, 5, 7.32, -31.86, 1, 1, 5, 88.69, 44.68, 1, 1, 5, 94.3, 15.22, 1, 1, 5, 99.91, -14.22999, 1 ], "hull": 16, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 0 ], "width": 377, @@ -105,9 +114,9 @@ "images/spine": { "type": "mesh", "path": "spine", - "uvs": [ 1, 0.50124, 1, 1, 0.72412, 1, 0.49981, 1, 0.28581, 1, 0, 1, 0, 0.50124, 0, 0, 0.49207, 0, 1, 0, 0.56941, 0.57414, 0.84014, 0.50124, 0.61841, 0.22584, 0.20589, 0.20154, 0.19558, 0.67134, 0.39152, 0.86574, 0.3941, 0.41214, 0.3941, 0.12864, 0.76021, 0.19344, 0.76537, 0.59034, 0.74474, 0.84144, 0.57716, 0.81714 ], + "uvs": [ 1, 0.50124, 1, 1, 0.72412, 1, 0.49981, 1, 0.2858, 1, 0, 1, 0, 0.50124, 0, 0, 0.49206, 0, 1, 0, 0.56941, 0.57414, 0.84013, 0.50124, 0.6184, 0.22584, 0.20588, 0.20153, 0.19558, 0.67133, 0.39151, 0.86574, 0.3941, 0.41214, 0.3941, 0.12863, 0.7602, 0.19344, 0.76537, 0.59034, 0.74474, 0.84144, 0.57716, 0.81713 ], "triangles": [ 17, 7, 8, 18, 8, 9, 13, 7, 17, 12, 8, 18, 17, 8, 12, 16, 17, 12, 13, 17, 16, 6, 7, 13, 6, 13, 16, 18, 9, 0, 11, 18, 0, 10, 16, 12, 12, 18, 11, 10, 12, 11, 19, 10, 11, 14, 6, 16, 14, 16, 10, 21, 10, 19, 15, 14, 10, 20, 21, 19, 21, 15, 10, 5, 6, 14, 4, 5, 14, 15, 4, 14, 3, 15, 21, 4, 15, 3, 2, 21, 20, 3, 21, 2, 19, 11, 0, 0, 20, 19, 1, 20, 0, 2, 20, 1 ], - "vertices": [ 191.41, -1.12, 191.41, -60.97, 87.4, -60.97, 2.84, -60.97, -77.82, -60.97, -185.58, -60.97, -185.58, -1.12, -185.58, 59.02, -0.07, 59.02, 191.41, 59.02, 29.09, -9.85, 131.14, -1.12, 47.55, 31.92, -107.96, 34.84, -111.85, -21.53, -37.97, -44.86, -37, 9.57, -37, 43.59, 101.01, 35.81, 102.96, -11.81, 95.18, -41.93, 32, -39.02 ], + "vertices": [ 191.41, -1.12, 191.41, -60.97, 87.4, -60.97, 2.82999, -60.97, -77.80999, -60.97, -185.58, -60.97, -185.58, -1.12, -185.58, 59.02, -0.07, 59.02, 191.41, 59.02, 29.09, -9.85, 131.13, -1.12, 47.54, 31.92, -107.94999, 34.84, -111.83999, -21.53, -37.97, -44.86, -37, 9.56, -37, 43.59, 101.01, 35.81, 102.94999, -11.81, 95.18, -41.93, 32, -39.02 ], "hull": 10, "edges": [ 10, 12, 12, 14, 14, 16, 16, 18, 2, 0, 0, 18, 6, 8, 8, 10, 2, 4, 4, 6 ], "width": 377, @@ -120,7 +129,7 @@ "closed": true, "lengths": [ 128.85, 310.24, 465.06, 600.88, 773.97 ], "vertexCount": 15, - "vertices": [ 258.07, -42.67, 291.94, -17.53, 326.41, 7.22, 391.41, 2.75, 398.05, 46.72, 399.83, 84.07, 274.03, 106.4, 236.7, 117.74, 199.37, 129.09, 116.55, 135.12, 84.41, 115.47, 50.34, 94.04, 56.53, 1.48, 89.01, -5.59, 122.89, -13.58 ] + "vertices": [ 258.07, -42.65999, 291.94, -17.53, 326.41, 7.21, 391.41, 2.75, 398.04, 46.72, 399.82, 84.05999, 274.02, 106.4, 236.69, 117.73, 199.36, 129.08, 116.55, 135.11, 84.41, 115.47, 50.34, 94.04, 56.52, 1.48, 89.01, -5.59, 122.87999, -13.56999 ] } } } @@ -132,7 +141,7 @@ "color": [ { "time": 0, "color": "ffffffff" }, { "time": 0.4333, "color": "ff0901ff" }, - { "time": 0.9, "color": "2dff00ff" }, + { "time": 0.8999, "color": "2dff00ff" }, { "time": 1.3333, "color": "ffffffff" } ] }, @@ -159,40 +168,40 @@ "y": 0, "curve": [ 1, 0, 0, 1 ] }, - { "time": 0.6666, "x": 96.99, "y": -151 }, + { "time": 0.6666, "x": 96.98, "y": -151 }, { "time": 1.3333, "x": 0, "y": 0 } ] }, "scale": { "scale": [ { "time": 0, "x": 1, "y": 1 }, - { "time": 0.6666, "x": 1, "y": 2.34 }, + { "time": 0.6666, "x": 1, "y": 2.339 }, { "time": 1.3333, "x": 1, "y": 1 } ] }, "rotate": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.6666, "angle": -125.34 }, + { "time": 0.6666, "angle": -125.33 }, { "time": 1.3333, "angle": 0 } ] }, "shear": { "shear": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 29.4, "y": 0 }, + { "time": 0.6666, "x": 29.39, "y": 0 }, { "time": 1.3333, "x": 0, "y": 0 } ] }, "transformconstrainttarget": { "rotate": [ { "time": 0, "angle": 0 }, - { "time": 0.6666, "angle": -74.6 }, + { "time": 0.6666, "angle": -74.59 }, { "time": 1.3333, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 176.22, "y": -170.34 }, + { "time": 0.6666, "x": 176.22, "y": -170.33 }, { "time": 1.3333, "x": 0, "y": 0 } ], "scale": [ @@ -202,7 +211,7 @@ ], "shear": [ { "time": 0, "x": 0, "y": 0 }, - { "time": 0.6666, "x": 23.4, "y": 0 }, + { "time": 0.6666, "x": 23.39, "y": 0 }, { "time": 1.3333, "x": 0, "y": 0 } ] } @@ -221,11 +230,11 @@ { "time": 1.3333, "position": 1 } ], "spacing": [ - { "time": 0, "spacing": 40.1 }, + { "time": 0, "spacing": 40.0999 }, { "time": 1.3333 } ], "mix": [ - { "time": 0.6666, "rotateMix": 0.473, "translateMix": 0.473 }, + { "time": 0.6666, "rotateMix": 0.4729, "translateMix": 0.4729 }, { "time": 1.3333 } ] } @@ -237,7 +246,7 @@ { "time": 0 }, { "time": 0.6666, - "vertices": [ 43.09784, 58.11693, 0, 0, 0, 0, -0.653, -57.46399, -50.93396, -47.01593, -43.098, -24.81398, -43.098, -24.81399, -1.0E-5, 1.0E-5, 0, 1.0E-5, 43.09784, 58.11695, 0, 0, 43.09784, 58.11693, 1.0E-5, -1.0E-5, 0, 0, -43.09797, -24.81399, 0, 1.0E-5, 0, 0, 0, 0, 43.09784, 58.11694, 43.09784, 58.11693 ] + "vertices": [ 43.09783, 58.11693, 0, 0, 0, 0, -0.653, -57.46398, -50.93395, -47.01593, -43.098, -24.81398, -43.098, -24.81399, -1.0E-5, 1.0E-5, 0, 1.0E-5, 43.09783, 58.11695, 0, 0, 43.09783, 58.11693, 1.0E-5, -1.0E-5, 0, 0, -43.09797, -24.81399, 0, 1.0E-5, 0, 0, 0, 0, 43.09783, 58.11694, 43.09783, 58.11693 ] }, { "time": 1.3333 } ] @@ -248,16 +257,16 @@ { "time": 0.3333, "offset": 4, - "vertices": [ -9.45232, 83.5133, -3.90008, 44.76635, -3.90008, 44.76635, -3.90008, 44.76635, 0, 0, 0, 0, 0, 0, 0, 0, 5.15667, -29.57763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.90008, 44.76635 ] + "vertices": [ -9.45232, 83.51329, -3.90007, 44.76634, -3.90007, 44.76634, -3.90007, 44.76634, 0, 0, 0, 0, 0, 0, 0, 0, 5.15667, -29.57762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.90007, 44.76634 ] }, { "time": 0.6666 }, { "time": 0.6679, - "vertices": [ -1.21159, -14.52716, -2.76092, -7.75683, -4.30999, -0.98669, 2.38385, 9.78289, -1.56903, 5.49316, -2.93444, 6.75128, -4.30011, 8.00933, -5.66552, 9.2677, -7.031, 10.52575, -3.07855, 14.81561, 4.30986, 0.9859, 5.85907, -5.78436, 7.40826, -12.55462, 5.25317, -13.04797, 3.09832, -13.54083, 0.94323, -14.03411, -0.60595, -7.26379, 1.54907, -6.77056, 3.70422, -6.27746, -2.15495, -0.49346, 0, -3.0E-4, 2.15495, 0.49273, 1.01812, 11.04132, -0.3471, 12.29895, -1.71313, 13.557 ] + "vertices": [ -1.21159, -14.52715, -2.76092, -7.75683, -4.30998, -0.98668, 2.38385, 9.78289, -1.56903, 5.49315, -2.93443, 6.75127, -4.3001, 8.00932, -5.66552, 9.2677, -7.031, 10.52575, -3.07855, 14.8156, 4.30986, 0.98589, 5.85906, -5.78435, 7.40825, -12.55461, 5.25317, -13.04796, 3.09832, -13.54082, 0.94322, -14.03411, -0.60594, -7.26379, 1.54907, -6.77055, 3.70422, -6.27746, -2.15495, -0.49345, 0, -3.0E-4, 2.15495, 0.49272, 1.01812, 11.04131, -0.34709, 12.29895, -1.71312, 13.557 ] }, { "time": 1.3333, - "vertices": [ -10.57342, 25.16797, -9.16716, 14.48486, -7.76074, 3.80212, 131.25482, 21.05285, 128.23181, -0.04534, 121.51611, 0.91668, 114.80023, 1.8789, 108.08459, 2.84124, 101.3689, 3.80316, 104.39154, 24.90191, -21.3623, 2.01171, -22.76855, 12.69433, -24.17505, 23.37719, -20.77471, 23.82476, -17.37414, 24.27276, -13.97393, 24.72009, -12.56768, 14.03753, -15.96789, 13.58978, -19.36809, 13.14215, -11.16095, 3.35455, -14.56134, 2.90704, -17.96167, 2.45922, 124.53894, 22.01538, 117.82336, 22.97705, 111.10718, 23.93933 ] + "vertices": [ -10.57341, 25.16797, -9.16716, 14.48486, -7.76073, 3.80211, 131.25482, 21.05285, 128.23181, -0.04534, 121.51611, 0.91667, 114.80023, 1.8789, 108.08458, 2.84123, 101.36889, 3.80315, 104.39154, 24.90191, -21.3623, 2.0117, -22.76855, 12.69433, -24.17505, 23.37718, -20.7747, 23.82476, -17.37413, 24.27276, -13.97393, 24.72009, -12.56768, 14.03752, -15.96788, 13.58977, -19.36809, 13.14214, -11.16094, 3.35454, -14.56134, 2.90704, -17.96166, 2.45921, 124.53894, 22.01538, 117.82335, 22.97705, 111.10717, 23.93932 ] } ] } diff --git a/spine-love/data/vine.json b/spine-love/data/vine.json index 6fc78dc14..f4f48a1a2 100644 --- a/spine-love/data/vine.json +++ b/spine-love/data/vine.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "OTxn8PebJnSmjY8665bH7m360tk", "spine": "3.4.02", "width": 227.32, "height": 841.06, "images": "./images/" }, +"skeleton": { + "hash": "Lb8yfqsfTuFiRtjhPw5ZzTEPxik", + "spine": "3.5.03-beta", + "width": 227.32, + "height": 841.06, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "vine1", "parent": "root", "length": 74, "rotation": 90, "x": 339.09, "y": -467.15, "color": "f700ffff" }, @@ -27,6 +34,7 @@ "path": [ { "name": "vine-path", + "order": 0, "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], "target": "vine-path", "rotateMode": "chainScale" @@ -39,7 +47,7 @@ "type": "mesh", "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15384, 1, 0.1923, 1, 0.23076, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38461, 1, 0.42307, 1, 0.46153, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65384, 1, 0.6923, 1, 0.73076, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88461, 1, 0.92307, 1, 0.96153, 1, 1, 0.5, 1, 0, 1, 0, 0.96153, 0, 0.92307, 0, 0.88461, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73076, 0, 0.6923, 0, 0.65384, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46153, 0, 0.42307, 0, 0.38461, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23076, 0, 0.1923, 0, 0.15384, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15384, 0.5, 0.1923, 0.5, 0.23076, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38461, 0.5, 0.42307, 0.5, 0.46153, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65384, 0.5, 0.6923, 0.5, 0.73076, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88461, 0.5, 0.92307, 0.5, 0.96153 ], "triangles": [ 55, 0, 1, 56, 1, 2, 55, 1, 56, 56, 2, 3, 54, 55, 56, 57, 56, 3, 57, 3, 4, 53, 54, 57, 58, 57, 4, 53, 57, 58, 58, 4, 5, 52, 53, 58, 59, 58, 5, 54, 56, 57, 52, 58, 59, 59, 5, 6, 51, 52, 59, 60, 59, 6, 51, 59, 60, 60, 6, 7, 50, 51, 60, 61, 60, 7, 50, 60, 61, 61, 7, 8, 49, 50, 61, 62, 61, 8, 49, 61, 62, 62, 8, 9, 48, 49, 62, 63, 62, 9, 48, 62, 63, 63, 9, 10, 47, 48, 63, 64, 63, 10, 47, 63, 64, 64, 10, 11, 46, 47, 64, 65, 64, 11, 46, 64, 65, 65, 11, 12, 45, 46, 65, 66, 65, 12, 45, 65, 66, 66, 12, 13, 44, 45, 66, 67, 66, 13, 44, 66, 67, 67, 13, 14, 43, 44, 67, 68, 67, 14, 43, 67, 68, 68, 14, 15, 42, 43, 68, 69, 68, 15, 42, 68, 69, 69, 15, 16, 41, 42, 69, 70, 69, 16, 41, 69, 70, 70, 16, 17, 40, 41, 70, 71, 70, 17, 40, 70, 71, 71, 17, 18, 39, 40, 71, 72, 71, 18, 39, 71, 72, 72, 18, 19, 38, 39, 72, 73, 72, 19, 38, 72, 73, 73, 19, 20, 37, 38, 73, 74, 73, 20, 37, 73, 74, 74, 20, 21, 36, 37, 74, 75, 74, 21, 36, 74, 75, 75, 21, 22, 35, 36, 75, 76, 75, 22, 35, 75, 76, 76, 22, 23, 34, 35, 76, 77, 76, 23, 34, 76, 77, 77, 23, 24, 33, 77, 78, 78, 24, 25, 32, 33, 78, 79, 78, 25, 32, 78, 79, 33, 34, 77, 78, 77, 24, 31, 32, 79, 80, 79, 26, 31, 79, 80, 80, 26, 27, 30, 31, 80, 29, 80, 27, 30, 80, 29, 29, 27, 28, 79, 25, 26 ], - "vertices": [ 4, 10, 294, 33.89, 3.2E-4, 11, 220, 33.89, 0.01648, 12, 146, 33.89, 0.21526, 13, 72, 33.89, 0.76791, 3, 11, 220, -0.1, 0.00752, 12, 146, -0.1, 0.16869, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.2E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21526, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00195, 11, 183, -34.09999, 0.04739, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61714, 5, 9, 294, -34.09999, 2.4E-4, 10, 220, -34.09999, 0.01163, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.35531, 5, 9, 257, -34.09999, 0.00195, 10, 183, -34.09999, 0.04663, 11, 109, -34.09999, 0.31166, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.4E-4, 9, 220, -34.09999, 0.01163, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48685, 12, -1.99, -34.09999, 0.31174, 13, -75.99, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00195, 9, 183, -34.09999, 0.04663, 10, 109, -34.09999, 0.31166, 11, 35, -34.09999, 0.48685, 12, -38.99, -34.09999, 0.14101, 13, -112.99, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.4E-4, 8, 220, -34.09999, 0.01163, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48685, 11, -1.99, -34.09999, 0.31166, 12, -75.99, -34.09999, 0.04663, 13, -149.99, -34.09999, 0.00195, 7, 7, 257, -34.09999, 0.00195, 8, 183, -34.09999, 0.04663, 9, 109, -34.09999, 0.31166, 10, 35, -34.09999, 0.48685, 11, -38.99, -34.09999, 0.14101, 12, -112.99, -34.09999, 0.01163, 13, -186.99, -34.09999, 2.4E-4, 7, 6, 294, -34.09999, 2.4E-4, 7, 220, -34.09999, 0.01163, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48685, 10, -1.99, -34.09999, 0.31166, 11, -75.99, -34.09999, 0.04663, 12, -149.99, -34.09999, 0.00195, 7, 6, 257, -34.09999, 0.00195, 7, 183, -34.09999, 0.04663, 8, 109, -34.09999, 0.31166, 9, 35, -34.09999, 0.48685, 10, -38.99, -34.09999, 0.14101, 11, -112.99, -34.09999, 0.01163, 12, -186.99, -34.09999, 2.4E-4, 7, 5, 294, -34.09999, 2.4E-4, 6, 220, -34.09999, 0.01163, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48685, 9, -1.99, -34.09999, 0.31166, 10, -75.99, -34.09999, 0.04663, 11, -149.99, -34.09999, 0.00195, 7, 5, 257, -34.09999, 0.00195, 6, 183, -34.09999, 0.04663, 7, 109, -34.09999, 0.31166, 8, 35, -34.09999, 0.48685, 9, -38.99, -34.09999, 0.14101, 10, -112.99, -34.09999, 0.01163, 11, -186.99, -34.09999, 2.4E-4, 7, 4, 294, -34.09999, 2.4E-4, 5, 220, -34.09999, 0.01163, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48685, 8, -1.99, -34.09999, 0.31166, 9, -75.99, -34.09999, 0.04663, 10, -149.99, -34.09999, 0.00195, 7, 4, 257, -34.09999, 0.00195, 5, 183, -34.09999, 0.04663, 6, 109, -34.09999, 0.31166, 7, 35, -34.09999, 0.48685, 8, -38.99, -34.09999, 0.14101, 9, -112.99, -34.09999, 0.01163, 10, -186.99, -34.09999, 2.4E-4, 7, 3, 294, -34.09999, 2.4E-4, 4, 220, -34.09999, 0.01163, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48685, 7, -1.99, -34.09999, 0.31166, 8, -75.99, -34.09999, 0.04663, 9, -149.99, -34.09999, 0.00195, 7, 3, 257, -34.09999, 0.00195, 4, 183, -34.09999, 0.04663, 5, 109, -34.09999, 0.31166, 6, 35, -34.09999, 0.48685, 7, -38.99, -34.09999, 0.14101, 8, -112.99, -34.09999, 0.01163, 9, -186.99, -34.09999, 2.4E-4, 7, 2, 294, -34.09999, 2.4E-4, 3, 220, -34.09999, 0.01163, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48685, 6, -1.99, -34.09999, 0.31166, 7, -75.99, -34.09999, 0.04663, 8, -149.99, -34.09999, 0.00195, 7, 2, 257, -34.09999, 0.00195, 3, 183, -34.09999, 0.04663, 4, 109, -34.09999, 0.31166, 5, 35, -34.09999, 0.48685, 6, -38.99, -34.09999, 0.14101, 7, -112.99, -34.09999, 0.01163, 8, -186.99, -34.09999, 2.4E-4, 7, 1, 294, -34.09999, 2.4E-4, 2, 220, -34.09999, 0.01163, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48685, 5, -1.99, -34.09999, 0.31166, 6, -75.99, -34.09999, 0.04663, 7, -149.99, -34.09999, 0.00195, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31166, 4, 35, -34.09999, 0.48685, 5, -38.99, -34.09999, 0.14101, 6, -112.99, -34.09999, 0.01163, 7, -186.99, -34.09999, 2.4E-4, 6, 1, 220, -34.09999, 0.01033, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48685, 4, -1.99, -34.09999, 0.31166, 5, -75.99, -34.09999, 0.04663, 6, -149.99, -34.09999, 0.00195, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48685, 4, -38.99, -34.09999, 0.14101, 5, -112.99, -34.09999, 0.01163, 6, -186.99, -34.09999, 2.4E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51233, 3, -1.99, -34.09999, 0.31166, 4, -75.99, -34.09999, 0.04663, 5, -149.99, -34.09999, 0.00195, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54594, 3, -38.99, -34.09999, 0.14101, 4, -112.99, -34.09999, 0.01163, 5, -186.99, -34.09999, 2.4E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39738, 3, -75.99, -34.09999, 0.04663, 4, -149.99, -34.09999, 0.00195, 4, 1, 35, -34.09999, 0.77978, 2, -38.99, -34.09999, 0.20825, 3, -112.99, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.4E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.99, -34.09999, 0.10696, 3, -149.99, -34.09999, 0.00271, 3, 1, -1.99, -0.1, 0.9264, 2, -75.99, -0.1, 0.07272, 3, -149.99, -0.1, 8.6E-4, 3, 1, -1.99, 33.89, 0.89032, 2, -75.99, 33.89, 0.10696, 3, -149.99, 33.89, 0.00271, 4, 1, 35, 33.89, 0.77978, 2, -38.99, 33.89, 0.20825, 3, -112.99, 33.89, 0.01171, 4, -186.99, 33.89, 2.4E-4, 4, 1, 72, 33.89, 0.55403, 2, -1.99, 33.89, 0.39738, 3, -75.99, 33.89, 0.04663, 4, -149.99, 33.89, 0.00195, 5, 1, 109, 33.89, 0.30116, 2, 35, 33.89, 0.54594, 3, -38.99, 33.89, 0.14101, 4, -112.99, 33.89, 0.01163, 5, -186.99, 33.89, 2.4E-4, 5, 1, 146, 33.89, 0.1274, 2, 72, 33.89, 0.51233, 3, -1.99, 33.89, 0.31166, 4, -75.99, 33.89, 0.04663, 5, -149.99, 33.89, 0.00195, 6, 1, 183, 33.89, 0.04058, 2, 109, 33.89, 0.31966, 3, 35, 33.89, 0.48685, 4, -38.99, 33.89, 0.14101, 5, -112.99, 33.89, 0.01163, 6, -186.99, 33.89, 2.4E-4, 6, 1, 220, 33.89, 0.01033, 2, 146, 33.89, 0.14256, 3, 72, 33.89, 0.48685, 4, -1.99, 33.89, 0.31166, 5, -75.99, 33.89, 0.04663, 6, -149.99, 33.89, 0.00195, 7, 1, 257, 33.89, 0.0017, 2, 183, 33.89, 0.04687, 3, 109, 33.89, 0.31166, 4, 35, 33.89, 0.48685, 5, -38.99, 33.89, 0.14101, 6, -112.99, 33.89, 0.01163, 7, -186.99, 33.89, 2.4E-4, 7, 1, 294, 33.89, 2.4E-4, 2, 220, 33.89, 0.01163, 3, 146, 33.89, 0.14101, 4, 72, 33.89, 0.48685, 5, -1.99, 33.89, 0.31166, 6, -75.99, 33.89, 0.04663, 7, -149.99, 33.89, 0.00195, 7, 2, 257, 33.89, 0.00195, 3, 183, 33.89, 0.04663, 4, 109, 33.89, 0.31166, 5, 35, 33.89, 0.48685, 6, -38.99, 33.89, 0.14101, 7, -112.99, 33.89, 0.01163, 8, -186.99, 33.89, 2.4E-4, 7, 2, 294, 33.89, 2.4E-4, 3, 220, 33.89, 0.01163, 4, 146, 33.89, 0.14101, 5, 72, 33.89, 0.48685, 6, -1.99, 33.89, 0.31166, 7, -75.99, 33.89, 0.04663, 8, -149.99, 33.89, 0.00195, 7, 3, 257, 33.89, 0.00195, 4, 183, 33.89, 0.04663, 5, 109, 33.89, 0.31166, 6, 35, 33.89, 0.48685, 7, -38.99, 33.89, 0.14101, 8, -112.99, 33.89, 0.01163, 9, -186.99, 33.89, 2.4E-4, 7, 3, 294, 33.89, 2.4E-4, 4, 220, 33.89, 0.01163, 5, 146, 33.89, 0.14101, 6, 72, 33.89, 0.48685, 7, -1.99, 33.89, 0.31166, 8, -75.99, 33.89, 0.04663, 9, -149.99, 33.89, 0.00195, 7, 4, 257, 33.89, 0.00195, 5, 183, 33.89, 0.04663, 6, 109, 33.89, 0.31166, 7, 35, 33.89, 0.48685, 8, -38.99, 33.89, 0.14101, 9, -112.99, 33.89, 0.01163, 10, -186.99, 33.89, 2.4E-4, 7, 4, 294, 33.89, 2.4E-4, 5, 220, 33.89, 0.01163, 6, 146, 33.89, 0.14101, 7, 72, 33.89, 0.48685, 8, -1.99, 33.89, 0.31166, 9, -75.99, 33.89, 0.04663, 10, -149.99, 33.89, 0.00195, 7, 5, 257, 33.89, 0.00195, 6, 183, 33.89, 0.04663, 7, 109, 33.89, 0.31166, 8, 35, 33.89, 0.48685, 9, -38.99, 33.89, 0.14101, 10, -112.99, 33.89, 0.01163, 11, -186.99, 33.89, 2.4E-4, 7, 5, 294, 33.89, 2.4E-4, 6, 220, 33.89, 0.01163, 7, 146, 33.89, 0.14101, 8, 72, 33.89, 0.48685, 9, -1.99, 33.89, 0.31166, 10, -75.99, 33.89, 0.04663, 11, -149.99, 33.89, 0.00195, 7, 6, 257, 33.89, 0.00195, 7, 183, 33.89, 0.04663, 8, 109, 33.89, 0.31166, 9, 35, 33.89, 0.48685, 10, -38.99, 33.89, 0.14101, 11, -112.99, 33.89, 0.01163, 12, -186.99, 33.89, 2.4E-4, 7, 6, 294, 33.89, 2.4E-4, 7, 220, 33.89, 0.01163, 8, 146, 33.89, 0.14101, 9, 72, 33.89, 0.48685, 10, -1.99, 33.89, 0.31166, 11, -75.99, 33.89, 0.04663, 12, -149.99, 33.89, 0.00195, 7, 7, 257, 33.89, 0.00195, 8, 183, 33.89, 0.04663, 9, 109, 33.89, 0.31166, 10, 35, 33.89, 0.48685, 11, -38.99, 33.89, 0.14101, 12, -112.99, 33.89, 0.01163, 13, -186.99, 33.89, 2.4E-4, 7, 7, 294, 33.89, 2.4E-4, 8, 220, 33.89, 0.01163, 9, 146, 33.89, 0.14101, 10, 72, 33.89, 0.48685, 11, -1.99, 33.89, 0.31166, 12, -75.99, 33.89, 0.04663, 13, -149.99, 33.89, 0.00195, 6, 8, 257, 33.89, 0.00195, 9, 183, 33.89, 0.04663, 10, 109, 33.89, 0.31166, 11, 35, 33.89, 0.48685, 12, -38.99, 33.89, 0.14101, 13, -112.99, 33.89, 0.01188, 6, 8, 294, 33.89, 2.4E-4, 9, 220, 33.89, 0.01163, 10, 146, 33.89, 0.14101, 11, 72, 33.89, 0.48685, 12, -1.99, 33.89, 0.31174, 13, -75.99, 33.89, 0.0485, 5, 9, 257, 33.89, 0.00195, 10, 183, 33.89, 0.04663, 11, 109, 33.89, 0.31166, 12, 35, 33.89, 0.48761, 13, -38.99, 33.89, 0.15212, 5, 9, 294, 33.89, 2.4E-4, 10, 220, 33.89, 0.01163, 11, 146, 33.89, 0.14109, 12, 72, 33.89, 0.49171, 13, -1.99, 33.89, 0.35531, 4, 10, 257, 33.89, 0.00195, 11, 183, 33.89, 0.04739, 12, 109, 33.89, 0.33351, 13, 35, 33.89, 0.61714, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31658, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00542, 11, 146, -0.1, 0.11402, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33273, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03045, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00542, 10, 146, -0.1, 0.11402, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.99, -0.1, 0.0311, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03045, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11402, 13, -112.99, -0.1, 0.00542, 6, 8, 220, -0.1, 0.00542, 9, 146, -0.1, 0.11402, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.99, -0.1, 0.03045, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03045, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11402, 12, -112.99, -0.1, 0.00542, 6, 7, 220, -0.1, 0.00542, 8, 146, -0.1, 0.11402, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.99, -0.1, 0.03045, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03045, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11402, 11, -112.99, -0.1, 0.00542, 6, 6, 220, -0.1, 0.00542, 7, 146, -0.1, 0.11402, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.99, -0.1, 0.03045, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03045, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11402, 10, -112.99, -0.1, 0.00542, 6, 5, 220, -0.1, 0.00542, 6, 146, -0.1, 0.11402, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.99, -0.1, 0.03045, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03045, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11402, 9, -112.99, -0.1, 0.00542, 6, 4, 220, -0.1, 0.00542, 5, 146, -0.1, 0.11402, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.99, -0.1, 0.03045, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03045, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11402, 8, -112.99, -0.1, 0.00542, 6, 3, 220, -0.1, 0.00542, 4, 146, -0.1, 0.11402, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.99, -0.1, 0.03045, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03045, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11402, 7, -112.99, -0.1, 0.00542, 6, 2, 220, -0.1, 0.00542, 3, 146, -0.1, 0.11402, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.99, -0.1, 0.03045, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03045, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11402, 6, -112.99, -0.1, 0.00542, 6, 1, 220, -0.1, 0.00477, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.99, -0.1, 0.03045, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11402, 5, -112.99, -0.1, 0.00542, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.99, -0.1, 0.03045, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11402, 4, -112.99, -0.1, 0.00542, 4, 1, 72, -0.1, 0.55929, 2, -1.99, -0.1, 0.40959, 3, -75.99, -0.1, 0.03045, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81845, 2, -38.99, -0.1, 0.17611, 3, -112.99, -0.1, 0.00542 ], + "vertices": [ 4, 10, 294, 33.88999, 3.1E-4, 11, 220, 33.88999, 0.01648, 12, 146, 33.88999, 0.21525, 13, 72, 33.88999, 0.76791, 3, 11, 220, -0.1, 0.00751, 12, 146, -0.1, 0.16868, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.1E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21525, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00194, 11, 183, -34.09999, 0.04738, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61713, 5, 9, 294, -34.09999, 2.3E-4, 10, 220, -34.09999, 0.01162, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.3553, 5, 9, 257, -34.09999, 0.00194, 10, 183, -34.09999, 0.04662, 11, 109, -34.09999, 0.31165, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.3E-4, 9, 220, -34.09999, 0.01162, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48684, 12, -1.99, -34.09999, 0.31174, 13, -75.98999, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00194, 9, 183, -34.09999, 0.04662, 10, 109, -34.09999, 0.31165, 11, 35, -34.09999, 0.48684, 12, -38.99, -34.09999, 0.14101, 13, -112.98999, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.3E-4, 8, 220, -34.09999, 0.01162, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48684, 11, -1.99, -34.09999, 0.31165, 12, -75.98999, -34.09999, 0.04662, 13, -149.99, -34.09999, 0.00194, 7, 7, 257, -34.09999, 0.00194, 8, 183, -34.09999, 0.04662, 9, 109, -34.09999, 0.31165, 10, 35, -34.09999, 0.48684, 11, -38.99, -34.09999, 0.14101, 12, -112.98999, -34.09999, 0.01162, 13, -186.99, -34.09999, 2.3E-4, 7, 6, 294, -34.09999, 2.3E-4, 7, 220, -34.09999, 0.01162, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48684, 10, -1.99, -34.09999, 0.31165, 11, -75.98999, -34.09999, 0.04662, 12, -149.99, -34.09999, 0.00194, 7, 6, 257, -34.09999, 0.00194, 7, 183, -34.09999, 0.04662, 8, 109, -34.09999, 0.31165, 9, 35, -34.09999, 0.48684, 10, -38.99, -34.09999, 0.14101, 11, -112.98999, -34.09999, 0.01162, 12, -186.99, -34.09999, 2.3E-4, 7, 5, 294, -34.09999, 2.3E-4, 6, 220, -34.09999, 0.01162, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48684, 9, -1.99, -34.09999, 0.31165, 10, -75.98999, -34.09999, 0.04662, 11, -149.99, -34.09999, 0.00194, 7, 5, 257, -34.09999, 0.00194, 6, 183, -34.09999, 0.04662, 7, 109, -34.09999, 0.31165, 8, 35, -34.09999, 0.48684, 9, -38.99, -34.09999, 0.14101, 10, -112.98999, -34.09999, 0.01162, 11, -186.99, -34.09999, 2.3E-4, 7, 4, 294, -34.09999, 2.3E-4, 5, 220, -34.09999, 0.01162, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48684, 8, -1.99, -34.09999, 0.31165, 9, -75.98999, -34.09999, 0.04662, 10, -149.99, -34.09999, 0.00194, 7, 4, 257, -34.09999, 0.00194, 5, 183, -34.09999, 0.04662, 6, 109, -34.09999, 0.31165, 7, 35, -34.09999, 0.48684, 8, -38.99, -34.09999, 0.14101, 9, -112.98999, -34.09999, 0.01162, 10, -186.99, -34.09999, 2.3E-4, 7, 3, 294, -34.09999, 2.3E-4, 4, 220, -34.09999, 0.01162, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48684, 7, -1.99, -34.09999, 0.31165, 8, -75.98999, -34.09999, 0.04662, 9, -149.99, -34.09999, 0.00194, 7, 3, 257, -34.09999, 0.00194, 4, 183, -34.09999, 0.04662, 5, 109, -34.09999, 0.31165, 6, 35, -34.09999, 0.48684, 7, -38.99, -34.09999, 0.14101, 8, -112.98999, -34.09999, 0.01162, 9, -186.99, -34.09999, 2.3E-4, 7, 2, 294, -34.09999, 2.3E-4, 3, 220, -34.09999, 0.01162, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48684, 6, -1.99, -34.09999, 0.31165, 7, -75.98999, -34.09999, 0.04662, 8, -149.99, -34.09999, 0.00194, 7, 2, 257, -34.09999, 0.00194, 3, 183, -34.09999, 0.04662, 4, 109, -34.09999, 0.31165, 5, 35, -34.09999, 0.48684, 6, -38.99, -34.09999, 0.14101, 7, -112.98999, -34.09999, 0.01162, 8, -186.99, -34.09999, 2.3E-4, 7, 1, 294, -34.09999, 2.3E-4, 2, 220, -34.09999, 0.01162, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48684, 5, -1.99, -34.09999, 0.31165, 6, -75.98999, -34.09999, 0.04662, 7, -149.99, -34.09999, 0.00194, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31165, 4, 35, -34.09999, 0.48684, 5, -38.99, -34.09999, 0.14101, 6, -112.98999, -34.09999, 0.01162, 7, -186.99, -34.09999, 2.3E-4, 6, 1, 220, -34.09999, 0.01032, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48684, 4, -1.99, -34.09999, 0.31165, 5, -75.98999, -34.09999, 0.04662, 6, -149.99, -34.09999, 0.00194, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48684, 4, -38.99, -34.09999, 0.14101, 5, -112.98999, -34.09999, 0.01162, 6, -186.99, -34.09999, 2.3E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51232, 3, -1.99, -34.09999, 0.31165, 4, -75.98999, -34.09999, 0.04662, 5, -149.99, -34.09999, 0.00194, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54593, 3, -38.99, -34.09999, 0.14101, 4, -112.98999, -34.09999, 0.01162, 5, -186.99, -34.09999, 2.3E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39737, 3, -75.98999, -34.09999, 0.04662, 4, -149.99, -34.09999, 0.00194, 4, 1, 35, -34.09999, 0.77977, 2, -38.99, -34.09999, 0.20825, 3, -112.98999, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.3E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.98999, -34.09999, 0.10695, 3, -149.99, -34.09999, 0.0027, 3, 1, -1.99, -0.1, 0.9264, 2, -75.98999, -0.1, 0.07271, 3, -149.99, -0.1, 8.5E-4, 3, 1, -1.99, 33.88999, 0.89032, 2, -75.98999, 33.88999, 0.10695, 3, -149.99, 33.88999, 0.0027, 4, 1, 35, 33.88999, 0.77977, 2, -38.99, 33.88999, 0.20825, 3, -112.98999, 33.88999, 0.01171, 4, -186.99, 33.88999, 2.3E-4, 4, 1, 72, 33.88999, 0.55403, 2, -1.99, 33.88999, 0.39737, 3, -75.98999, 33.88999, 0.04662, 4, -149.99, 33.88999, 0.00194, 5, 1, 109, 33.88999, 0.30116, 2, 35, 33.88999, 0.54593, 3, -38.99, 33.88999, 0.14101, 4, -112.98999, 33.88999, 0.01162, 5, -186.99, 33.88999, 2.3E-4, 5, 1, 146, 33.88999, 0.1274, 2, 72, 33.88999, 0.51232, 3, -1.99, 33.88999, 0.31165, 4, -75.98999, 33.88999, 0.04662, 5, -149.99, 33.88999, 0.00194, 6, 1, 183, 33.88999, 0.04058, 2, 109, 33.88999, 0.31966, 3, 35, 33.88999, 0.48684, 4, -38.99, 33.88999, 0.14101, 5, -112.98999, 33.88999, 0.01162, 6, -186.99, 33.88999, 2.3E-4, 6, 1, 220, 33.88999, 0.01032, 2, 146, 33.88999, 0.14256, 3, 72, 33.88999, 0.48684, 4, -1.99, 33.88999, 0.31165, 5, -75.98999, 33.88999, 0.04662, 6, -149.99, 33.88999, 0.00194, 7, 1, 257, 33.88999, 0.0017, 2, 183, 33.88999, 0.04687, 3, 109, 33.88999, 0.31165, 4, 35, 33.88999, 0.48684, 5, -38.99, 33.88999, 0.14101, 6, -112.98999, 33.88999, 0.01162, 7, -186.99, 33.88999, 2.3E-4, 7, 1, 294, 33.88999, 2.3E-4, 2, 220, 33.88999, 0.01162, 3, 146, 33.88999, 0.14101, 4, 72, 33.88999, 0.48684, 5, -1.99, 33.88999, 0.31165, 6, -75.98999, 33.88999, 0.04662, 7, -149.99, 33.88999, 0.00194, 7, 2, 257, 33.88999, 0.00194, 3, 183, 33.88999, 0.04662, 4, 109, 33.88999, 0.31165, 5, 35, 33.88999, 0.48684, 6, -38.99, 33.88999, 0.14101, 7, -112.98999, 33.88999, 0.01162, 8, -186.99, 33.88999, 2.3E-4, 7, 2, 294, 33.88999, 2.3E-4, 3, 220, 33.88999, 0.01162, 4, 146, 33.88999, 0.14101, 5, 72, 33.88999, 0.48684, 6, -1.99, 33.88999, 0.31165, 7, -75.98999, 33.88999, 0.04662, 8, -149.99, 33.88999, 0.00194, 7, 3, 257, 33.88999, 0.00194, 4, 183, 33.88999, 0.04662, 5, 109, 33.88999, 0.31165, 6, 35, 33.88999, 0.48684, 7, -38.99, 33.88999, 0.14101, 8, -112.98999, 33.88999, 0.01162, 9, -186.99, 33.88999, 2.3E-4, 7, 3, 294, 33.88999, 2.3E-4, 4, 220, 33.88999, 0.01162, 5, 146, 33.88999, 0.14101, 6, 72, 33.88999, 0.48684, 7, -1.99, 33.88999, 0.31165, 8, -75.98999, 33.88999, 0.04662, 9, -149.99, 33.88999, 0.00194, 7, 4, 257, 33.88999, 0.00194, 5, 183, 33.88999, 0.04662, 6, 109, 33.88999, 0.31165, 7, 35, 33.88999, 0.48684, 8, -38.99, 33.88999, 0.14101, 9, -112.98999, 33.88999, 0.01162, 10, -186.99, 33.88999, 2.3E-4, 7, 4, 294, 33.88999, 2.3E-4, 5, 220, 33.88999, 0.01162, 6, 146, 33.88999, 0.14101, 7, 72, 33.88999, 0.48684, 8, -1.99, 33.88999, 0.31165, 9, -75.98999, 33.88999, 0.04662, 10, -149.99, 33.88999, 0.00194, 7, 5, 257, 33.88999, 0.00194, 6, 183, 33.88999, 0.04662, 7, 109, 33.88999, 0.31165, 8, 35, 33.88999, 0.48684, 9, -38.99, 33.88999, 0.14101, 10, -112.98999, 33.88999, 0.01162, 11, -186.99, 33.88999, 2.3E-4, 7, 5, 294, 33.88999, 2.3E-4, 6, 220, 33.88999, 0.01162, 7, 146, 33.88999, 0.14101, 8, 72, 33.88999, 0.48684, 9, -1.99, 33.88999, 0.31165, 10, -75.98999, 33.88999, 0.04662, 11, -149.99, 33.88999, 0.00194, 7, 6, 257, 33.88999, 0.00194, 7, 183, 33.88999, 0.04662, 8, 109, 33.88999, 0.31165, 9, 35, 33.88999, 0.48684, 10, -38.99, 33.88999, 0.14101, 11, -112.98999, 33.88999, 0.01162, 12, -186.99, 33.88999, 2.3E-4, 7, 6, 294, 33.88999, 2.3E-4, 7, 220, 33.88999, 0.01162, 8, 146, 33.88999, 0.14101, 9, 72, 33.88999, 0.48684, 10, -1.99, 33.88999, 0.31165, 11, -75.98999, 33.88999, 0.04662, 12, -149.99, 33.88999, 0.00194, 7, 7, 257, 33.88999, 0.00194, 8, 183, 33.88999, 0.04662, 9, 109, 33.88999, 0.31165, 10, 35, 33.88999, 0.48684, 11, -38.99, 33.88999, 0.14101, 12, -112.98999, 33.88999, 0.01162, 13, -186.99, 33.88999, 2.3E-4, 7, 7, 294, 33.88999, 2.3E-4, 8, 220, 33.88999, 0.01162, 9, 146, 33.88999, 0.14101, 10, 72, 33.88999, 0.48684, 11, -1.99, 33.88999, 0.31165, 12, -75.98999, 33.88999, 0.04662, 13, -149.99, 33.88999, 0.00194, 6, 8, 257, 33.88999, 0.00194, 9, 183, 33.88999, 0.04662, 10, 109, 33.88999, 0.31165, 11, 35, 33.88999, 0.48684, 12, -38.99, 33.88999, 0.14101, 13, -112.98999, 33.88999, 0.01188, 6, 8, 294, 33.88999, 2.3E-4, 9, 220, 33.88999, 0.01162, 10, 146, 33.88999, 0.14101, 11, 72, 33.88999, 0.48684, 12, -1.99, 33.88999, 0.31174, 13, -75.98999, 33.88999, 0.0485, 5, 9, 257, 33.88999, 0.00194, 10, 183, 33.88999, 0.04662, 11, 109, 33.88999, 0.31165, 12, 35, 33.88999, 0.48761, 13, -38.99, 33.88999, 0.15212, 5, 9, 294, 33.88999, 2.3E-4, 10, 220, 33.88999, 0.01162, 11, 146, 33.88999, 0.14109, 12, 72, 33.88999, 0.49171, 13, -1.99, 33.88999, 0.3553, 4, 10, 257, 33.88999, 0.00194, 11, 183, 33.88999, 0.04738, 12, 109, 33.88999, 0.33351, 13, 35, 33.88999, 0.61713, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31657, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00541, 11, 146, -0.1, 0.11401, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33272, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03044, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00541, 10, 146, -0.1, 0.11401, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.98999, -0.1, 0.03109, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03044, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11401, 13, -112.98999, -0.1, 0.00541, 6, 8, 220, -0.1, 0.00541, 9, 146, -0.1, 0.11401, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.98999, -0.1, 0.03044, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03044, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11401, 12, -112.98999, -0.1, 0.00541, 6, 7, 220, -0.1, 0.00541, 8, 146, -0.1, 0.11401, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.98999, -0.1, 0.03044, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03044, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11401, 11, -112.98999, -0.1, 0.00541, 6, 6, 220, -0.1, 0.00541, 7, 146, -0.1, 0.11401, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.98999, -0.1, 0.03044, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03044, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11401, 10, -112.98999, -0.1, 0.00541, 6, 5, 220, -0.1, 0.00541, 6, 146, -0.1, 0.11401, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.98999, -0.1, 0.03044, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03044, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11401, 9, -112.98999, -0.1, 0.00541, 6, 4, 220, -0.1, 0.00541, 5, 146, -0.1, 0.11401, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.98999, -0.1, 0.03044, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03044, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11401, 8, -112.98999, -0.1, 0.00541, 6, 3, 220, -0.1, 0.00541, 4, 146, -0.1, 0.11401, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.98999, -0.1, 0.03044, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03044, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11401, 7, -112.98999, -0.1, 0.00541, 6, 2, 220, -0.1, 0.00541, 3, 146, -0.1, 0.11401, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.98999, -0.1, 0.03044, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03044, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11401, 6, -112.98999, -0.1, 0.00541, 6, 1, 220, -0.1, 0.00476, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.98999, -0.1, 0.03044, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11401, 5, -112.98999, -0.1, 0.00541, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.98999, -0.1, 0.03044, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11401, 4, -112.98999, -0.1, 0.00541, 4, 1, 72, -0.1, 0.55928, 2, -1.99, -0.1, 0.40959, 3, -75.98999, -0.1, 0.03044, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81844, 2, -38.99, -0.1, 0.1761, 3, -112.98999, -0.1, 0.00541 ], "hull": 56, "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], "width": 68, @@ -51,7 +59,7 @@ "type": "path", "lengths": [ 223.68, 474.79, 780.31, 992.69, 1196.43, 2277.75 ], "vertexCount": 18, - "vertices": [ 1, 14, -31.64, 22.49, 1, 1, 14, -2.73, -6.56, 1, 1, 14, 56.89, -69, 1, 1, 14, 115.57, 75.01, 1, 1, 14, 198.6, 53.37, 1, 2, 14, 332.76, 19.74, 0.8, 15, 36.41, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.232, 15, -21.1, -68.01999, 0.76799, 1, 15, 96.09, -93.88, 1, 2, 15, 229.75, -122.63, 0.664, 16, -63.18, -122.45, 0.33599, 2, 15, 242.53, 29.31, 0.52, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.42, 47.85, 0.80799, 17, -63.65, 48.41, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.56, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.81, 6.41, 0.784, 1, 17, 138.78, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.02, 1 ] + "vertices": [ 1, 14, -31.63999, 22.48999, 1, 1, 14, -2.73, -6.55999, 1, 1, 14, 56.88999, -69, 1, 1, 14, 115.56999, 75.01, 1, 1, 14, 198.6, 53.36999, 1, 2, 14, 332.76, 19.73999, 0.8, 15, 36.40999, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.23199, 15, -21.1, -68.01999, 0.76798, 1, 15, 96.08999, -93.87999, 1, 2, 15, 229.75, -122.62999, 0.66399, 16, -63.18, -122.44999, 0.33599, 2, 15, 242.52998, 29.30999, 0.51999, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.41998, 47.84999, 0.80799, 17, -63.65, 48.40999, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.55999, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.80999, 6.40999, 0.78399, 1, 17, 138.77998, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.01999, 1 ] } } } @@ -110,7 +118,7 @@ "angle": 5.65, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": 1.35 } + { "time": 7.5999, "angle": 1.35 } ], "scale": [ { @@ -126,7 +134,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.568, 0.99 ] @@ -151,7 +159,7 @@ "angle": -8.18, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.96 } + { "time": 7.5999, "angle": -0.96 } ], "scale": [ { @@ -167,7 +175,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -197,7 +205,7 @@ "angle": -15.24, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.16 } + { "time": 7.5999, "angle": -0.16 } ], "scale": [ { @@ -213,7 +221,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -243,7 +251,7 @@ "angle": 15.02, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.5 } + { "time": 7.5999, "angle": -0.5 } ], "scale": [ { @@ -259,7 +267,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] diff --git a/spine-love/main.lua b/spine-love/main.lua index ef2b2917f..60f1b96a7 100644 --- a/spine-love/main.lua +++ b/spine-love/main.lua @@ -54,17 +54,24 @@ function loadSkeleton (jsonFile, atlasFile, animation, skin, scale, x, y) local state = spine.AnimationState.new(stateData) state:setAnimationByName(0, animation, true) - state.onStart = function (trackIndex) - print(trackIndex.." start: "..state:getCurrent(trackIndex).animation.name) + -- set some event callbacks + state.onStart = function (entry) + print(entry.trackIndex.." start: "..entry.animation.name) end - state.onEnd = function (trackIndex) - print(trackIndex.." end: "..state:getCurrent(trackIndex).animation.name) + state.onInterrupt = function (entry) + print(entry.trackIndex.." interrupt: "..entry.animation.name) end - state.onComplete = function (trackIndex, loopCount) - print(trackIndex.." complete: "..state:getCurrent(trackIndex).animation.name..", "..loopCount) + state.onEnd = function (entry) + print(entry.trackIndex.." end: "..entry.animation.name) end - state.onEvent = function (trackIndex, event) - print(trackIndex.." event: "..state:getCurrent(trackIndex).animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'") + state.onComplete = function (entry) + print(entry.trackIndex.." complete: "..entry.animation.name) + end + state.onDispose = function (entry) + print(entry.trackIndex.." dispose: "..entry.animation.name) + end + state.onEvent = function (entry, event) + print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'") end state:update(0.5) diff --git a/spine-lua/Animation.lua b/spine-lua/Animation.lua index 5d3762be7..891f99e1b 100644 --- a/spine-lua/Animation.lua +++ b/spine-lua/Animation.lua @@ -21,7 +21,7 @@ -- 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 +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS Owelp,F -- 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 @@ -36,6 +36,9 @@ local utils = require "spine-lua.utils" local AttachmentType = require "spine-lua.attachments.AttachmentType" +local math_floor = math.floor +local math_abs = math.abs +local math_signum = utils.signum local function zlen(array) return #array + 1 @@ -51,7 +54,7 @@ function Animation.new (name, timelines, duration) duration = duration } - function self:apply (skeleton, lastTime, time, loop, events) + function self:apply (skeleton, lastTime, time, loop, events, alpha, setupPose, mixingOut) if not skeleton then error("skeleton cannot be nil.", 2) end if loop and duration > 0 then @@ -60,20 +63,7 @@ function Animation.new (name, timelines, duration) end for i,timeline in ipairs(self.timelines) do - timeline:apply(skeleton, lastTime, time, events, 1) - end - end - - function self:mix (skeleton, lastTime, time, loop, events, alpha) - if not skeleton then error("skeleton cannot be nil.", 2) end - - if loop and duration > 0 then - time = time % self.duration - if lastTime > 0 then lastTime = lastTime % self.duration end - end - - for i,timeline in ipairs(self.timelines) do - timeline:apply(skeleton, lastTime, time, events, alpha) + timeline:apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut) end end @@ -95,6 +85,7 @@ local function binarySearch (values, target, step) current = math.floor((low + high) / 2) end end +Animation.binarySearch = binarySearch local function binarySearch1 (values, target) local low = 0 @@ -122,6 +113,16 @@ local function linearSearch (values, target, step) return -1 end +Animation.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 +} +local TimelineType = Animation.TimelineType +local SHL_24 = 16777216 + Animation.CurveTimeline = {} function Animation.CurveTimeline.new (frameCount) local LINEAR = 0 @@ -216,15 +217,23 @@ end Animation.RotateTimeline = {} Animation.RotateTimeline.ENTRIES = 2 +Animation.RotateTimeline.PREV_TIME = -2 +Animation.RotateTimeline.PREV_ROTATION = -1 +Animation.RotateTimeline.ROTATION = 1 function Animation.RotateTimeline.new (frameCount) local ENTRIES = Animation.RotateTimeline.ENTRIES - local PREV_TIME = -2 - local PREV_ROTATION = -1 - local ROTATION = 1 + local PREV_TIME = Animation.RotateTimeline.PREV_TIME + local PREV_ROTATION = Animation.RotateTimeline.PREV_ROTATION + local ROTATION = Animation.RotateTimeline.ROTATION local self = Animation.CurveTimeline.new(frameCount) self.boneIndex = -1 self.frames = utils.newNumberArrayZero(frameCount * 2) + self.type = TimelineType.rotate + + function self:getPropertyId () + return TimelineType.rotate * SHL_24 + self.boneIndex + end function self:setFrame (frameIndex, time, degrees) frameIndex = frameIndex * 2 @@ -232,22 +241,26 @@ function Animation.RotateTimeline.new (frameCount) self.frames[frameIndex + ROTATION] = degrees end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local bone = skeleton.bones[self.boneIndex] + if time < frames[0] then + if setupPose then + bone.rotation = bone.data.rotation + end + return + end if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - local amount = bone.data.rotation + frames[zlen(frames) + PREV_ROTATION] - bone.rotation - while amount > 180 do - amount = amount - 360 + if setupPose then + bone.rotation = bone.data.rotation + frames[zlen(frames) + PREV_ROTATION] * alpha + else + local r = bone.data.rotation + frames[zlen(frames) + PREV_ROTATION] - bone.rotation + r = r - (16384 - math_floor(16384.499999999996 - r / 360)) * 360 -- Wrap within -180 and 180. + bone.rotation = bone.rotation + r * alpha; end - while amount < -180 do - amount = amount + 360 - end - bone.rotation = bone.rotation + amount * alpha - return + return; end -- Interpolate between the last frame and the current frame. @@ -256,21 +269,17 @@ function Animation.RotateTimeline.new (frameCount) local frameTime = frames[frame] local percent = self:getCurvePercent((math.floor(frame / 2)) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - local amount = frames[frame + ROTATION] - prevRotation - while amount > 180 do - amount = amount - 360 + local r = frames[frame + ROTATION] - prevRotation + r = r - (16384 - math_floor(16384.499999999996 - r / 360)) * 360 + r = prevRotation + r * percent + if setupPose then + r = r - (16384 - math_floor(16384.499999999996 - r / 360)) * 360 + bone.rotation = bone.data.rotation + r * alpha + else + r = bone.data.rotation + r - bone.rotation; + r = r - (16384 - math_floor(16384.499999999996 - r / 360)) * 360 + bone.rotation = bone.rotation + r * alpha end - while amount < -180 do - amount = amount + 360 - end - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation - while amount > 180 do - amount = amount - 360 - end - while amount < -180 do - amount = amount + 360 - end - bone.rotation = bone.rotation + amount * alpha end return self @@ -289,6 +298,11 @@ function Animation.TranslateTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.boneIndex = -1 + self.type = TimelineType.translate + + function self:getPropertyId () + return TimelineType.translate * SHL_24 + self.boneIndex + end function self:setFrame (frameIndex, time, x, y) frameIndex = frameIndex * ENTRIES @@ -297,27 +311,42 @@ function Animation.TranslateTimeline.new (frameCount) self.frames[frameIndex + Y] = y end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local bone = skeleton.bones[self.boneIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - bone.x = bone.x + (bone.data.x + frames[zlen(frames) + PREV_X] - bone.x) * alpha - bone.y = bone.y + (bone.data.y + frames[zlen(frames) + PREV_Y] - bone.y) * alpha + if time < frames[0] then + if (setupPose) then + bone.x = bone.data.x + bone.y = bone.data.y + end return end - -- Interpolate between the last frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local prevX = frames[frame + PREV_X] - local prevY = frames[frame + PREV_Y] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) + local x = 0 + local y = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- // Time is after last frame. + x = frames[zlen(frames) + PREV_X]; + y = frames[zlen(frames) + PREV_Y]; + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + x = frames[frame + PREV_X] + y = frames[frame + PREV_Y] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - bone.x = bone.x + (bone.data.x + prevX + (frames[frame + X] - prevX) * percent - bone.x) * alpha - bone.y = bone.y + (bone.data.y + prevY + (frames[frame + Y] - prevY) * percent - bone.y) * alpha + x = x + (frames[frame + X] - x) * percent + y = y + (frames[frame + Y] - y) * percent + end + if setupPose then + bone.x = bone.data.x + x * alpha + bone.y = bone.data.y + y * alpha + else + bone.x = bone.x + (bone.data.x + x - bone.x) * alpha + bone.y = bone.y + (bone.data.y + y - bone.y) * alpha + end end return self @@ -334,29 +363,65 @@ function Animation.ScaleTimeline.new (frameCount) local Y = 2 local self = Animation.TranslateTimeline.new(frameCount) + self.type = TimelineType.scale + + function self:getPropertyId () + return TimelineType.scale * SHL_24 + self.boneIndex + end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local bone = skeleton.bones[self.boneIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - bone.scaleX = bone.scaleX + (bone.data.scaleX * frames[zlen(frames) + PREV_X] - bone.scaleX) * alpha - bone.scaleY = bone.scaleY + (bone.data.scaleY * frames[zlen(frames) + PREV_Y] - bone.scaleY) * alpha + if time < frames[0] then + if setupPose then + bone.scaleX = bone.data.scaleX + bone.scaleY = bone.data.scaleY + end return end - -- Interpolate between the last frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local prevX = frames[frame + PREV_X] - local prevY = frames[frame + PREV_Y] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, + local x = 0 + local y = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. + x = frames[zlen(frames) + PREV_X] * bone.data.scaleX + y = frames[zlen(frames) + PREV_Y] * bone.data.scaleY + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + x = frames[frame + PREV_X] + y = frames[frame + PREV_Y] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - bone.scaleX = bone.scaleX + (bone.data.scaleX * (prevX + (frames[frame + X] - prevX) * percent) - bone.scaleX) * alpha - bone.scaleY = bone.scaleY + (bone.data.scaleY * (prevY + (frames[frame + Y] - prevY) * percent) - bone.scaleY) * alpha + x = (x + (frames[frame + X] - x) * percent) * bone.data.scaleX + y = (y + (frames[frame + Y] - y) * percent) * bone.data.scaleY + end + if alpha == 1 then + bone.scaleX = x + bone.scaleY = y + else + local bx = 0 + local by = 0 + if setupPose then + bx = bone.data.scaleX + by = bone.data.scaleY + else + bx = bone.scaleX + by = bone.scaleY + end + -- Mixing out uses sign of setup or current pose, else use sign of key. + if mixingOut then + x = math_abs(x) * math_signum(bx) + y = math_abs(y) * math_signum(by) + else + bx = math_abs(bx) * math_signum(x) + by = math_abs(by) * math_signum(y) + end + bone.scaleX = bx + (x - bx) * alpha + bone.scaleY = by + (y - by) * alpha + end end return self @@ -373,29 +438,48 @@ function Animation.ShearTimeline.new (frameCount) local Y = 2 local self = Animation.TranslateTimeline.new(frameCount) + self.type = TimelineType.shear + + function self:getPropertyId () + return TimelineType.shear * SHL_24 + self.boneIndex + end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local bone = skeleton.bones[self.boneIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - bone.shearX = bone.shearX + (bone.data.shearX * frames[zlen(frames) + PREV_X] - bone.shearX) * alpha - bone.shearY = bone.shearY + (bone.data.shearY * frames[zlen(frames) + PREV_Y] - bone.shearY) * alpha + if time < frames[0] then + if setupPose then + bone.shearX = bone.data.shearX + bone.shearY = bone.data.shearY + end return end - -- Interpolate between the last frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local prevX = frames[frame + PREV_X] - local prevY = frames[frame + PREV_Y] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, + local x = 0 + local y = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- // Time is after last frame. + x = frames[zlen(frames) + PREV_X] + y = frames[zlen(frames) + PREV_Y] + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + x = frames[frame + PREV_X] + y = frames[frame + PREV_Y] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - bone.shearX = bone.shearX + (bone.data.shearX + (prevX + (frames[frame + X] - prevX) * percent) - bone.shearX) * alpha - bone.shearY = bone.shearY + (bone.data.shearY + (prevY + (frames[frame + Y] - prevY) * percent) - bone.shearY) * alpha + x = x + (frames[frame + X] - x) * percent + y = y + (frames[frame + Y] - y) * percent + end + if setupPose then + bone.shearX = bone.data.shearX + x * alpha + bone.shearY = bone.data.shearY + y * alpha + else + bone.shearX = bone.shearX + (bone.data.shearX + x - bone.shearX) * alpha + bone.shearY = bone.shearY + (bone.data.shearY + y - bone.shearY) * alpha + end end return self @@ -418,6 +502,11 @@ function Animation.ColorTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.slotIndex = -1 + self.type = TimelineType.color + + function self:getPropertyId () + return TimelineType.color * SHL_24 + self.slotIndex + end function self:setFrame (frameIndex, time, r, g, b, a) frameIndex = frameIndex * ENTRIES @@ -428,9 +517,15 @@ function Animation.ColorTimeline.new (frameCount) self.frames[frameIndex + A] = a end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. + local slot = skeleton.slots[self.slotIndex] + if time < frames[0] then + if setupPose then + slot.color:setFrom(slot.data.color) + end + return + end local r, g, b, a if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. @@ -455,11 +550,12 @@ function Animation.ColorTimeline.new (frameCount) b = b + (frames[frame + B] - b) * percent a = a + (frames[frame + A] - a) * percent end - local color = skeleton.slots[self.slotIndex].color - if alpha < 1 then - color:add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha) + if alpha == 1 then + slot.color:set(r, g, b, a) else - color:set(r, g, b, a) + local color = slot.color + if setupPose then color.setFrom(slot.data.color) end + color:add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha) end end @@ -471,7 +567,8 @@ function Animation.AttachmentTimeline.new (frameCount) local self = { frames = utils.newNumberArrayZero(frameCount), -- time, ... attachmentNames = {}, - slotName = nil + slotIndex = -1, + type = TimelineType.attachment } function self:getFrameCount () @@ -482,10 +579,36 @@ function Animation.AttachmentTimeline.new (frameCount) self.frames[frameIndex] = time self.attachmentNames[frameIndex] = attachmentName end + + function self:getPropertyId () + return Timeline.attachment * SHL_24 + self.slotIndex + end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) + local slot = skeleton.slots[self.slotIndex] + local attachmentName + if mixingOut and setupPose then + attachmentName = slot.data.attachmentName + if not attachmentName then + slot:setAttachment(nil) + else + skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) + end + return; + end + local frames = self.frames - if time < frames[0] then return end + if time < frames[0] then + if setupPose then + attachmentName = slot.data.attachmentName + if not attachmentName then + slot:setAttachment(nil) + else + skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) + end + end + return + end local frameIndex = 0 if time >= frames[zlen(frames) - 1] then @@ -494,16 +617,141 @@ function Animation.AttachmentTimeline.new (frameCount) frameIndex = binarySearch(frames, time, 1) - 1 end - local attachmentName = self.attachmentNames[frameIndex] - local slot = skeleton.slotsByName[self.slotName] - if attachmentName then - if not slot.attachment then - slot:setAttachment(skeleton:getAttachment(self.slotName, attachmentName)) - elseif slot.attachment.name ~= attachmentName then - slot:setAttachment(skeleton:getAttachment(self.slotName, attachmentName)) + attachmentName = self.attachmentNames[frameIndex] + if not attachmentName then + skeleton.slots[self.slotIndex]:setAttachment(nil) + else + skeleton.slots[self.slotIndex]:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) + end + end + + return self +end + +Animation.DeformTimeline = {} +function Animation.DeformTimeline.new (frameCount) + local self = Animation.CurveTimeline.new(frameCount) + self.frames = utils.newNumberArrayZero(frameCount) + self.frameVertices = utils.newNumberArrayZero(frameCount) + self.slotIndex = -1 + self.attachment = nil + self.type = TimelineType.deform + + function self:getPropertyId () + return TimelineType.deform * SHL_24 + self.slotIndex + end + + function self:setFrame (frameIndex, time, vertices) + self.frames[frameIndex] = time + self.frameVertices[frameIndex] = vertices + end + + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) + local slot = skeleton.slots[self.slotIndex] + local slotAttachment = slot.attachment + if not slotAttachment then return end + if not (slotAttachment.type == AttachmentType.mesh or slotAttachment.type == AttachmentType.linkedmesh or slotAttachment.type == AttachmentType.path or slotAttachment.type == AttachmentType.boundingbox) then return end + if not slotAttachment:applyDeform(self.attachment) then return end + + local frames = self.frames + local verticesArray = slot.attachmentVertices + if time < frames[0] then + if setupPose then + verticesArray = {} + slot.attachmentVertices = verticesArray + end + return + end + + local frameVertices = self.frameVertices + local vertexCount = #(frameVertices[0]) + + if (#verticesArray ~= vertexCount) 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. + local lastVertices = frameVertices[zlen(frames) - 1] + if alpha == 1 then + -- Vertex positions or deform offsets, no alpha. + local i = 1 + while i <= vertexCount do + vertices[i] = lastVertices[i] + i = i + 1 + end + elseif setupPose then + local vertexAttachment = slotAttachment + if vertexAttachment.bones == nil then + -- Unweighted vertex positions, with alpha. + local setupVertices = vertexAttachment.vertices + local i = 1 + while i <= vertexCount do + local setup = setupVertices[i] + vertices[i] = setup + (lastVertices[i] - setup) * alpha + i = i + 1 + end + else + -- Weighted deform offsets, with alpha. + local i = 1 + while i <= vertexCount do + vertices[i] = lastVertices[i] * alpha + i = i + 1 + end + end + else + -- Vertex positions or deform offsets, with alpha. + local i = 1 + while i <= vertexCount do + vertices[i] = vertices[i] + (lastVertices[i] - vertices[i]) * alpha + i = i + 1 + end + end + return; + end + + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, 1) + local prevVertices = frameVertices[frame - 1] + local nextVertices = frameVertices[frame] + local frameTime = frames[frame] + local percent = self:getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)) + + if alpha == 1 then + -- Vertex positions or deform offsets, no alpha. + local i = 1 + while i <= vertexCount do + local prev = prevVertices[i] + vertices[i] = prev + (nextVertices[i] - prev) * percent + i = i + 1 + end + elseif setupPose then + local vertexAttachment = slotAttachment + if vertexAttachment.bones == nil then + -- Unweighted vertex positions, with alpha. + local setupVertices = vertexAttachment.vertices + local i = 1 + while i <= vertexCount do + local prev = prevVertices[i] + local setup = setupVertices[i] + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha + i = i + 1 + end + else + -- Weighted deform offsets, with alpha. + local i = 1 + while i <= vertexCount do + local prev = prevVertices[i] + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha + i = i + 1 + end end else - slot:setAttachment(nil) + -- Vertex positions or deform offsets, with alpha. + local i = 1 + while i <= vertexCount do + local prev = prevVertices[i] + vertices[i] = vertices[i] + (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha + i = i + 1 + end end end @@ -514,8 +762,13 @@ Animation.EventTimeline = {} function Animation.EventTimeline.new (frameCount) local self = { frames = utils.newNumberArrayZero(frameCount), - events = {} + events = {}, + type = TimelineType.event } + + function self:getPropertyId () + return Timeline.event * SHL_24 + end function self:getFrameCount () return zlen(self.frames) @@ -527,14 +780,14 @@ function Animation.EventTimeline.new (frameCount) end -- Fires events for frames > lastTime and <= time. - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) if not firedEvents then return end local frames = self.frames local frameCount = zlen(frames) if lastTime > time then -- Fire events after last time for looped animations. - self:apply(skeleton, lastTime, 999999, firedEvents, alpha) + self:apply(skeleton, lastTime, 999999, firedEvents, alpha, setupPose, mixingOut) lastTime = -1 elseif lastTime >= frames[frameCount - 1] then -- Last time is after last frame. return @@ -566,8 +819,13 @@ Animation.DrawOrderTimeline = {} function Animation.DrawOrderTimeline.new (frameCount) local self = { frames = utils.newNumberArrayZero(frameCount), - drawOrders = {} + drawOrders = {}, + type = TimelineType.drawOrder } + + function self:getPropertyId () + return Timeline.drawOrder * SHL_24 + end function self:getFrameCount () return zlen(self.frames) @@ -578,9 +836,24 @@ function Animation.DrawOrderTimeline.new (frameCount) self.drawOrders[frameIndex] = drawOrder end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) + local drawOrder = skeleton.drawOrder + local slots = skeleton.slots + if mixingOut and setupPose then + for i,slot in ipairs(slots) do + drawOrder[i] = slots[i] + end + return; + end local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. + if time < frames[0] then + if setupPose then + for i,slot in ipairs(slots) do + drawOrder[i] = slots[i] + end + end + return + end local frame if time >= frames[zlen(frames) - 1] then -- Time is after last frame. @@ -589,8 +862,6 @@ function Animation.DrawOrderTimeline.new (frameCount) frame = binarySearch1(frames, time) - 1 end - local drawOrder = skeleton.drawOrder - local slots = skeleton.slots local drawOrderToSetupIndex = self.drawOrders[frame] if not drawOrderToSetupIndex then for i,slot in ipairs(slots) do @@ -606,81 +877,6 @@ function Animation.DrawOrderTimeline.new (frameCount) return self end -Animation.DeformTimeline = {} -function Animation.DeformTimeline.new (frameCount) - local self = Animation.CurveTimeline.new(frameCount) - self.frames = utils.newNumberArrayZero(frameCount) - self.frameVertices = utils.newNumberArrayZero(frameCount) - self.slotIndex = -1 - self.attachment = nil - - function self:setFrame (frameIndex, time, vertices) - self.frames[frameIndex] = time - self.frameVertices[frameIndex] = vertices - end - - function self:apply (skeleton, lastTime, time, firedEvents, alpha) - local slot = skeleton.slots[self.slotIndex] - local slotAttachment = slot.attachment - if not slotAttachment then return end - if not (slotAttachment.type == AttachmentType.mesh or slotAttachment.type == AttachmentType.linkedmesh or slotAttachment.type == AttachmentType.path) then return end - if not slotAttachment:applyDeform(self.attachment) then return end - - local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. - - local frameVertices = self.frameVertices - local vertexCount = #(frameVertices[0]) - - local verticesArray = slot.attachmentVertices - if (#verticesArray ~= vertexCount) then alpha = 1 end -- Don't mix from uninitialized slot vertices. - local vertices = utils.setArraySize(verticesArray, vertexCount) - - if time >= frames[zlen(frames) - 1] then - local lastVertices = frameVertices[zlen(frames) - 1] - if alpha < 1 then - local i = 1 - while i <= vertexCount do - vertices[i] = vertices[i] + (lastVertices[i] - vertices[i]) * alpha - i = i + 1 - end - else - local i = 1 - while i <= vertexCount do - vertices[i] = lastVertices[i] - i = i + 1 - end - end - return; - end - - -- Interpolate between the previous frame and the current frame. - local frame = binarySearch(frames, time, 1) - local prevVertices = frameVertices[frame - 1] - local nextVertices = frameVertices[frame] - local frameTime = frames[frame] - local percent = self:getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)) - - if alpha < 1 then - local i = 1 - while i <= vertexCount do - local prev = prevVertices[i] - vertices[i] = vertices[i] + (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha - i = i + 1 - end - else - local i = 1 - while i <= vertexCount do - local prev = prevVertices[i] - vertices[i] = prev + (nextVertices[i] - prev) * percent - i = i + 1 - end - end - end - - return self -end - Animation.IkConstraintTimeline = {} Animation.IkConstraintTimeline.ENTRIES = 3 function Animation.IkConstraintTimeline.new (frameCount) @@ -694,6 +890,11 @@ function Animation.IkConstraintTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) -- time, mix, bendDirection, ... self.ikConstraintIndex = -1 + self.type = TimelineType.ikConstraint + + function self:getPropertyId () + return TimelineType.ikConstraint * SHL_24 + self.ikConstraintIndex + end function self:setFrame (frameIndex, time, mix, bendDirection) frameIndex = frameIndex * ENTRIES @@ -702,15 +903,30 @@ function Animation.IkConstraintTimeline.new (frameCount) self.frames[frameIndex + BEND_DIRECTION] = bendDirection end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local constraint = skeleton.ikConstraints[self.ikConstraintIndex] + if time < frames[0] then + if setupPose then + constraint.mix = constraint.data.mix + constraint.bendDirection = constraint.data.bendDirection + end + return + end if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - constraint.mix = constraint.mix + (frames[zlen(frames) + PREV_MIX] - constraint.mix) * alpha - constraint.bendDirection = frames[zlen(frames) + PREV_BEND_DIRECTION] + if setupPose then + constraint.mix = constraint.data.mix + (frames[zlen(frames) + PREV_MIX] - constraint.data.mix) * alpha + if mixingOut then + constraint.bendDirection = constraint.data.bendDirection + else + constraint.bendDirection = math_floor(frames[zlen(frames) + PREV_BEND_DIRECTION]); + end + else + constraint.mix = constraint.mix + (frames[frames.length + PREV_MIX] - constraint.mix) * alpha; + if not mixingOut then constraint.bendDirection = math_floor(frames[zlen(frames) + PREV_BEND_DIRECTION]) end + end return end @@ -721,8 +937,17 @@ function Animation.IkConstraintTimeline.new (frameCount) local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - constraint.mix = constraint.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha - constraint.bendDirection = math.floor(frames[frame + PREV_BEND_DIRECTION]) + if setupPose then + constraint.mix = constraint.data.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.data.mix) * alpha + if mixingOut then + constraint.bendDirection = constraint.data.bendDirection + else + constraint.bendDirection = math_floor(frames[frame + PREV_BEND_DIRECTION]) + end + else + constraint.mix = constraint.mix + (mix + (frames[frame + MIX] - mix) * percent - constraint.mix) * alpha; + if not mixingOut then constraint.bendDirection = math_floor(frames[frame + PREV_BEND_DIRECTION]) end + end end return self @@ -745,6 +970,11 @@ function Animation.TransformConstraintTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.transformConstraintIndex = -1 + self.type = TimelineType.transformConstraint + + function self:getPropertyId () + return TimelineType.transformConstraint * SHL_24 + self.transformConstraintIndex + end function self:setFrame (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) frameIndex = frameIndex * ENTRIES @@ -755,34 +985,59 @@ function Animation.TransformConstraintTimeline.new (frameCount) self.frames[frameIndex + SHEAR] = shearMix end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if time < frames[0] then return end -- Time is before first frame. local constraint = skeleton.transformConstraints[self.transformConstraintIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - local i = zlen(frames) - constraint.rotateMix = constraintMix.rotateMix + (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha - constraint.translateMix = constraintMix.translateMix + (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha - constraint.scaleMix = constraintMix.scaleMix + (frames[i + PREV_SCALE] - constraint.scaleMix) * alpha - constraint.shearMix = constraintMix.shearMix + (frames[i + PREV_SHEAR] - constraint.shearMix) * alpha + if time < frames[0] then + if setupPose then + local data = constraint.data + constraint.rotateMix = data.rotateMix + constraint.translateMix = data.translateMix + constraint.scaleMix = data.scaleMix + constraint.shearMix = data.shearMix + end return end - -- Interpolate between the last frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) + local rotate = 0 + local translate = 0 + local scale = 0 + local shear = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. + local i = zlen(frames.length) + rotate = frames[i + PREV_ROTATE] + translate = frames[i + PREV_TRANSLATE] + scale = frames[i + PREV_SCALE] + shear = frames[i + PREV_SHEAR] + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + rotate = frames[frame + PREV_ROTATE] + translate = frames[frame + PREV_TRANSLATE] + scale = frames[frame + PREV_SCALE] + shear = frames[frame + PREV_SHEAR] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)); - local rotate = frames[frame + PREV_ROTATE] - local translate = frames[frame + PREV_TRANSLATE] - local scale = frames[frame + PREV_SCALE] - local shear = frames[frame + PREV_SHEAR] - constraint.rotateMix = constraint.rotateMix + (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha - constraint.translateMix = constraint.translateMix + (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) * alpha - constraint.scaleMix = constraint.scaleMix + (scale + (frames[frame + SCALE] - scale) * percent - constraint.scaleMix) * alpha - constraint.shearMix = constraint.shearMix + (shear + (frames[frame + SHEAR] - shear) * percent - constraint.shearMix) * alpha + rotate = rotate + (frames[frame + ROTATE] - rotate) * percent + translate = translate + (frames[frame + TRANSLATE] - translate) * percent + scale = scale + (frames[frame + SCALE] - scale) * percent + shear = shear + (frames[frame + SHEAR] - shear) * percent + end + if setupPose then + local 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 = constraint.rotateMix + (rotate - constraint.rotateMix) * alpha + constraint.translateMix = constraint.translateMix + (translate - constraint.translateMix) * alpha + constraint.scaleMix = constraint.scaleMix + (scale - constraint.scaleMix) * alpha + constraint.shearMix = constraint.shearMix + (shear - constraint.shearMix) * alpha + end end return self @@ -799,6 +1054,11 @@ function Animation.PathConstraintPositionTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.pathConstraintIndex = -1 + self.type = TimelineType.pathConstraintPosition + + function self:getPropertyId () + return TimelineType.pathConstraintPosition * SHL_24 + self.pathConstraintIndex + end function self:setFrame (frameIndex, time, value) frameIndex = frameIndex * ENTRIES @@ -806,25 +1066,35 @@ function Animation.PathConstraintPositionTimeline.new (frameCount) self.frames[frameIndex + VALUE] = value end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if (time < frames[0]) then return end -- Time is before first frame. local constraint = skeleton.pathConstraints[self.pathConstraintIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - local i = zlen(frames) - constraint.position = constraint.position + (frames[i + PREV_VALUE] - constraint.position) * alpha + if (time < frames[0]) then + if setupPose then + constraint.position = constraint.data.position + end return end - -- Interpolate between the previous frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local position = frames[frame + PREV_VALUE] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) + local position = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. + position = frames[zlen(frames) + PREV_VALUE] + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + position = frames[frame + PREV_VALUE] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - constraint.position = constraint.position + (position + (frames[frame + VALUE] - position) * percent - constraint.position) * alpha + position = position + (frames[frame + VALUE] - position) * percent + end + if setupPose then + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha + else + constraint.position = constraint.position + (position - constraint.position) * alpha + end end return self @@ -841,6 +1111,11 @@ function Animation.PathConstraintSpacingTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.pathConstraintIndex = -1 + self.type = TimelineType.pathConstraintSpacing + + function self:getPropertyId () + return TimelineType.pathConstraintSpacing * SHL_24 + self.pathConstraintIndex + end function self:setFrame (frameIndex, time, value) frameIndex = frameIndex * ENTRIES @@ -848,25 +1123,36 @@ function Animation.PathConstraintSpacingTimeline.new (frameCount) self.frames[frameIndex + VALUE] = value end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if (time < frames[0]) then return end -- Time is before first frame. local constraint = skeleton.pathConstraints[self.pathConstraintIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - local i = zlen(frames) - constraint.spacing = constraint.spacing + (frames[i + PREV_VALUE] - constraint.spacing) * alpha + if (time < frames[0]) then + if setupPose then + constraint.spacing = constraint.data.spacing + end return end - -- Interpolate between the previous frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local spacing = frames[frame + PREV_VALUE] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) + local spacing = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. + spacing = frames[zlen(frames) + PREV_VALUE] + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + spacing = frames[frame + PREV_VALUE] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - constraint.spacing = constraint.spacing + (spacing + (frames[frame + VALUE] - spacing) * percent - constraint.spacing) * alpha + spacing = spacing + (frames[frame + VALUE] - spacing) * percent + end + + if setupPose then + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha + else + constraint.spacing = constraint.spacing + (spacing - constraint.spacing) * alpha + end end return self @@ -885,6 +1171,11 @@ function Animation.PathConstraintMixTimeline.new (frameCount) local self = Animation.CurveTimeline.new(frameCount) self.frames = utils.newNumberArrayZero(frameCount * ENTRIES) self.pathConstraintIndex = -1 + self.type = TimelineType.pathConstraintMix + + function self:getPropertyId () + return TimelineType.pathConstraintMix * SHL_24 + self.pathConstraintIndex + end function self:setFrame (frameIndex, time, rotateMix, translateMix) frameIndex = frameIndex * ENTRIES @@ -893,28 +1184,43 @@ function Animation.PathConstraintMixTimeline.new (frameCount) self.frames[frameIndex + TRANSLATE] = translateMix end - function self:apply (skeleton, lastTime, time, firedEvents, alpha) + function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) local frames = self.frames - if (time < frames[0]) then return end -- Time is before first frame. local constraint = skeleton.pathConstraints[self.pathConstraintIndex] - - if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. - local i = zlen(frames) - constraint.rotateMix = constraint.rotateMix + (frames[i + PREV_ROTATE] - constraint.rotateMix) * alpha - constraint.translateMix = constraint.translateMix + (frames[i + PREV_TRANSLATE] - constraint.translateMix) * alpha + if (time < frames[0]) then + if setupPose then + constraint.rotateMix = constraint.data.rotateMix + constraint.translateMix = constraint.data.translateMix + end return end - -- Interpolate between the previous frame and the current frame. - local frame = binarySearch(frames, time, ENTRIES) - local rotate = frames[frame + PREV_ROTATE] - local translate = frames[frame + PREV_TRANSLATE] - local frameTime = frames[frame] - local percent = self:getCurvePercent(math.floor(frame / ENTRIES) - 1, 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) + local rotate = 0 + local translate = 0 + if time >= frames[zlen(frames) - ENTRIES] then -- Time is after last frame. + rotate = frames[zlen(frames) + PREV_ROTATE] + translate = frames[zlen(frames) + PREV_TRANSLATE] + else + -- Interpolate between the previous frame and the current frame. + local frame = binarySearch(frames, time, ENTRIES) + rotate = frames[frame + PREV_ROTATE] + translate = frames[frame + PREV_TRANSLATE] + local frameTime = frames[frame] + local percent = self:getCurvePercent(math_floor(frame / ENTRIES) - 1, + 1 - (time - frameTime) / (frames[frame + PREV_TIME] - frameTime)) - constraint.rotateMix = constraint.rotateMix + (rotate + (frames[frame + ROTATE] - rotate) * percent - constraint.rotateMix) * alpha - constraint.translateMix = constraint.translateMix + (translate + (frames[frame + TRANSLATE] - translate) * percent - constraint.translateMix) * alpha + rotate = rotate + (frames[frame + ROTATE] - rotate) * percent + translate = translate + (frames[frame + TRANSLATE] - translate) * percent + end + + if setupPose then + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha + else + constraint.rotateMix = constraint.rotateMix + (rotate - constraint.rotateMix) * alpha + constraint.translateMix = constraint.translateMix + (translate - constraint.translateMix) * alpha + end end return self diff --git a/spine-lua/AnimationState.lua b/spine-lua/AnimationState.lua index 292f31310..9bebe3fc8 100644 --- a/spine-lua/AnimationState.lua +++ b/spine-lua/AnimationState.lua @@ -28,7 +28,167 @@ -- POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- +local setmetatable = setmetatable +local table_insert = table.insert +local utils = require "spine-lua.utils" +local Animation = require "spine-lua.Animation" +local AnimationStateData = require "spine-lua.AnimationStateData" +local math_min = math.min +local math_abs = math.abs +local math_signum = utils.signum +local math_floor = math.floor +local math_ceil = math.ceil + +local function zlen(array) + return #array + 1 +end + +local EMPTY_ANIMATION = Animation.new("", {}, 0) + +local EventType = { + start = 0, + interrupt = 1, + _end = 2, + dispose = 3, + complete = 4, + event = 5 +} + +local EventQueue = {} +EventQueue.__index = EventQueue + +function EventQueue.new (animationState) + local self = { + objects = {}, + animationState = animationState, + drainDisabled = false + } + setmetatable(self, EventQueue) + return self +end + +function EventQueue:start (entry) + local objects = self.objects + table_insert(objects, EventType.start) + table_insert(objects, entry) + self.animationState.animationsChanged = true +end + +function EventQueue:interrupt (entry) + local objects = self.objects + table_insert(objects, EventType.interrupt) + table_insert(objects, entry) +end + +function EventQueue:_end (entry) + local objects = self.objects + table_insert(objects, EventType._end) + table_insert(objects, entry) + self.animationState.animationsChanged = true +end + +function EventQueue:dispose (entry) + local objects = self.objects + table_insert(objects, EventType.dispose) + table_insert(objects, entry) +end + +function EventQueue:complete (entry) + local objects = self.objects + table_insert(objects, EventType.complete) + table_insert(objects, entry) +end + +function EventQueue:event (entry, event) + local objects = self.objects + table_insert(objects, EventType.event) + table_insert(objects, entry) + table_insert(objects, event) +end + +function EventQueue:drain () + if self.drainDisabled then return end -- Not reentrant. + self.drainDisabled = true + + local objects = self.objects + local as = self.animationState + local i = 1 + local n = #objects + while i <= n do + local _type = objects[i] + local entry = objects[i + 1] + if _type == EventType.start then + if entry.onStart then entry.onStart(entry) end + if as.onStart then as.onStart(entry) end + elseif _type == EventType.interrupt then + if entry.onInterrupt then entry.onInterrupt(entry) end + if as.onInterrupt then as.onInterrupt(entry) end + elseif _type == EventType._end then + if entry.onEnd then entry.onEnd(entry) end + if as.onEnd then as.onEnd(entry) end + -- fall through in ref impl + if entry.onDispose then entry.onDispose(entry) end + if as.onDispose then as.onDispose(entry) end + elseif _type == EventType._dispose then + if entry.onDispose then entry.onDispose(entry) end + if as.onDispose then as.onDispose(entry) end + elseif _type == EventType.complete then + if entry.onComplete then entry.onComplete(entry) end + if as.onComplete then as.onComplete(entry) end + elseif _type == EventType.event then + local event = objects[i + 2] + if entry.onEvent then entry.onEvent(entry, event) end + if as.onEvent then as.onEvent(entry, event) end + i = i + 1 + end + i = i + 2 + end + self:clear() + + self.drainDisabled = false; +end + +function EventQueue:clear () + self.objects = {} +end + + +local TrackEntry = {} +TrackEntry.__index = TrackEntry + +function TrackEntry.new () + local self = { + animation = nil, + next = nil, mixingFrom = nil, + onStart = nil, onInterrupt = nil, onEnd = nil, onDispose = nil, onComplete = nil, onEvent = nil, + trackIndex = 0, + loop = false, + eventThreshold = 0, attachmentThreshold = 0, drawOrderThreshold = 0, + animationStart = 0, animationEnd = 0, animationLast = 0, nextAnimationLast = 0, + delay = 0, trackTime = 0, trackLast = 0, nextTrackLast = 0, trackEnd = 0, timeScale = 0, + alpha = 0, mixTime = 0, mixDuration = 0, mixAlpha = 0, + timelinesFirst = {}, + timelinesRotation = {} + } + setmetatable(self, TrackEntry) + return self +end + +function TrackEntry:getAnimationTime () + if self.loop then + local duration = self.animationEnd - self.animationStart + if duration == 0 then return self.animationStart end + return (self.trackTime % duration) + self.animationStart + end + return math_min(self.trackTime + self.animationStart, self.animationEnd) +end + +function TrackEntry:resetRotationDirections () + self.timelinesRotation = {} +end + local AnimationState = {} +AnimationState.__index = AnimationState function AnimationState.new (data) if not data then error("data cannot be nil", 2) end @@ -36,216 +196,590 @@ function AnimationState.new (data) local self = { data = data, tracks = {}, - trackCount = 0, events = {}, - onStart = nil, onEnd = nil, onComplete = nil, onEvent = nil, + onStart = nil, onInterrupt = nil, onEnd = nil, onDispose = nil, onComplete = nil, onEvent = nil, + queue = nil, + propertyIDs = {}, + animationsChanged = false, timeScale = 1 } - - local function setCurrent (index, entry) - local current = self.tracks[index] - if current then - local previous = current.previous - current.previous = nil - - if current.onEnd then current.onEnd(index) end - if self.onEnd then self.onEnd(index) end - - entry.mixDuration = self.data:getMix(current.animation.name, entry.animation.name) - if entry.mixDuration > 0 then - entry.mixTime = 0 - -- If a mix is in progress, mix from the closest animation. - if previous and current.mixTime / current.mixDuration < 0.5 then - entry.previous = previous - else - entry.previous = current - end - end - end - - self.tracks[index] = entry - self.trackCount = math.max(self.trackCount, index + 1) - - if entry.onStart then entry.onStart(index) end - if self.onStart then self.onStart(index) end - end - - function self:update (delta) - delta = delta * self.timeScale - for i = 0, self.trackCount - 1 do - local current = self.tracks[i] - if current then - current.time = current.time + delta * current.timeScale - if current.previous then - local previousDelta = delta * current.previous.timeScale - current.previous.time = current.previous.time + previousDelta - current.mixTime = current.mixTime + previousDelta - end - - local next = current.next - if next then - next.time = current.lastTime - next.delay - if next.time >= 0 then setCurrent(i, next) end - else - -- End non-looping animation when it reaches its end time and there is no next entry. - if not current.loop and current.lastTime >= current.endTime then self:clearTrack(i) end - end - end - end - end - - function self:apply(skeleton) - for i = 0, self.trackCount - 1 do - local current = self.tracks[i] - if current then - local time = current.time - local lastTime = current.lastTime - local endTime = current.endTime - local loop = current.loop - if not loop and time > endTime then time = endTime end - - local previous = current.previous - if not previous then - if current.mix == 1 then - current.animation:apply(skeleton, current.lastTime, time, loop, self.events) - else - current.animation:mix(skeleton, current.lastTime, time, loop, self.events, current.mix) - end - else - local previousTime = previous.time - if not previous.loop and previousTime > previous.endTime then previousTime = previous.endTime end - previous.animation:apply(skeleton, previousTime, previousTime, previous.loop, nil) - - local alpha = current.mixTime / current.mixDuration * current.mix - if alpha >= 1 then - alpha = 1 - current.previous = nil - end - current.animation:mix(skeleton, current.lastTime, time, loop, self.events, alpha) - end - - local eventCount = #self.events - for ii = 1, eventCount, 1 do - local event = self.events[ii] - if current.onEvent then current.onEvent(i, event) end - if self.onEvent then self.onEvent(i, event) end - end - for ii = 1, eventCount, 1 do - table.remove(self.events) - end - - -- Check if completed the animation or a loop iteration. - local complete - if current.loop then - complete = lastTime % endTime > time % endTime - else - complete = lastTime < endTime and time >= endTime - end - if complete then - local count = math.floor(time / endTime) - if current.onComplete then current.onComplete(i, count) end - if self.onComplete then self.onComplete(i, count) end - end - - current.lastTime = current.time - end - end - end - - function self:clearTracks () - for i,current in pairs(self.tracks) do - self.clearTrack(i) - end - self.tracks = {} - self.trackCount = 0 - end - - function self:clearTrack (trackIndex) - local current = self.tracks[trackIndex] - if not current then return end - - if current.onEnd then current.onEnd(trackIndex) end - if self.onEnd then self.onEnd(trackIndex) end - - self.tracks[trackIndex] = nil - if trackIndex == self.trackCount - 1 then - self.trackCount = self.trackCount - 1 - end - end - - function self:setAnimationByName (trackIndex, animationName, loop) - local animation = self.data.skeletonData:findAnimation(animationName) - if not animation then error("Animation not found: " .. animationName) end - return self:setAnimation(trackIndex, animation, loop) - end - - -- Set the current animation. Any queued animations are cleared. - function self:setAnimation (trackIndex, animation, loop) - local entry = AnimationState.TrackEntry.new() - entry.animation = animation - entry.loop = loop - entry.endTime = animation.duration - setCurrent(trackIndex, entry) - return entry - end - - function self:addAnimationByName (trackIndex, animationName, loop, delay) - local animation = self.data.skeletonData:findAnimation(animationName) - if not animation then error("Animation not found: " .. animationName) end - return self:addAnimation(trackIndex, animation, loop, delay) - end - - -- Adds an animation to be played delay seconds after the current or last queued animation. - -- @param delay May be <= 0 to use duration of previous animation minus any mix duration plus the negative delay. - function self:addAnimation (trackIndex, animation, loop, delay) - local entry = AnimationState.TrackEntry.new() - entry.animation = animation - entry.loop = loop - entry.endTime = animation.duration - - local last = self.tracks[trackIndex] - if last then - while (last.next) do - last = last.next - end - last.next = entry - else - setCurrent(trackIndex, entry) - end - - delay = delay or 0 - if delay <= 0 then - if last then - delay = delay + last.endTime - self.data:getMix(last.animation.name, animation.name) - else - delay = 0 - end - end - entry.delay = delay - - return entry - end - - -- May return nil. - function self:getCurrent (trackIndex) - return self.tracks[trackIndex] - end - + self.queue = EventQueue.new(self) + setmetatable(self, AnimationState) return self end -AnimationState.TrackEntry = {} -function AnimationState.TrackEntry.new (data) - local self = { - next = nil, previous = nil, - animation = nil, - loop = false, - delay = 0, time = 0, lastTime = -1, endTime = 0, - timeScale = 1, - mixTime = 0, mixDuration = 0, mix = 1, - onStart = nil, onEnd = nil, onComplete = nil, onEvent = nil - } - return self +AnimationState.TrackEntry = TrackEntry + +function AnimationState:update (delta) + delta = delta * self.timeScale + local tracks = self.tracks + local queue = self.queue + for i,current in pairs(tracks) do + if current then + current.animationLast = current.nextAnimationLast + current.trackLast = current.nextTrackLast + + local currentDelta = delta * current.timeScale + + local skip = false + if current.delay > 0 then + current.delay = current.delay - currentDelta + if current.delay <= 0 then + skip = true + currentDelta = -current.delay + current.delay = 0 + end + end + + if not skip then + local next = current.next + if next then + -- When the next entry's delay is passed, change to the next entry, preserving leftover time. + local nextTime = current.trackLast - next.delay + if nextTime >= 0 then + next.delay = 0 + next.trackTime = nextTime + delta * next.timeScale + current.trackTime = current.trackTime + currentDelta + self:setCurrent(i, next) + while next.mixingFrom do + next.mixTime = next.mixTime + currentDelta + next = next.mixingFrom + end + skip = true + end + if not skip then + self:updateMixingFrom(current, delta, true); + end + else + self:updateMixingFrom(current, delta, true) + -- Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + if current.trackLast >= current.trackEnd and current.mixingFrom == nil then + tracks[i] = nil + queue:_end(current) + self:disposeNext(current) + skip = true + end + end + + if not skip then current.trackTime = current.trackTime + currentDelta end + end + end + end + + queue:drain() +end + +function AnimationState:updateMixingFrom (entry, delta, canEnd) + local from = entry.mixingFrom + if from == nil then return end + + local queue = self.queue + if canEnd and entry.mixTime >= entry.mixDuration and entry.mixTime > 0 then + queue:_end(from) + local newFrom = from.mixingFrom + entry.mixingFrom = newFrom + if newFrom == nil then return end + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + end + + from.animationLast = from.nextAnimationLast + from.trackLast = from.nextTrackLast + local mixingFromDelta = delta * from.timeScale + from.trackTime = from.trackTime + mixingFromDelta; + entry.mixTime = entry.mixTime + mixingFromDelta; + + self:updateMixingFrom(from, delta, canEnd and from.alpha == 1) +end + +function AnimationState:apply (skeleton) + if skeleton == nil then error("skeleton cannot be null.", 2) end + if self.animationsChanged then self:_animationsChanged() end + + local events = self.events + local tracks = self.tracks + local queue = self.queue + + for i,current in pairs(tracks) do + if not (current == nil or current.delay > 0) then + -- Apply mixing from entries first. + local mix = current.alpha + if current.mixingFrom then mix = mix * self:applyMixingFrom(current, skeleton) end + + -- Apply current entry. + local animationLast = current.animationLast + local animationTime = current:getAnimationTime() + local timelines = current.animation.timelines + if mix == 1 then + for i,timeline in ipairs(timelines) do + timeline:apply(skeleton, animationLast, animationTime, events, 1, true, false) + end + else + local firstFrame = #current.timelinesRotation == 0 + local timelinesRotation = current.timelinesRotation; + local timelinesFirst = current.timelinesFirst + for i,timeline in ipairs(timelines) do + if timeline.type == Animation.TimelineType.rotate then + self:applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[i], timelinesRotation, i * 2, + firstFrame) -- FIXME passing ii * 2, indexing correct? + else + timeline:apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[i], false) + end + end + end + self:queueEvents(current, animationTime) + current.nextAnimationLast = animationTime + current.nextTrackLast = current.trackTime + end + end + + queue:drain() +end + +function AnimationState:applyMixingFrom (entry, skeleton) + local from = entry.mixingFrom + if from.mixingFrom then self:applyMixingFrom(from, skeleton) end + + local mix = 0 + if entry.mixDuration == 0 then -- Single frame mix to undo mixingFrom changes. + mix = 1 + else + mix = entry.mixTime / entry.mixDuration + if mix > 1 then mix = 1 end + end + + local events = nil + if mix < from.eventThreshold then events = self.events end + local attachments = mix < from.attachmentThreshold + local drawOrder = mix < from.drawOrderThreshold + local animationLast = from.animationLast + local animationTime = from:getAnimationTime() + local timelines = from.animation.timelines + local timelinesFirst = from.timelinesFirst; + local alpha = from.alpha * entry.mixAlpha * (1 - mix) + + local firstFrame = #from.timelinesRotation == 0 + local timelinesRotation = from.timelinesRotation + + local skip = false + for i,timeline in ipairs(timelines) do + local setupPose = timelinesFirst[i] + if timeline.type == Animation.TimelineType.rotate then + self:applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i * 2, firstFrame) -- FIXME passing i * 2, correct indexing? + else + if not setupPose then + if not attachments and timeline.type == Animation.TimelineType.attackment then skip = true end + if not drawOrder and timeline.type == Animation.TimelineType.drawOrder then skip = true end + end + if not skip then timeline:apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true) end + end + end + + self:queueEvents(from, animationTime) + from.nextAnimationLast = animationTime + from.nextTrackLast = from.trackTime + + return mix +end + +function AnimationState:applyRotateTimeline (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) + if alpha == 1 then + timeline:apply(skeleton, 0, time, nil, 1, setupPose, false) + return + end + + local rotateTimeline = timeline + local frames = rotateTimeline.frames + local bone = skeleton.bones[rotateTimeline.boneIndex] + if time < frames[0] then + if setupPose then bone.rotation = bone.data.rotation end + return + end + + local r2 = 0 + if time >= frames[zlen(frames) - Animation.RotateTimeline.ENTRIES] then -- Time is after last frame. + r2 = bone.data.rotation + frames[zlen(frames) + Animation.RotateTimeline.PREV_ROTATION] + else + -- Interpolate between the previous frame and the current frame. + local frame = Animation.binarySearch(frames, time, Animation.RotateTimeline.ENTRIES) + local prevRotation = frames[frame + Animation.RotateTimeline.PREV_ROTATION] + local frameTime = frames[frame] + local percent = rotateTimeline:getCurvePercent(math_floor(frame / 2) - 1, + 1 - (time - frameTime) / (frames[frame + Animation.RotateTimeline.PREV_TIME] - frameTime)) + + r2 = frames[frame + Animation.RotateTimeline.ROTATION] - prevRotation + r2 = r2 - (16384 - math_floor(16384.499999999996 - r2 / 360)) * 360 + r2 = prevRotation + r2 * percent + bone.data.rotation + r2 = r2 - (16384 - math_floor(16384.499999999996 - r2 / 360)) * 360 + end + + -- Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. + local r1 = bone.rotation + if setupPose then r1 = bone.data.rotation end + local total = 0 + local diff = r2 - r1 + if diff == 0 then + if firstFrame then + timelinesRotation[i] = 0 + total = 0 + else + total = timelinesRotation[i] + end + else + diff = diff - (16384 - math_floor(16384.499999999996 - diff / 360)) * 360 + local lastTotal = 0 + local lastDiff = 0 + if firstFrame then + lastTotal = 0 + lastDiff = diff + else + lastTotal = timelinesRotation[i] -- Angle and direction of mix, including loops. + lastDiff = timelinesRotation[i + 1] -- Difference between bones. + end + local current = diff > 0 + local dir = lastTotal >= 0 + -- Detect cross at 0 (not 180). + if math_signum(lastDiff) ~= math_signum(diff) and math_abs(lastDiff) <= 90 then + -- A cross after a 360 rotation is a loop. + if math_abs(lastTotal) > 180 then lastTotal = lastTotal + 360 * math_signum(lastTotal) end + dir = current + end + total = diff + lastTotal - math_ceil(lastTotal / 360 - 0.5) * 360 -- FIXME used to be %360, store loops as part of lastTotal. + if dir ~= current then total = total + 360 * math_signum(lastTotal) end + timelinesRotation[i] = total + end + timelinesRotation[i + 1] = diff + r1 = r1 + total * alpha + bone.rotation = r1 - (16384 - math_floor(16384.499999999996 - r1 / 360)) * 360 +end + +function AnimationState:queueEvents (entry, animationTime) + local animationStart = entry.animationStart + local animationEnd = entry.animationEnd + local duration = animationEnd - animationStart + local trackLastWrapped = entry.trackLast % duration + + -- Queue events before complete. + local events = self.events + local queue = self.queue + local i = 1 + local n = #events + while i <= n do + local event = events[i] + if event.time < trackLastWrapped then break end + if not (event.time > animationEnd) then -- Discard events outside animation start/end. + queue:event(entry, event) + end + i = i + 1 + end + + -- Queue complete if completed a loop iteration or the animation. + local queueComplete = false + if entry.loop then + queueComplete = (trackLastWrapped > entry.trackTime % duration) + else + queueComplete = (animationTime >= animationEnd and entry.animationLast < animationEnd) + end + if queueComplete then + queue:complete(entry) + end + + -- Queue events after complete. + while i <= n do + local event = events[i] + if not (event.time < animationStart) then --// Discard events outside animation start/end. + queue:event(entry, event) + end + i = i + 1 + end + self.events = {} +end + +function AnimationState:clearTracks () + local queue = self.queue + local tracks = self.tracks + queue.drainDisabled = true; + for i,track in pairs(tracks) do + self:clearTrack(i) + end + tracks = {} + queue.drainDisabled = false; + queue:drain(); +end + +function AnimationState:clearTrack (trackIndex) + local tracks = self.tracks + local queue = self.queue + local current = tracks[trackIndex] + if current == nil then return end + + queue:_end(current) + + self:disposeNext(current) + + local entry = current; + while (true) do + local from = entry.mixingFrom + if from == nil then break end + queue:_end(from) + entry.mixingFrom = nil + entry = from + end + + tracks[current.trackIndex] = nil + + queue:drain() +end + +function AnimationState:setCurrent (index, current) + local from = self:expandToIndex(index) + local tracks = self.tracks + local queue = self.queue + tracks[index] = current + + if from then + queue:interrupt(from) + current.mixingFrom = from + current.mixTime = 0 + + -- If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. + if from.mixingFrom then current.mixAlpha = current.mixAlpha * math_min(from.mixTime / from.mixDuration, 1) end + end + + queue:start(current) +end + +function AnimationState:setAnimationByName (trackIndex, animationName, loop) + local animation = self.data.skeletonData:findAnimation(animationName) + if not animation then error("Animation not found: " .. animationName, 2) end + return self:setAnimation(trackIndex, animation, loop) +end + +function AnimationState:setAnimation (trackIndex, animation, loop) + if not animation then error("animation cannot be null.") end + local current = self:expandToIndex(trackIndex) + local queue = self.queue + if current then + if current.nextTrackLast == -1 then + -- Don't mix from an entry that was never applied. + tracks[trackIndex] = nil + queue:interrupt(current) + queue:_end(current) + self:disposeNext(current) + current = nil + else + self:disposeNext(current) + end + end + local entry = self:trackEntry(trackIndex, animation, loop, current) + self:setCurrent(trackIndex, entry) + queue:drain() + return entry +end + +function AnimationState:addAnimationByName (trackIndex, animationName, loop, delay) + local animation = self.data.skeletonData:findAnimation(animationName) + if not animation then error("Animation not found: " + animationName) end + return self:addAnimation(trackIndex, animation, loop, delay) +end + +function AnimationState:addAnimation (trackIndex, animation, loop, delay) + if not animation then error("animation cannot be null.") end + + local last = self:expandToIndex(trackIndex) + if last then + while last.next do + last = last.next + end + end + + local entry = self:trackEntry(trackIndex, animation, loop, last) + local queue = self.queue + local data = self.data + + if not last then + self:setCurrent(trackIndex, entry) + queue:drain() + else + last.next = entry + if delay <= 0 then + local duration = last.animationEnd - last.animationStart + if duration ~= 0 then + delay = delay + duration * (1 + math_floor(last.trackTime / duration)) - data:getMix(last.animation, animation) + else + delay = 0 + end + end + end + + entry.delay = delay + return entry +end + +function AnimationState:setEmptyAnimation (trackIndex, mixDuration) + local entry = self:setAnimation(trackIndex, EMPTY_ANIMATION, false) + entry.mixDuration = mixDuration + entry.trackEnd = mixDuration + return entry +end + +function AnimationState:addEmptyAnimation (trackIndex, mixDuration, delay) + if delay <= 0 then delay = delay - mixDuration end + local entry = self:addAnimation(trackIndex, EMPTY_ANIMATION, false, delay) + entry.mixDuration = mixDuration + entry.trackEnd = mixDuration + return entry +end + +function AnimationState:setEmptyAnimations (mixDuration) + local queue = self.queue + queue.drainDisabled = true + for i,current in pairs(self.tracks) do + if current then self:setEmptyAnimation(current.trackIndex, mixDuration) end + end + queue.drainDisabled = false + queue:drain() +end + +function AnimationState:expandToIndex (index) + return self.tracks[index] +end + +function AnimationState:trackEntry (trackIndex, animation, loop, last) + local data = self.data + local entry = TrackEntry.new() + 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 + if loop then + entry.trackEnd = 999999999 + else + entry.trackEnd = entry.animationEnd + end + entry.timeScale = 1 + + entry.alpha = 1 + entry.mixAlpha = 1 + entry.mixTime = 0 + if not last then + entry.mixDuration = 0 + else + entry.mixDuration = data:getMix(last.animation, animation) + end + return entry +end + +function AnimationState:disposeNext (entry) + local _next = entry.next + local queue = self.queue + while _next do + queue:dispose(_next) + _next = _next.next + end + entry.next = nil +end + +function AnimationState:_animationsChanged () + self.animationsChanged = false; + + self.propertyIDs = {} + local propertyIDs = self.propertyIDs; + + -- need to get the highest index cause Lua is funny + local highest = -1 + local tracks = self.tracks + for i,entry in pairs(tracks) do + if i > highest then highest = i end + end + + -- Set timelinesFirst for all entries, from lowest track to highest. + local i = 1 + local n = highest + while i <= n do + local entry = tracks[i] + if entry then + self:setTimelinesFirst(entry); + i = i + 1 + break; + end + i = i + 1 + end + while i <= n do + local entry = tracks[i] + if entry then self:checkTimelinesFirst(entry) end + i = i + 1 + end +end + +function AnimationState:setTimelinesFirst (entry) + if entry.mixingFrom then + self:setTimelinesFirst(entry.mixingFrom) + self:checkTimelinesUsage(entry, entry.timelinesFirst) + return + end + local propertyIDs = self.propertyIDs + local n = #entry.animation.timelines + local timelines = entry.animation.timelines + entry.timelinesFirst = {} + local usage = entry.timelinesFirst; + local i = 1 + while i <= n do + local id = "" .. timelines[i]:getPropertyId() + propertyIDs[id] = id + usage[i] = true; + i = i + 1 + end +end + +function AnimationState:checkTimlinesFirst (entry) + if entry.mixingFrom then self:checkTimelinesFirst(entry.mixingFrom) end + self:checkTimelinesUsage(entry, entry.timelinesFirst) +end + +function AnimationState:checkTimelinesUsage (entry, usageArray) + local propertyIDs = self.propertyIDs + local n = #entry.animation.timelines + local timelines = entry.animation.timelines + local usage = usageArray + while i <= n do + local id = "" .. timelines[i]:getPropertyId() + local contained = propertyIDs[id] == id + propertyIDs[id] = id + usage[i] = not contained + i = i + 1 + end +end + +function AnimationState:getCurrent (trackIndex) + return self.tracks[trackIndex] +end + +function AnimationState:clearListeners () + self.onStart = nil + self.onInterrupt = nil + self.onEnd = nil + self.onComplete = nil + self.onDispose = nil + self.onEvent = nil +end + +function AnimationState:clearListenerNotificatin () + self.queue:clear() end return AnimationState diff --git a/spine-lua/Bone.lua b/spine-lua/Bone.lua index 1adb8fcce..2e26cd0b2 100644 --- a/spine-lua/Bone.lua +++ b/spine-lua/Bone.lua @@ -35,6 +35,10 @@ local math_sin = math.sin local math_cos = math.cos local math_atan2 = math.atan2 local math_sqrt = math.sqrt +local math_abs = math.abs +local math_pi = math.pi + +local TransformMode = require "spine-lua.TransformMode" function math.sign(x) if x<0 then @@ -61,11 +65,11 @@ function Bone.new (data, skeleton, parent) parent = parent, children = { }, x = 0, y = 0, rotation = 0, scaleX = 1, scaleY = 1, shearX = 0, shearY = 0, - appliedRotation = 0, + ax = 0, ay = 0, arotation = 0, ascaleX = 0, ascaleY = 0, ashearX = 0, ashearY = 0, + appliedValid = false, a = 0, b = 0, worldX = 0, -- a b x c = 0, d = 0, worldY = 0, -- c d y - worldSignX = 0, worldSignY = 0, sorted = false } setmetatable(self, Bone) @@ -83,18 +87,24 @@ function Bone:updateWorldTransform () end function Bone:updateWorldTransformWith (x, y, rotation, scaleX, scaleY, shearX, shearY) - self.appliedRotation = rotation - - local rotationY = rotation + 90 + shearY - local rotationRad = math_rad(rotation + shearX) - local rotationYRad = math_rad(rotationY) - local la = math_cos(rotationRad) * scaleX - local lb = math_cos(rotationYRad) * scaleY - local lc = math_sin(rotationRad) * scaleX - local ld = math_sin(rotationYRad) * scaleY + self.ax = x + self.ay = y + self.arotation = rotation + self.ascaleX = scaleX + self.ascaleY = scaleY + self.ashearX = shearX + self.ashearY = shearY + self.appliedValid = true local parent = self.parent if parent == nil then + local rotationY = rotation + 90 + shearY + local rotationRad = math_rad(rotation + shearX) + local rotationYRad = math_rad(rotationY) + local la = math_cos(rotationRad) * scaleX + local lb = math_cos(rotationYRad) * scaleY + local lc = math_sin(rotationRad) * scaleX + local ld = math_sin(rotationYRad) * scaleY local skeleton = self.skeleton if skeleton.flipX then x = -x @@ -110,10 +120,8 @@ function Bone:updateWorldTransformWith (x, y, rotation, scaleX, scaleY, shearX, self.b = lb self.c = lc self.d = ld - self.worldX = x - self.worldY = y - self.worldSignX = math_sign(scaleX) - self.worldSignY = math_sign(scaleY) + self.worldX = x + skeleton.x + self.worldY = y + skeleton.y return end @@ -123,89 +131,85 @@ function Bone:updateWorldTransformWith (x, y, rotation, scaleX, scaleY, shearX, local pd = parent.d self.worldX = pa * x + pb * y + parent.worldX self.worldY = pc * x + pd * y + parent.worldY - self.worldSignX = parent.worldSignX * math_sign(scaleX) - self.worldSignY = parent.worldSignY * math_sign(scaleY) - if self.data.inheritRotation and self.data.inheritScale then + local transformMode = self.data.transformMode + if transformMode == TransformMode.normal then + local rotationY = rotation + 90 + shearY + local la = math_cos(math_rad(rotation + shearX)) * scaleX + local lb = math_cos(math_rad(rotationY)) * scaleY + local lc = math_sin(math_rad(rotation + shearX)) * scaleX + local ld = math_sin(math_rad(rotationY)) * scaleY self.a = pa * la + pb * lc self.b = pa * lb + pb * ld self.c = pc * la + pd * lc self.d = pc * lb + pd * ld - else - if self.data.inheritRotation then - pa = 1 - pb = 0 - pc = 0 - pd = 1 - repeat - local appliedRotationRad = math_rad(parent.appliedRotation) - local cos = math_cos(appliedRotationRad) - local sin = math_sin(appliedRotationRad) - local temp = pa * cos + pb * sin - pb = pb * cos - pa * sin - pa = temp - temp = pc * cos + pd * sin - pd = pd * cos - pc * sin - pc = temp - - if not parent.data.inheritRotation then break end - parent = parent.parent - until parent == nil - self.a = pa * la + pb * lc - self.b = pa * lb + pb * ld - self.c = pc * la + pd * lc - self.d = pc * lb + pd * ld - elseif self.data.inheritScale then - pa = 1 - pb = 0 - pc = 0 - pd = 1 - repeat - local appliedRotationRad = math_rad(parent.appliedRotation) - local cos = math_cos(appliedRotationRad) - local sin = math_sin(appliedRotationRad) - local psx = parent.scaleX - local psy = parent.scaleY - local za = cos * psx - local zb = sin * psy - local zc = sin * psx - local zd = cos * psy - local temp = pa * za + pb * zc - pb = pb * zd - pa * zb - pa = temp - temp = pc * za + pd * zc - pd = pd * zd - pc * zb - pc = temp - - if psx >= 0 then sin = -sin end - temp = pa * cos + pb * sin - pb = pb * cos - pa * sin - pa = temp - temp = pc * cos + pd * sin - pd = pd * cos - pc * sin - pc = temp - - if not parent.data.inheritScale then break end - parent = parent.parent - until parent == nil - self.a = pa * la + pb * lc - self.b = pa * lb + pb * ld - self.c = pc * la + pd * lc - self.d = pc * lb + pd * ld + return; + elseif transformMode == TransformMode.onlyTranslation then + local rotationY = rotation + 90 + shearY + self.a = math_cos(math_rad(rotation + shearX)) * scaleX + self.b = math_cos(math_rad(rotationY)) * scaleY + self.c = math_sin(math_rad(rotation + shearX)) * scaleX + self.d = math_sin(math_rad(rotationY)) * scaleY + elseif transformMode == TransformMode.noRotationOrReflection then + local s = pa * pa + pc * pc + local prx = 0 + if s > 0.0001 then + s = math_abs(pa * pd - pb * pc) / s + pb = pc * s + pd = pa * s + prx = math_deg(math_atan2(pc, pa)); else - self.a = la - self.b = lb - self.c = lc - self.d = ld + pa = 0; + pc = 0; + prx = 90 - math_deg(math_atan2(pd, pb)); end - if self.skeleton.flipX then - self.a = -self.a + local rx = rotation + shearX - prx + local ry = rotation + shearY - prx + 90 + local la = math_cos(math_rad(rx)) * scaleX + local lb = math_cos(math_rad(ry)) * scaleY + local lc = math_sin(math_rad(rx)) * scaleX + local ld = math_sin(math_rad(ry)) * scaleY + self.a = pa * la - pb * lc + self.b = pa * lb - pb * ld + self.c = pc * la + pd * lc + self.d = pc * lb + pd * ld + elseif transformMode == TransformMode.noScale or transformMode == TransformMode.noScaleOrReflection then + local cos = math_cos(math_rad(rotation)) + local sin = math_sin(math_rad(rotation)) + local za = pa * cos + pb * sin + local zc = pc * cos + pd * sin + local s = math_sqrt(za * za + zc * zc) + if s > 0.00001 then s = 1 / s end + za = za * s + zc = zc * s + s = math_sqrt(za * za + zc * zc) + local r = math_pi / 2 + math_atan2(zc, za) + local zb = math_cos(r) * s + local zd = math_sin(r) * s + local la = math_cos(math_rad(shearX)) * scaleX; + local lb = math_cos(math_rad(90 + shearY)) * scaleY; + local lc = math_sin(math_rad(shearX)) * scaleX; + local ld = math_sin(90 + shearY) * scaleY; + self.a = za * la + zb * lc + self.b = za * lb + zb * ld + self.c = zc * la + zd * lc + self.d = zc * lb + zd * ld + local flip = self.skeleton.flipX ~= self.skeleton.flipY + if transformMode ~= TransformMode.noScaleOrReflection then flip = pa * pd - pb * pc < 0 end + if flip then self.b = -self.b - end - if self.skeleton.flipY then - self.c = -self.c self.d = -self.d end + return + end + + if self.skeleton.flipX then + self.a = -self.a + self.b = -self.b + end + if self.skeleton.flipY then + self.c = -self.c + self.d = -self.d end end @@ -229,16 +233,16 @@ function Bone:getWorldRotationY () end function Bone:getWorldScaleX () - return math_sqrt(self.a * self.a + self.b * self.b) * self.worldSignX + return math_sqrt(self.a * self.a + self.c * self.c) end function Bone:getWorldScaleY () - return math_sqrt(self.c * self.c + self.d * self.d) * self.worldSignY + return math_sqrt(self.b * self.b + self.d * self.d) end function Bone:worldToLocalRotationX () local parent = self.parent - if parent == nil then return self.rotation end + if parent == nil then return self.arotation end local pa = parent.a local pb = parent.b local pc = parent.c @@ -272,19 +276,19 @@ function Bone:rotateWorld (degrees) self.b = cos * b - sin * d self.c = sin * a + cos * c self.d = sin * b + cos * d + self.appliedValid = false end -function updateLocalTransform () +function updateAppliedTransform () local parent = self.parent if parent == nil then - self.x = self.worldX - self.y = self.worldY - self.rotation = math_deg(math_atan2(self.c, self.a)) - self.scaleX = math_sqrt(self.a * self.a + self.c * self.c) - self.scaleY = math_sqrt(self.b * self.b + self.d * self.d) - local det = self.a * self.d - self.b * self.c - self.shearX = 0 - self.shearY = math_deg(math_atan2(self.a * self.b + self.c * self.d, det)) + self.ax = self.worldX + self.ay = self.worldY + self.arotation = math_deg(math_atan2(self.c, self.a)) + self.ascaleX = math_sqrt(self.a * self.a + self.c * self.c) + self.ascaleY = math_sqrt(self.b * self.b + self.d * self.d) + self.ashearX = 0 + self.ashearY = math_deg(math_atan2(self.a * self.b + self.c * self.d, self.a * self.d - self.b * self.c)) return end local pa = parent.a @@ -294,8 +298,8 @@ function updateLocalTransform () local pid = 1 / (pa * pd - pb * pc) local dx = self.worldX - parent.worldX local dy = self.worldY - parent.worldY - self.x = (dx * pd * pid - dy * pb * pid) - self.y = (dy * pa * pid - dx * pc * pid) + self.ax = (dx * pd * pid - dy * pb * pid) + self.ay = (dy * pa * pid - dx * pc * pid) local ia = pid * pd local id = pid * pa local ib = pid * pb @@ -304,20 +308,19 @@ function updateLocalTransform () local rb = ia * self.b - ib * self.d local rc = id * self.c - ic * self.a local rd = id * self.d - ic * self.b - self.shearX = 0 - self.scaleX = math_sqrt(ra * ra + rc * rc) - if self.scaleX > 0.0001 then + self.ashearX = 0 + self.ascaleX = math_sqrt(ra * ra + rc * rc) + if self.ascaleX > 0.0001 then local det = ra * rd - rb * rc - self.scaleY = det / self.scaleX - self.shearY = math_deg(math_atan2(ra * rb + rc * rd, det)) - self.rotation = math_deg(math_atan2(rc, ra)) + self.ascaleY = det / self.ascaleX + self.ashearY = math_deg(math_atan2(ra * rb + rc * rd, det)) + self.arotation = math_deg(math_atan2(rc, ra)) else - self.scaleX = 0 - self.scaleY = math_sqrt(rb * rb + rd * rd) - self.shearY = 0 - self.rotation = 90 - math_deg(math_atan2(rd, rb)) + self.ascaleX = 0 + self.ascaleY = math_sqrt(rb * rb + rd * rd) + self.ashearY = 0 + self.arotation = 90 - math_deg(math_atan2(rd, rb)) end - self.appliedRotation = self.rotation end function Bone:worldToLocal (world) diff --git a/spine-lua/BoneData.lua b/spine-lua/BoneData.lua index 915720777..0ba0addc3 100644 --- a/spine-lua/BoneData.lua +++ b/spine-lua/BoneData.lua @@ -28,6 +28,9 @@ -- POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- +local setmetatable = setmetatable +local TransformMode = require "spine-lua.TransformMode" + local BoneData = {} function BoneData.new (index, name, parent) if index < 0 then error("index must be >= 0", 2) end @@ -36,6 +39,7 @@ function BoneData.new (index, name, parent) local self = { index = index, name = name, + transformMode = TransformMode.normal, parent = parent, length = 0, x = 0, y = 0, diff --git a/spine-lua/Color.lua b/spine-lua/Color.lua index 7a8f31cba..44c919c5e 100644 --- a/spine-lua/Color.lua +++ b/spine-lua/Color.lua @@ -45,7 +45,7 @@ end function Color.newWith (r, g, b, a) local self = { - r = a, g = g, b = b, a = a + r = r, g = g, b = b, a = a } setmetatable(self, Color) diff --git a/spine-lua/IkConstraint.lua b/spine-lua/IkConstraint.lua index 67593e2c0..72840124e 100644 --- a/spine-lua/IkConstraint.lua +++ b/spine-lua/IkConstraint.lua @@ -53,7 +53,6 @@ function IkConstraint.new (data, skeleton) target = nil, mix = data.mix, bendDirection = data.bendDirection, - level = 0 } setmetatable(self, IkConstraint) @@ -82,20 +81,21 @@ function IkConstraint:update () end function IkConstraint:apply1 (bone, targetX, targetY, alpha) - local pp = bone.parent - local id = 1 / (pp.a * pp.d - pp.b * pp.c) - local x = targetX - pp.worldX - local y = targetY - pp.worldY - local tx = (x * pp.d - y * pp.b) * id - bone.x - local ty = (y * pp.a - x * pp.c) * id - bone.y - local rotationIK = math_deg(math_atan2(ty, tx)) - bone.shearX - bone.rotation - if bone.scaleX < 0 then rotationIK = rotationIK + 180 end + if not bone.appliedValid then bone:updateAppliedTransform() end + local p = bone.parent + local id = 1 / (p.a * p.d - p.b * p.c) + local x = targetX - p.worldX + local y = targetY - p.worldY + local tx = (x * p.d - y * p.b) * id - bone.ax + local ty = (y * p.a - x * p.c) * id - bone.ay + local rotationIK = math_deg(math_atan2(ty, tx)) - bone.ashearX - bone.arotation + if bone.ascaleX < 0 then rotationIK = rotationIK + 180 end if rotationIK > 180 then rotationIK = rotationIK - 360 elseif (rotationIK < -180) then rotationIK = rotationIK + 360 end - bone:updateWorldTransformWith(bone.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY) + bone:updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY) end function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, alpha) @@ -103,11 +103,13 @@ function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, alpha) child:updateWorldTransform() return end - local px = parent.x - local py = parent.y - local psx = parent.scaleX - local psy = parent.scaleY - local csx = child.scaleX + if not parent.appliedValid then parent:updateAppliedTransform() end + if not child.appliedValid then child:updateAppliedTransform() end + local px = parent.ax + local py = parent.ay + local psx = parent.ascaleX + local psy = parent.ascaleY + local csx = child.ascaleX local os1 = 0 local os2 = 0 local s2 = 0 @@ -129,7 +131,7 @@ function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, alpha) else os2 = 0 end - local cx = child.x + local cx = child.ax local cy = 0 local cwx = 0 local cwy = 0 @@ -143,7 +145,7 @@ function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, alpha) cwx = a * cx + parent.worldX cwy = c * cx + parent.worldY else - cy = child.y + cy = child.ay cwx = a * cx + b * cy + parent.worldX cwy = c * cx + d * cy + parent.worldY end @@ -254,22 +256,22 @@ function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, alpha) end end local os = math_atan2(cy, cx) * s2 - local rotation = parent.rotation + local rotation = parent.arotation a1 = math_deg(a1 - os) + os1 - rotation if a1 > 180 then a1 = a1 - 360 elseif a1 < -180 then a1 = a1 + 360 end - parent:updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.scaleX, parent.scaleY, 0, 0) + parent:updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0) rotation = child.rotation - a2 = (math_deg(a2 + os) - child.shearX) * s2 + os2 - rotation + a2 = (math_deg(a2 + os) - child.ashearX) * s2 + os2 - rotation if a2 > 180 then a2 = a2 - 360 elseif a2 < -180 then a2 = a2 + 360 end - child:updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.scaleX, child.scaleY, child.shearX, child.shearY); + child:updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); end return IkConstraint diff --git a/spine-lua/IkConstraintData.lua b/spine-lua/IkConstraintData.lua index c67d094c2..b7497d63b 100644 --- a/spine-lua/IkConstraintData.lua +++ b/spine-lua/IkConstraintData.lua @@ -34,6 +34,7 @@ function IkConstraintData.new (name) local self = { name = name, + order = 0, bones = {}, target = nil, bendDirection = 1, diff --git a/spine-lua/PathConstraint.lua b/spine-lua/PathConstraint.lua index 608e66643..cf23000b5 100644 --- a/spine-lua/PathConstraint.lua +++ b/spine-lua/PathConstraint.lua @@ -134,19 +134,28 @@ function PathConstraint:update () end local positions = self:computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == PathConstraintData.PositionMode.percent, spacingMode == PathConstraintData.SpacingMode.percent) - local skeleton = self.target.bone.skeleton - local skeletonX = skeleton.x - local skeletonY = skeleton.y local boneX = positions[1] local boneY = positions[2] local offsetRotation = data.offsetRotation - local tip = rotateMode == PathConstraintData.RotateMode.chain and offsetRotation == 0 + local tip = false; + if offsetRotation == 0 then + tip = rotateMode == PathConstraintData.RotateMode.chain + else + tip = false; + local p = self.target.bone; + if p.a * p.d - p.b * p.c > 0 then + offsetRotation = offsetRotation * utils.degRad + else + offsetRotation = offsetRotation * -utils.degRad + end + end + local i = 0 local p = 3 while i < boneCount do local bone = bones[i + 1] - bone.worldX = bone.worldX + (boneX - skeletonX - bone.worldX) * translateMix - bone.worldY = bone.worldY + (boneY - skeletonY - bone.worldY) * translateMix + bone.worldX = bone.worldX + (boneX - bone.worldX) * translateMix + bone.worldY = bone.worldY + (boneY - bone.worldY) * translateMix local x = positions[p + 1] local y = positions[p + 2] local dx = x - boneX @@ -176,13 +185,15 @@ function PathConstraint:update () else r = math_atan2(dy, dx) end - r = r - (math_atan2(c, a) - math_rad(offsetRotation)) + r = r - math_atan2(c, a) if tip then cos = math_cos(r) sin = math_sin(r) local length = bone.data.length boneX = boneX + (length * (cos * a - sin * c) - dx) * rotateMix; boneY = boneY + (length * (sin * a + cos * c) - dy) * rotateMix; + else + r = r + offsetRotation end if r > math_pi then r = r - math_pi2 @@ -197,6 +208,7 @@ function PathConstraint:update () bone.c = sin * a + cos * c bone.d = sin * b + cos * d end + bone.appliedValid = false i = i + 1 p = p + 3 end @@ -496,7 +508,7 @@ function PathConstraint:addAfterPosition(p, temp, i, out, o) end function PathConstraint:addCurvePosition(p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) - if p == 0 then p = 0.0001 end + if p == 0 or (p ~= p) then p = 0.0001 end local tt = p * p local ttt = tt * p local u = 1 - p diff --git a/spine-lua/PathConstraintData.lua b/spine-lua/PathConstraintData.lua index 6aafdce10..c95ad5f03 100644 --- a/spine-lua/PathConstraintData.lua +++ b/spine-lua/PathConstraintData.lua @@ -34,6 +34,7 @@ function PathConstraintData.new (name) local self = { name = name, + order = 0, bones = {}, target = nil, positionMode = nil, diff --git a/spine-lua/Skeleton.lua b/spine-lua/Skeleton.lua index 02da47e76..d394cb3ea 100644 --- a/spine-lua/Skeleton.lua +++ b/spine-lua/Skeleton.lua @@ -55,10 +55,11 @@ function Skeleton.new (data) slots = {}, slotsByName = {}, drawOrder = {}, - ikConstraints = {}, ikConstaintsSorted = {}, + ikConstraints = {}, transformConstraints = {}, pathConstraints = {}, _updateCache = {}, + updateCacheReset = {}, skin = nil, color = Color.newWith(1, 1, 1, 1), time = 0, @@ -115,108 +116,137 @@ function Skeleton:updateCache () bone.sorted = false end - local ikConstraints = {} - self.ikConstraintsSorted = ikConstraints - for i, constraint in ipairs(self.ikConstraints) do - table_insert(ikConstraints, constraint) - end - - local level = 0 - for i, ik in ipairs(ikConstraints) do - local bone = ik.bones[1].parent - level = 0 - while bone do - bone = bone.parent - level = level + 1 - end - ik.level = level - end - - local i = 1 + local ikConstraints = self.ikConstraints + local transformConstraints = self.transformConstraints + local pathConstraints = self.pathConstraints local ikCount = #ikConstraints - while i < ikCount do - local ik = ikConstraints[i + 1] - local level = ik.level - local ii = i - 1 - while ii >= 0 do - local other = ikConstraints[ii + 1] - if other.level < level then break end - ikConstraints[ii + 1 + 1] = other - ii = ii - 1 + local transformCount = #transformConstraints + local pathCount = #pathConstraints + local constraintCount = ikCount + transformCount + pathCount + + local i = 0 + while i < constraintCount do + local found = false + local ii = 1 + while ii <= ikCount do + local constraint = ikConstraints[ii] + if constraint.data.order == i then + self:sortIkConstraint(constraint) + found = true + break + end + ii = ii + 1 end - ikConstraints[ii + 1 + 1] = ik + + if not found then + ii = 1 + while ii <= transformCount do + local constraint = transformConstraints[ii] + if constraint.data.order == i then + self:sortTransformConstraint(constraint) + found = true + break + end + ii = ii + 1 + end + end + + if not found then + ii = 1 + while ii <= pathCount do + local constraint = pathConstraints[ii] + if constraint.data.order == i then + self:sortPathConstraint(constraint) + break + end + ii = ii + 1 + end + end + i = i + 1 end - - for i, constraint in ipairs(ikConstraints) do - local target = constraint.target - self:sortBone(target) - - local constrained = constraint.bones - local parent = constrained[1] - self:sortBone(parent) - - table_insert(updateCache, constraint) - - self:sortReset(parent.children) - constrained[#constrained].sorted = true - end - - -- path constraints - local pathConstraints = self.pathConstraints - for i,constraint in ipairs(pathConstraints) do - local slot = constraint.target - local slotIndex = slot.data.index - local slotBone = slot.bone - if self.skin then self:sortPathConstraintAttachment(self.skin, slotIndex, slotBone) end - if self.data.defaultSkin and self.data.defaultSkin ~= self.skin then self:sortPathConstraintAttachment(self.data.defaultSkin, slotIndex, slotBone) end - for i,skin in ipairs(self.data.skins) do - self:sortPathConstraintAttachment(skin, slotIndex, slotBone) - end - - local attachment = slot.attachment - if attachment.type == AttachmentType.path then self:sortPathConstraintAttachmentWith(attachment, slotBone) end - - local constrained = constraint.bones - for i,c in ipairs(constrained) do - self:sortBone(c) - end - - table_insert(updateCache, constraint) - - for i,c in ipairs(constrained) do - self:sortReset(c.children) - end - for i,c in ipairs(constrained) do - c.sorted = true - end - end - - -- transform constraints - local transformConstraints = self.transformConstraints - for i, constraint in ipairs(transformConstraints) do - self:sortBone(constraint.target) - - local constrained = constraint.bones - for i,c in ipairs(constrained) do - self:sortBone(c) - end - - table_insert(updateCache, constraint) - - for i,c in ipairs(constrained) do - self:sortReset(c.children) - end - for i,c in ipairs(constrained) do - c.sorted = true - end - end - + for i, bone in ipairs(self.bones) do self:sortBone(bone) end end +function Skeleton:sortIkConstraint (constraint) + local target = constraint.target + self:sortBone(target) + + local constrained = constraint.bones + local parent = constrained[1] + self:sortBone(parent) + + if #constrained > 1 then + local child = constrained[#constrained] + local contains = false + for i,updatable in ipairs(self._updateCache) do + if updatable == child then + contains = true + break + end + end + if not contains then table_insert(self.updateCacheReset, child) end + end + + table_insert(self._updateCache, constraint) + + self:sortReset(parent.children) + constrained[#constrained].sorted = true +end + +function Skeleton:sortPathConstraint(constraint) + local slot = constraint.target + local slotIndex = slot.data.index + local slotBone = slot.bone + if self.skin then self:sortPathConstraintAttachment(skin, slotIndex, slotBone) end + if self.data.defaultSkin and not (self.data.defaultSkin == skin) then + self:sortPathConstraintAttachment(self.data.defaultSkin, slotIndex, slotBone) + end + for ii,skin in ipairs(self.data.skins) do + self:sortPathConstraintAttachment(skin, slotIndex, slotBone) + end + + local attachment = slot.attachment + if attachment.type == AttachmentType.path then self:sortPathConstraintAttachmentWith(attachment, slotBone) end + + local constrained = constraint.bones + for ii,bone in ipairs(constrained) do + self:sortBone(bone) + end + + table_insert(self._updateCache, constraint) + + for i,bone in ipairs(constrained) do + self:sortReset(bone.children) + end + + for i,bone in ipairs(constrained) do + bone.sorted = true + end +end + +function Skeleton:sortTransformConstraint(constraint) + self:sortBone(constraint.target) + + local constrained = constraint.bones + for ii,bone in ipairs(constrained) do + self:sortBone(bone) + end + + table_insert(self._updateCache, constraint) + + for i,bone in ipairs(constrained) do + self:sortReset(bone.children) + end + + for i,bone in ipairs(constrained) do + bone.sorted = true + end +end + function Skeleton:sortPathConstraintAttachment(skin, slotIndex, slotBone) local attachments = skin.attachments[slotIndex] if not attachments then return end @@ -263,6 +293,18 @@ end -- Updates the world transform for each bone and applies IK constraints. function Skeleton:updateWorldTransform () + local updateCacheReset = self.updateCacheReset + for i,bone in ipairs(updateCacheReset) do + 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 + end + local updateCache = self._updateCache for i, updatable in ipairs(updateCache) do updatable:update() diff --git a/spine-lua/SkeletonBounds.lua b/spine-lua/SkeletonBounds.lua index 9178a98bb..cb1fac7fb 100644 --- a/spine-lua/SkeletonBounds.lua +++ b/spine-lua/SkeletonBounds.lua @@ -72,7 +72,14 @@ function SkeletonBounds:update (skeleton, updateAabb) end end - if updateAabb then self:aabbCompute() end + if updateAabb then + self:aabbCompute() + else + self.minX = 9999999 + self.minY = 9999999 + self.maxX = -9999999 + self.maxY = -9999999 + end end function SkeletonBounds:aabbCompute () diff --git a/spine-lua/SkeletonJson.lua b/spine-lua/SkeletonJson.lua index 16c2cf10c..6f01aac7d 100644 --- a/spine-lua/SkeletonJson.lua +++ b/spine-lua/SkeletonJson.lua @@ -45,6 +45,7 @@ local EventData = require "spine-lua.EventData" local Event = require "spine-lua.Event" local AttachmentType = require "spine-lua.attachments.AttachmentType" local BlendMode = require "spine-lua.BlendMode" +local TransformMode = require "spine-lua.TransformMode" local utils = require "spine-lua.utils" local SkeletonJson = {} @@ -84,6 +85,7 @@ function SkeletonJson.new (attachmentLoader) skeletonData.version = skeletonMap["spine"] skeletonData.width = skeletonMap["width"] skeletonData.height = skeletonMap["height"] + skeletonData.fps = skeletonMap["fps"] skeletonData.imagesPath = skeletonMap["images"] end @@ -106,8 +108,7 @@ function SkeletonJson.new (attachmentLoader) data.scaleY = getValue(boneMap, "scaleY", 1); data.shearX = getValue(boneMap, "shearX", 0); data.shearY = getValue(boneMap, "shearY", 0); - data.inheritRotation = getValue(boneMap, "inheritRotation", true); - data.inheritScale = getValue(boneMap, "inheritScale", true); + data.transformMode = TransformMode[getValue(boneMap, "transform", "normal")] table_insert(skeletonData.bones, data) end @@ -142,6 +143,7 @@ function SkeletonJson.new (attachmentLoader) if root["ik"] then for i,constraintMap in ipairs(root["ik"]) do local data = IkConstraintData.new(constraintMap["name"]) + data.order = getValue(constraintMap, "order", 0) for i,boneName in ipairs(constraintMap["bones"]) do local bone = skeletonData:findBone(boneName) @@ -164,6 +166,7 @@ function SkeletonJson.new (attachmentLoader) if root["transform"] then for i,constraintMap in ipairs(root["transform"]) do data = TransformConstraintData.new(constraintMap.name) + data.order = getValue(constraintMap, "order", 0) for i,boneName in ipairs(constraintMap.bones) do local bone = skeletonData:findBone(boneName) @@ -195,6 +198,7 @@ function SkeletonJson.new (attachmentLoader) if root["path"] then for i,constraintMap in ipairs(root.path) do local data = PathConstraintData.new(constraintMap.name); + data.order = getValue(constraintMap, "order", 0) for i,boneName in ipairs(constraintMap.bones) do local bone = skeletonData:findBone(boneName) @@ -257,7 +261,7 @@ function SkeletonJson.new (attachmentLoader) local data = EventData.new(eventName) data.intValue = getValue(eventMap, "int", 0) data.floatValue = getValue(eventMap, "float", 0) - data.stringValue = getValue(eventMap, "string", nil) + data.stringValue = getValue(eventMap, "string", "") table_insert(skeletonData.events, data) end end @@ -333,7 +337,7 @@ function SkeletonJson.new (attachmentLoader) mesh.inheritDeform = getValue(map, "deform", true) table_insert(self.linkedMeshes, { mesh = mesh, - skin = getValue(map, skin, nil), + skin = getValue(map, "skin", nil), slotIndex = slotIndex, parent = parent }) @@ -453,7 +457,7 @@ function SkeletonJson.new (attachmentLoader) elseif timelineName == "attachment" then local timeline = Animation.AttachmentTimeline.new(#values) - timeline.slotName = slotName + timeline.slotIndex = slotIndex local frameIndex = 0 for i,valueMap in ipairs(values) do diff --git a/spine-lua/TransformConstraint.lua b/spine-lua/TransformConstraint.lua index 4aec5195f..7ae6efcdf 100644 --- a/spine-lua/TransformConstraint.lua +++ b/spine-lua/TransformConstraint.lua @@ -29,6 +29,7 @@ ------------------------------------------------------------------------------- local setmetatable = setmetatable +local utils = require "spine-lua.utils" local math_pi = math.pi local math_pi2 = math.pi * 2 local math_atan2 = math.atan2 @@ -79,14 +80,19 @@ function TransformConstraint:update () local tb = target.b local tc = target.c local td = target.d + local degRadReflect = 0; + if ta * td - tb * tc > 0 then degRadReflect = utils.degRad else degRadReflect = -utils.degRad end + local offsetRotation = self.data.offsetRotation * degRadReflect + local offsetShearY = self.data.offsetShearY * degRadReflect local bones = self.bones for i, bone in ipairs(bones) do - if rotateMix > 0 then + local modified = false + if rotateMix ~= 0 then local a = bone.a local b = bone.b local c = bone.c local d = bone.d - local r = math_atan2(tc, ta) - math_atan2(c, a) + math_rad(self.data.offsetRotation); + local r = math_atan2(tc, ta) - math_atan2(c, a) + offsetRotation if r > math_pi then r = r - math_pi2 elseif r < -math_pi then @@ -99,15 +105,17 @@ function TransformConstraint:update () bone.b = cos * b - sin * d bone.c = sin * a + cos * c bone.d = sin * b + cos * d + modified = true end - if translateMix > 0 then + if translateMix ~= 0 then local temp = self.temp temp[1] = self.data.offsetX temp[2] = self.data.offsetY target:localToWorld(temp) bone.worldX = bone.worldX + (temp[1] - bone.worldX) * translateMix bone.worldY = bone.worldY + (temp[2] - bone.worldY) * translateMix + modified = true end if scaleMix > 0 then @@ -127,6 +135,7 @@ function TransformConstraint:update () end bone.b = bone.b * s bone.d = bone.d * s + modified = true end if shearMix > 0 then @@ -139,11 +148,14 @@ function TransformConstraint:update () elseif r < -math_pi then r = r + math_pi2 end - r = by + (r + math_rad(self.data.offsetShearY)) * shearMix + r = by + (r + offsetShearY) * shearMix local s = math_sqrt(b * b + d * d) bone.b = math_cos(r) * s bone.d = math_sin(r) * s + modified = true end + + if modified then bone.appliedValid = false end end end diff --git a/spine-lua/TransformConstraintData.lua b/spine-lua/TransformConstraintData.lua index 12cc47f03..8de749cdb 100644 --- a/spine-lua/TransformConstraintData.lua +++ b/spine-lua/TransformConstraintData.lua @@ -34,6 +34,7 @@ function TransformConstraintData.new (name) local self = { name = name, + order = 0, bones = {}, target = nil, rotateMix = 0, translateMix = 0, scaleMix = 0, shearMix = 0, diff --git a/spine-lua/TransformMode.lua b/spine-lua/TransformMode.lua new file mode 100644 index 000000000..12ceb3f63 --- /dev/null +++ b/spine-lua/TransformMode.lua @@ -0,0 +1,38 @@ +------------------------------------------------------------------------------- +-- 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. +------------------------------------------------------------------------------- + +local TransformMode = { + normal = 0, + onlyTranslation = 1, + noRotationOrReflection = 2, + noScale = 3, + noScaleOrReflection = 4 +} +return TransformMode diff --git a/spine-lua/attachments/MeshAttachment.lua b/spine-lua/attachments/MeshAttachment.lua index d53824058..721cc71b4 100644 --- a/spine-lua/attachments/MeshAttachment.lua +++ b/spine-lua/attachments/MeshAttachment.lua @@ -115,8 +115,6 @@ function MeshAttachment:updateWorldVertices(slot, premultipliedAlpha) skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha) - local x = skeleton.x - local y = skeleton.y local deformArray = slot.attachmentVertices local vertices = self.vertices local worldVertices = self.worldVertices @@ -125,8 +123,8 @@ function MeshAttachment:updateWorldVertices(slot, premultipliedAlpha) local verticesLength = #vertices if #deformArray > 0 then vertices = deformArray end local bone = slot.bone; - x = x + bone.worldX - y = y + bone.worldY + local x = bone.worldX + local y = bone.worldY local a = bone.a local b = bone.b local c = bone.c @@ -155,8 +153,8 @@ function MeshAttachment:updateWorldVertices(slot, premultipliedAlpha) local b = 0 local n = #bones while v < n do - local wx = x - local wy = y + local wx = 0 + local wy = 0 local nn = bones[v + 1]; v = v + 1 nn = nn + v @@ -186,8 +184,8 @@ function MeshAttachment:updateWorldVertices(slot, premultipliedAlpha) local f = 0 local n = #bones while v < n do - local wx = x - local wy = y + local wx = 0 + local wy = 0 local nn = bones[v + 1] v = v + 1 nn = nn + v diff --git a/spine-lua/attachments/RegionAttachment.lua b/spine-lua/attachments/RegionAttachment.lua index 256b7ea31..a9068c247 100644 --- a/spine-lua/attachments/RegionAttachment.lua +++ b/spine-lua/attachments/RegionAttachment.lua @@ -179,8 +179,8 @@ function RegionAttachment:updateWorldVertices (slot, premultipliedAlpha) local vertices = self.vertices local offset = self.offset local bone = slot.bone - local x = skeleton.x + bone.worldX - local y = skeleton.y + bone.worldY + local x = bone.worldX + local y = bone.worldY local a = bone.a local b = bone.b local c = bone.c diff --git a/spine-lua/attachments/VertexAttachment.lua b/spine-lua/attachments/VertexAttachment.lua index fba4c2425..5f22e3698 100644 --- a/spine-lua/attachments/VertexAttachment.lua +++ b/spine-lua/attachments/VertexAttachment.lua @@ -57,16 +57,14 @@ end function VertexAttachment:computeWorldVerticesWith (slot, start, count, worldVertices, offset) count = count + offset local skeleton = slot.bone.skeleton - local x = skeleton.x - local y = skeleton.y local deformArray = slot.attachmentVertices local vertices = self.vertices local bones = self.bones if not bones then if #deformArray > 0 then vertices = deformArray end local bone = slot.bone - x = x + bone.worldX - y = y + bone.worldY + x = bone.worldX + y = bone.worldY local a = bone.a local b = bone.b local c = bone.c @@ -97,8 +95,8 @@ function VertexAttachment:computeWorldVerticesWith (slot, start, count, worldVer local w = offset local b = skip * 3 while w < count do - local wx = x - local wy = y + local wx = 0 + local wy = 0 local n = bones[v + 1] v = v + 1 n = n + v @@ -122,8 +120,8 @@ function VertexAttachment:computeWorldVerticesWith (slot, start, count, worldVer local b = skip * 3 local f = skip * 2 while w < count do - local wx = x - local wy = y + local wx = 0 + local wy = 0 local n = bones[v + 1] v = v + 1 n = n + v diff --git a/spine-lua/utils.lua b/spine-lua/utils.lua index 7a79a304b..ef8447c23 100644 --- a/spine-lua/utils.lua +++ b/spine-lua/utils.lua @@ -30,6 +30,8 @@ local utils = {} +utils.degRad = math.pi / 180 + function tablePrint (tt, indent, done) done = done or {} for key, value in pairs(tt) do @@ -126,4 +128,14 @@ function utils.clamp (value, min, max) return value end +function utils.signum (value) + if value < 0 then + return -1 + elseif value > 0 then + return 1 + else + return 0 + end +end + return utils diff --git a/spine-monogame/LICENSE b/spine-monogame/LICENSE index daceab94a..815ec1ca1 100644 --- a/spine-monogame/LICENSE +++ b/spine-monogame/LICENSE @@ -1,16 +1,17 @@ -Spine Runtimes Software License v2.5 +Spine Runtimes Software License +Version 2.3 -Copyright (c) 2013-2016, Esoteric Software +Copyright (c) 2013-2015, 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, +You are granted a perpetual, non-exclusive, non-sublicensable and +non-transferable license to use, install, execute and perform the Spine +Runtimes Software (the "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 otherwise create derivative works, improvements of the +Software or develop new applications using the Software 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. @@ -20,8 +21,8 @@ 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. \ No newline at end of file +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) 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. \ No newline at end of file diff --git a/spine-monogame/README.md b/spine-monogame/README.md index 6cc6cc663..007d62cc2 100644 --- a/spine-monogame/README.md +++ b/spine-monogame/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-monogame works with data exported from Spine 3.4.02. +spine-monogame works with data exported from Spine 3.5.x. spine-monogame supports all Spine features. diff --git a/spine-sfml/data/goblins-mesh.json b/spine-sfml/data/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-sfml/data/goblins-mesh.json +++ b/spine-sfml/data/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-sfml/data/goblins-mesh.skel b/spine-sfml/data/goblins-mesh.skel index 48d702d367519e22bcccd63d81a208bfd9be3d09..11d72ac71801ae2541584fad792db08c73c30515 100644 GIT binary patch delta 201 zcmaFd#dy7o(NrcVtUSv&#XLwq+sE5K&$J-5z#up~FwE4@JDJB=&s5LAST`xPB+KaW6*44-5h$TcQYAe)yNM7l5o&7NEaCRZ?nR9*v|?0a2?U)O|*M5Rab;OxZK( zfOt7fU?mG7f)|-gL4xeeV9J&mWY^?82sNJ>tlR5`6+uKklJj) HA#V!+Dz-7u diff --git a/spine-sfml/data/raptor.json b/spine-sfml/data/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-sfml/data/raptor.json +++ b/spine-sfml/data/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-sfml/data/raptor.skel b/spine-sfml/data/raptor.skel index fa45b1ebb780e78a3ed28415f5c1357884763733..8e17ea965defc40fe0632ca9268304e87b10a48d 100644 GIT binary patch delta 826 zcmXw!PfQa*6vlU^rQQC4(kf!1HE0xRp)G8;DAEdr9xzdil88hDDW)J1EpDqM7!niZ zU^XGa(L{O>4PZ3Jc-Vtph)@zwX!PI(IcSs{5aOSp2f%p`y!_^S-}mOdnd}(7J4QpU z=C)X(^Gs8DQ@WcHNP|bjJLGHH({ULv4(ASwr$72uHnq#+qE|ci0AdFO0 z5@Dp>!*QpA;}u|0A_8*~ne!y!1{)+^&S%I^B*3+ShBzbC&v}_vaXz8}LfJZWmD*^ zm}+#wW{Rzv3Rt~)A5R~ecd>zOb$Gj8!P;T*@j7aO4gJU$7I@1%(r5)OBjdO-5uS@crRgt_CiTVEmreZtR&(}M^`eL z#yE%i16~aBF!+B>&t~m=iGh8$m+UZ7TYet&Y>KILkD^@b6SV@zx`9e6+vzNYBkYvn zP`0X!a|5bOQFFeeQh!5s!IKS+X6k~Hs{JXNBoL0dO7}=A@imIiho+bNCSX4GHSRyP zR9E(U7FyXiR|9k&bjz-};XuQU^Pc+KbMGLkoOwB#nf6Am9vyP`X#MUX9esUT+bEeA z>6c&Hyyu=swV>7~sUi$mKZ0*OP>aWj+Ho*{)Rwv>wL0q<_&W1uG!udKa&*=lnfb82 OJ``@}joSUNujL=2iRh#N delta 893 zcmXw!OH30{6o$FCuW4xzP(w>vB4~&OI&HZv;Z?yF#ki34w(sqlp_LEel-~V|>Jfuuy^gIlP&i|kDpP8Jc*;!iS z7`a$ie=0ECf2QlirATZz9QK_|d4^6$N%fc)(4#ZK@j#EOSM_)VHK4{gx;dr{nD<75miL=i)kbu78nJoL7=)ml zR%zHZ;t`?={#fZSRRcyjp7Z9K2`v@@(I{ZLBrtH!@#aSkof$36jCtJ}v?Hd>9z7vn zM-*Z?sH~eSU~JFa0BEq(17waxj!lajn#K8;)6Q`t9}k=7_=K3WVy}jy!-`{fI9?#s z4XaOYr~3~Sx7^ChBZUcB>Q6@#l9Z12NU=UeEV7kQd#Mf7y#hHNlcO>DGS{M@iJmH) z2U8s_!kwV6(7|O1@vTS;$g)yeSEqzKrlpK|1j1hNOSR7m4N;psv`u>9f#lX#o`HF?{u|}=2k)SW}Z#YELQ~wj*XSQQrn$lI=VEVzB{xg z(2cOV;JPo+mn&*(?Og#DtTy6R+Z@iOIcR2^DxHkgWs9$U%e{&jDs2D& delta 168 zcmZ2jxw2A6rYImkveL=N&E3q+z}Y>@w7fXf)ydn%E7UTS-B`~=&%ns}b@2ihv->L; zCz|RrF)~g})drChO+n;wBM|w^07y>OW;6s*v5a6|AB5V^XaW-a0+CZ=(gg7Wm~=o? dEt3|AS^=RhGlBK7FoP_aYyze>r!d=E0s!W@Cv*S+ diff --git a/spine-sfml/data/stretchyman.json b/spine-sfml/data/stretchyman.json index 63d89f419..1f852d0f2 100644 --- a/spine-sfml/data/stretchyman.json +++ b/spine-sfml/data/stretchyman.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "blOhTH+VBhIluqnZVQ+1mnv7uxQ", "spine": "3.4.02", "width": 264.48, "height": 570.1, "images": "./images/" }, +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, @@ -7,13 +14,11 @@ { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, - { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "inheritScale": false }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, - { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, - { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back foot 1", "parent": "hip", @@ -21,29 +26,28 @@ "rotation": -6.55, "x": -34, "y": -279.68, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, - { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "inheritScale": false }, - { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "inheritScale": false }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, - { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "inheritScale": false }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, - { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "inheritScale": false }, - { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, - { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, { "name": "front foot 1", "parent": "hip", @@ -51,11 +55,11 @@ "rotation": -10.97, "x": -77.04, "y": -285.03, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, { @@ -94,12 +98,13 @@ "y": -42.55, "color": "abe323ff" }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, - { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "inheritScale": false } + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } ], "slots": [ { "name": "back arm", "bone": "root", "attachment": "back arm" }, @@ -113,12 +118,14 @@ "ik": [ { "name": "back leg IK", + "order": 0, "bones": [ "back leg IK 1", "back leg IK 2" ], "target": "back leg IK target", "bendPositive": false }, { "name": "front leg IK", + "order": 1, "bones": [ "front leg IK 1", "front leg IK 2" ], "target": "front leg IK target", "bendPositive": false @@ -127,6 +134,7 @@ "transform": [ { "name": "back foot position", + "order": 4, "bones": [ "back foot 1" ], "target": "back leg 8", "rotation": 108.8, @@ -140,6 +148,7 @@ }, { "name": "front foot position", + "order": 5, "bones": [ "front foot 1" ], "target": "front leg 8", "rotation": 101.55, @@ -155,6 +164,7 @@ "path": [ { "name": "back leg path", + "order": 2, "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], "target": "back leg path", "spacingMode": "percent", @@ -163,6 +173,7 @@ }, { "name": "front leg path", + "order": 3, "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], "target": "front leg path", "spacingMode": "percent", @@ -177,7 +188,7 @@ "type": "mesh", "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], - "vertices": [ 1, 6, -7.68, -11.48, 1, 1, 6, 4.08, -13.62, 1, 1, 6, 23.48, -9.35, 1, 1, 7, 13.44, -9.22999, 1, 2, 7, 35.2, -9.62, 0.50649, 8, -0.57, -9.64999, 0.4935, 1, 8, 26.03, -6.38, 1, 1, 9, 14.15, -6.11, 1, 2, 9, 31.53, -5.56, 0.66492, 10, -3.33, -5.03, 0.33507, 1, 10, 13.08, -11.25, 1, 1, 10, 24.41, -14.88, 1, 1, 10, 30.15, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.07, -2.33, 1, 1, 10, 55.73, 14.14, 1, 1, 10, 41.39, 18.46999, 1, 1, 10, 37.28, 26.87, 1, 1, 10, 24.65, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.33, 6.77, 0.4788, 10, -1.11, 7.11, 0.52119, 1, 9, 13.77, 6.04, 1, 2, 8, 24.98, 6.17, 0.89217, 9, -5.47, 6.96, 0.10782, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.32, 7.44, 0.40157, 1, 7, 11.07, 8.84, 1, 1, 6, 17.89, 11.87, 1, 1, 6, -4.82, 9.45, 1, 1, 6, -13.68, -0.69, 1 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], "hull": 26, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], "width": 72, @@ -189,7 +200,7 @@ "type": "mesh", "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], - "vertices": [ 1, 11, -19.79, -5.66, 1, 2, 11, -5.61, -22.28, 0.83363, 16, -41.06, -23.3, 0.16636, 2, 11, 22.31, -21.98, 0.65187, 16, -13.17, -21.88, 0.34812, 3, 11, 50.83, -22.1, 0.3172, 16, 15.33, -20.86, 0.43086, 17, -19.67, -21.08, 0.25193, 4, 11, 79.83999, -23.28, 0.10791, 16, 44.37, -20.87999, 0.35417, 17, 9.3, -19.19, 0.31919, 18, -25.21, -20.06, 0.21871, 4, 16, 74.05, -20.98, 0.16485, 17, 38.93, -17.34, 0.32776, 18, 4.09, -15.38, 0.2983, 19, -30.1, -17.15, 0.20907, 3, 17, 65.53, -17.61, 0.17522, 18, 30.6, -13.1, 0.39172, 19, -4.11, -11.42, 0.43304, 3, 18, 57.03, -15.71, 0.19717, 19, 22.42, -10.53, 0.5297, 20, -12.96, -9.8, 0.27311, 3, 19, 46.04, -13.46, 0.40991, 20, 10.83, -10.17, 0.34747, 21, -24.93, -10.51, 0.24261, 3, 19, 73.37999, -18.69, 0.19432, 20, 38.58, -12.41, 0.37176, 21, 2.89, -10.98, 0.4339, 3, 20, 64.06, -14.98, 0.16664, 21, 28.48, -11.94, 0.56755, 12, -7.52, -11.48, 0.26578, 3, 21, 54.57, -12.36, 0.52113, 12, 18.54999, -10.93, 0.36167, 13, -3.08, 24.95, 0.11717, 4, 21, 82.97, -14.35, 0.35144, 12, 47, -11.86, 0.29521, 13, -13.06, -1.67, 0.25118, 14, -46.29, 1.83, 0.10216, 1, 13, 16.36, -4.67, 1, 2, 13, 34.31, -4.36, 0.53486, 14, 0.74, -4.42999, 0.46513, 3, 13, 51.09, -4.08, 0.1461, 14, 17.49, -5.42, 0.54314, 15, -15.5, -2.75, 0.31075, 2, 14, 34.66999, -4.01, 0.40714, 15, 1.64, -4.36, 0.59285, 2, 14, 45.08, -3.15, 0.25726, 15, 12.05, -5.34, 0.74273, 2, 14, 53.98, 5.81, 0.25311, 15, 22.38, 1.93, 0.74688, 2, 14, 37.18999, 9.56, 0.4029, 15, 6.5, 8.56, 0.59709, 3, 13, 57.07, 14.16, 0.1335, 14, 24.83, 12.32, 0.54644, 15, -5.17999, 13.44, 0.32003, 4, 21, 47.09, 33.09999, 0.13131, 13, 42.64, 19.07, 0.26349, 14, 10.81, 18.31, 0.49745, 15, -17.93, 21.78, 0.10773, 4, 21, 46.45, 16.09, 0.21158, 12, 9.35999, 17.2, 0.10679, 13, 26.5, 24.56, 0.4495, 14, -4.85, 25, 0.2321, 3, 21, 46.8, 8.62, 0.4011, 12, 9.99, 9.75, 0.24543, 13, 19.24, 26.37, 0.35346, 3, 21, 39.7, 8.6, 0.5825, 12, 2.9, 9.47, 0.30791, 13, 21.25, 33.16999, 0.10958, 3, 20, 59.16, 5.88, 0.21954, 21, 22.27, 8.58, 0.57946, 12, -14.51, 8.79, 0.20099, 3, 19, 71.83, 0.47, 0.21583, 20, 34.96, 6.47, 0.32262, 21, -1.92, 7.62, 0.46154, 3, 19, 45.8, 3.95, 0.40553, 20, 8.7, 7.12, 0.38601, 21, -28.16, 6.61, 0.20844, 3, 18, 56.78, 2.13, 0.25409, 19, 19.83, 7.12, 0.53004, 20, -17.45, 7.46, 0.21584, 3, 17, 66.18, 3.45, 0.22413, 18, 29.22, 7.92, 0.34135, 19, -8.25, 9.24, 0.43451, 4, 16, 76.6, 4.5, 0.19364, 17, 39.78, 8.26, 0.28886, 18, 2.48, 10.18, 0.33579, 19, -35.05, 7.97, 0.1817, 4, 11, 82.87999, 7.08, 0.11658, 16, 46.17, 9.57, 0.35727, 17, 9.08, 11.32, 0.35745, 18, -28.35, 10.29, 0.16869, 3, 11, 54.45, 12.1, 0.35356, 16, 17.57, 13.46, 0.44494, 17, -19.70999, 13.31, 0.20148, 2, 11, 24.65, 16.69, 0.65438, 16, -12.39, 16.85, 0.34561, 2, 11, -8.38, 15.21, 0.8533, 16, -45.34, 14.04, 0.14669, 1, 11, -20.18, 4.56, 1, 2, 14, 35.88, 2.53, 0.40509, 15, 3.98, 1.86, 0.5949, 3, 13, 54.37, 5.91, 0.1392, 14, 21.51, 4.29, 0.54494, 15, -9.85, 6.11, 0.31584, 2, 13, 37.78, 7.63, 0.44938, 14, 5.1, 7.26, 0.55061, 3, 21, 65.37999, 20.69, 0.11857, 13, 20.59, 11.34, 0.75134, 14, -11.76, 12.27, 0.13007, 3, 21, 65.41, 1.81, 0.39679, 12, 24.3, 0.23, 0.28257, 13, 2.06, 14.97, 0.32062, 3, 21, 48, 0.07, 0.55395, 12, 6.93, -0.32, 0.33293, 13, 3.37, 30.47, 0.11311, 3, 20, 65.94999, -2.96, 0.19447, 21, 24.95, -1.57, 0.57382, 12, -15.99, -0.42, 0.2317 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], "hull": 36, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], "width": 100, @@ -201,7 +212,7 @@ "type": "path", "lengths": [ 137.82, 291.73, 641.11 ], "vertexCount": 9, - "vertices": [ 1, 23, -43.14, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.07, -0.18, 1, 2, 23, 72.07, 13.65, 0.5, 24, -69.11, -16.07, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.02, 0.5, 2, 23, 202.92, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.03, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.81, 1 ] + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] } }, "body": { @@ -209,7 +220,7 @@ "type": "mesh", "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], - "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.42, 12.41, 0.24858, 5, 22.32, 18.17, 0.75141, 2, 4, 39.47, 25.24, 0.44331, 5, -1.05999, 25.71, 0.55668, 3, 3, 48.02, 29.46, 0.3743, 4, 14.54, 26.45, 0.47619, 5, -25.57, 21.01, 0.1495, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.64611, 4, -8.99, 30.49, 0.24146, 3, 32, -45.21, -8.8, 0.10611, 2, 28.68, 30.39, 0.49532, 3, 2.88, 30.84, 0.39856, 3, 32, -28.91, -12.44, 0.25801, 2, 12.15, 32.79, 0.60893, 3, -12.28, 37.83, 0.13304, 3, 32, -18.5, -14.05, 0.28713, 2, 2.33999, 35.97, 0.51935, 26, -7.59, 18.95, 0.1935, 4, 32, -10.78, -18.35, 0.28478, 25, -42.03, 75.56, 0.10294, 2, -6.36, 37.31, 0.37493, 26, -10.2, 10.25, 0.23733, 3, 32, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.2, -0.66, 0.33772, 4, 32, 10.64, -16.31, 0.3269, 37, -24.05, -14.89, 0.16082, 2, -27.57, 33.66, 0.14432, 26, -6.36, -11.04, 0.36794, 4, 32, 28.49, -15.62, 0.24236, 37, -9.54, -15.11, 0.27028, 38, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 32, 41.59, -14.89, 0.2176, 37, 6.92, -15.34, 0.33285, 38, -26.85, -17.48, 0.20377, 26, -1.29999, -43.27, 0.24577, 3, 37, 33.82, -15.8, 0.47178, 38, 0, -15.85, 0.42626, 39, -31.79, -17.82, 0.10194, 3, 37, 63.38, -16.48, 0.2126, 38, 29.52, -14.21, 0.42737, 39, -2.42, -14.38, 0.36002, 3, 38, 49.78, -15.51, 0.30177, 39, 14.85, -13.08, 0.47126, 40, -21.14, -15.63, 0.22694, 3, 38, 61.09, -13.4, 0.15443, 39, 29.03, -11.64, 0.50848, 40, -3.26, -12.45, 0.33708, 2, 39, 41.23, -10.79, 0.28077, 40, 8.39999, -8.79, 0.71921, 2, 40, 36.23, -8.59, 0.56512, 41, -3.02, -8.83, 0.43487, 3, 40, 67.93, -10.06, 0.16322, 41, 28.68, -7.81, 0.53712, 42, -8.10999, -7.69, 0.29965, 3, 41, 47.76, -8.47, 0.402, 42, 10.97, -7.89, 0.4513, 33, -26.34, -6.21, 0.14668, 3, 41, 64.61, -8.06, 0.25016, 42, 27.8, -8.39999, 0.46039, 33, -12.76, -8.81, 0.28943, 4, 41, 79.12, -10.24, 0.11858, 42, 42.33, -8.03, 0.26981, 33, 4.53, -8.37, 0.48104, 34, -1.55, 35.59999, 0.13056, 2, 33, 20.84, -9.18999, 0.72799, 34, -5.37, 19.54999, 0.272, 1, 34, -11.5, -7.29, 1, 4, 33, 43.23, 16.27, 0.2746, 34, 15.1, -7.51, 0.48158, 35, -12.29, -5.54, 0.12942, 36, -41.75999, 0.94, 0.11439, 4, 33, 36.99, 33.93999, 0.18804, 34, 33.7, -4.57, 0.34252, 35, 6.53, -5.75, 0.18296, 36, -23.19, -2.18, 0.28646, 3, 34, 53.35, -1.58, 0.21646, 35, 26.4, -6.08, 0.26516, 36, -3.61, -5.59, 0.51836, 2, 35, 47.99, -1.76, 0.15752, 36, 18.37, -4.66, 0.84247, 1, 36, 33.16, -0.11, 1, 2, 35, 47.97, 10.84, 0.17387, 36, 20.31, 7.79, 0.82612, 4, 33, 9.83, 48.43, 0.17571, 34, 53.28, 18.69, 0.17038, 35, 29.73, 13.92, 0.136, 36, 2.76, 13.66, 0.5179, 4, 33, 11.45, 34.57, 0.26313, 34, 39.25999, 20.54999, 0.23037, 35, 16.20999, 18.09, 0.15679, 36, -9.93999, 19.87999, 0.3497, 4, 33, 12.4, 17.12999, 0.37056, 34, 22.1, 22.5, 0.30409, 35, -0.37, 22.87, 0.18235, 36, -25.59, 27.17, 0.14297, 3, 33, 12.34, 10.43, 0.44639, 34, 15.56, 23.91, 0.2976, 35, -6.59, 25.36, 0.256, 5, 41, 75.94999, 9.06, 0.10562, 42, 38.15, 11.08, 0.25494, 33, 1.65, 10.97, 0.33578, 34, 17.98, 34.75, 0.16322, 35, -2.38, 35.64, 0.14041, 3, 41, 62.61, 10.94, 0.26063, 42, 26.04, 10.62, 0.49791, 33, -15.14, 10.14, 0.24144, 3, 41, 47.27, 9.67, 0.40348, 42, 9.53, 10.18999, 0.4787, 33, -26.59, 11.93, 0.11781, 3, 40, 69.23, 6.97, 0.16043, 41, 28.63, 9.26, 0.53934, 42, -7.94, 9.38, 0.30019, 2, 40, 37.36, 8, 0.57647, 41, -3.21, 7.8, 0.42351, 2, 39, 45.48, 7.1, 0.29349, 40, 8.38, 9.60999, 0.7065, 3, 38, 62.84, 9, 0.15445, 39, 29.4, 10.82, 0.49324, 40, -8.12, 9.49, 0.35229, 3, 38, 52.14, 9.27, 0.30575, 39, 12.84, 11.73, 0.46742, 40, -26.12, 8.77, 0.22682, 3, 37, 66.66, 11.26, 0.21798, 38, 30.61, 13.69, 0.42844, 39, -3.05, 13.53, 0.35357, 3, 37, 37.7, 16.76, 0.48245, 38, 1.30999, 16.92, 0.41751, 39, -32.49, 14.97, 0.10002, 4, 32, 44.34, 22.11, 0.23459, 37, 11.91, 21.43, 0.43853, 38, -24.76, 19.56, 0.20679, 2, -58.28, -7.19, 0.12007, 4, 32, 28.54, 23.57, 0.31079, 37, -3.76, 23.83, 0.19157, 25, -76.76, 29.22, 0.2153, 2, -42.42, -7.45, 0.2823, 3, 32, 22.31, 41.64, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37848, 3, 32, 19.77, 51.42, 0.1392, 25, -59.84, 2.52, 0.47895, 2, -23.89, -35.16, 0.38184, 3, 32, 6.03, 61.53, 0.10543, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.16, -13.13, 0.67426, 2, -1.22, -50.82, 0.32573, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.49, 0.89018, 2, 37.39, -48.18, 0.10981, 3, 25, 30.4, 0.96, 0.43019, 2, 66.35, -36.72, 0.16237, 3, 19.96999, -44.2, 0.40743, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.21, 0.31834, 2, 3, 50.68, -30.61, 0.51066, 4, 0.38, -31.99, 0.48933, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.28, 0.12041, 3, 3, 69.4, -22.88, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.52, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.55, -19.37, 0.1738, 5, 26.05, -13.63, 0.82619, 5, 32, 20.79, 3.26, 0.38867, 37, -12.73, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10105, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.24, 0.13748, 4, 32, 2.68, 26.81, 0.26409, 25, -50.86, 29.21, 0.2337, 2, -16.39, -8.72999, 0.34628, 26, 35.78, -0.48, 0.15592, 3, 32, -15.65, 28.57, 0.15678, 25, -33.53, 28.78, 0.29159, 2, 2.02, -9.1, 0.55161, 1, 25, -28.17, 8.37, 1, 1, 25, -5.01, 10.99, 1, 3, 25, 24.12, 24.17, 0.12051, 2, 60.06, -13.51, 0.21384, 3, 20.53, -20.16, 0.66563, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.65, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58729, 5, -3.66, 7.65, 0.4127, 2, 3, 39.52, 3.1, 0.47136, 4, -0.95, 3.49, 0.52863, 1, 3, 17.87999, 2.56, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 32, -2.63, 46, 0.10032, 25, -45.41, 10.26, 0.52611, 2, -9.64, -27.46, 0.37355, 2, 35, 47.98, 4.75, 0.16597, 36, 19.37, 1.77, 0.83402, 4, 33, 19.54999, 50.48, 0.12624, 34, 53.3, 9.5, 0.16908, 35, 28.21, 4.85, 0.24846, 36, -0.13, 4.94, 0.4562, 4, 33, 26.31, 16.82, 0.32786, 34, 18.95999, 9.25, 0.38307, 35, -5.68, 10.34, 0.15879, 36, -32.77, 15.61, 0.13026, 2, 33, 16.95999, -0.03, 0.66864, 34, 4.23, 21.71, 0.33135, 3, 33, 28.1, 2.85, 0.4826, 34, 4.91, 10.14, 0.31302, 35, -19.37999, 13.57, 0.20437, 3, 41, 63.21, -0.58, 0.21068, 42, 25.96, 0.78, 0.49386, 33, -11.01, 1.48, 0.29543, 3, 32, -14.83, 8.08, 0.24448, 25, -33.34, 51.23, 0.16324, 2, 2.58999, 13.53, 0.59226, 4, 32, 3.37, 4.96, 0.28616, 25, -51.81, 51.13, 0.16476, 2, -15.86, 13.44, 0.31891, 26, 13.85, -0.52, 0.23015, 4, 32, 46.08, 3.58, 0.24089, 37, 9.06, 3.09, 0.41151, 38, -28.46, 0.64, 0.21862, 26, 17.5, -43.07, 0.12896, 3, 37, 37.22, 1.25, 0.47744, 38, -0.08, 1.25, 0.42162, 39, -36.25, -5.25, 0.10092, 4, 32, -5.23, 6.29, 0.25594, 25, -43.1, 51.32, 0.15578, 2, -7.16, 13.62, 0.42092, 26, 14.16, 8.17, 0.16734, 4, 32, 33.03, 3.37, 0.36684, 37, -3.96, 3.6, 0.31093, 2, -45.32, 9.82, 0.17306, 26, 15.75, -30.14, 0.14914, 4, 41, 77.5, -1.16, 0.11479, 42, 40.23, 0.95, 0.26888, 33, 3.05, 0.72, 0.44972, 34, 7.66, 35.32, 0.16659, 4, 33, 22.72, 34.66999, 0.2209, 34, 37.18, 9.38, 0.26955, 35, 12.29, 7.43, 0.20636, 36, -15.46, 9.95, 0.30317 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], "hull": 60, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], "width": 141, @@ -221,7 +232,7 @@ "type": "mesh", "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], - "vertices": [ 1, 47, 21.66, 6.07, 1, 2, 46, 18.12999, 3.37, 0.16553, 47, 3.91, 4.23, 0.83446, 3, 27, -6.12, -15.23, 0.20965, 46, -0.04, 8.85, 0.53629, 5, 43.44, 6.81, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.88821, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.57, -9.68999, 0.30995, 28, 12.31, -9.60999, 0.69004, 2, 28, 24.21, -9.37, 0.86562, 29, -13.42, -6.2, 0.13437, 2, 28, 32.12, -9.21, 0.73143, 29, -5.72, -8.02, 0.26856, 2, 28, 39.34999, -7.58, 0.54007, 29, 1.68, -8.24, 0.45992, 2, 28, 46.9, -5.88, 0.29036, 29, 9.41, -8.47999, 0.70963, 2, 29, 18.58, -8.76, 0.66539, 30, -15.75, -5.12, 0.3346, 1, 30, 6.03, -8.58, 1, 2, 30, 31.42, -5.97, 0.39256, 31, 0.49, -6.36, 0.60743, 1, 31, 23.79, -9.31, 1, 1, 31, 52.37, -11.28, 1, 1, 31, 62.39, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.48, 1, 1, 31, 25.99, 28.24, 1, 1, 31, 8.33, 5.63, 1, 2, 30, 28.81, 6.64, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.66, 11.07, 0.10767, 29, 18.26, 6.74, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.87, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.35, 9.85999, 0.40816, 2, 28, 23.72, 9.68999, 0.83035, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.2992, 28, 13.67, 9.97, 0.70079, 2, 27, 32.18, 12.59, 0.84686, 28, -6.23, 12.54, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47199, 4, 29.16, -0.35, 0.528, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.45, -29.43, 1, 2, 5, -8.22999, -31.56, 0.51928, 4, 19, -28.73, 0.4807, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.69, -14.54, 0.25481, 47, 2.13, -14.4, 0.32231, 5, 42.47, -19.81, 0.42286, 1, 47, 13.63, -8.89, 1, 1, 27, 3.55, 0.9, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.33, 0.49989, 1, 5, 25.66, -11.24, 1, 3, 46, 13.39, -4.64, 0.33234, 47, 0.86, -4.56, 0.48165, 5, 48.11, -11.65, 0.186 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], "hull": 38, "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], "width": 145, @@ -233,7 +244,7 @@ "type": "path", "lengths": [ 140.43, 297.34, 652.04 ], "vertexCount": 9, - "vertices": [ 1, 44, -40.7, -0.41, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.42, 0.33, 1, 2, 44, 82.92, 8.49, 0.5, 45, -58.75, -8.53, 0.5, 2, 44, 141.34, 0.52, 0.5, 45, 0.45, 0.71, 0.5, 2, 44, 208.26, -14.83, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.81, 1.41, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.76, 1 ] + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] } }, "head": { @@ -241,7 +252,7 @@ "type": "mesh", "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], - "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.33, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.14, 26.24, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.06, 1, 1, 47, 10.7, -8.62, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.7, -44.64, 1, 1, 48, 27.89, -48.41, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.91, -45.89, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.05, 1, 1, 48, 86.81, -25.91, 1, 1, 48, 92.45, -10.29, 1, 1, 48, 60.63, -22.97, 1, 1, 48, 49.77, -12.03, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.73, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.7, 1, 1, 48, 63.85, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.66, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.39, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.07, -38.41999, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], "hull": 19, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], "width": 87, @@ -260,11 +271,11 @@ { "time": 0.3333, "angle": -31.29 }, { "time": 0.5333, "angle": -44.75 }, { "time": 0.7333, "angle": -25.49 }, - { "time": 0.9, "angle": -9.45 }, + { "time": 0.8999, "angle": -9.45 }, { "time": 1.0666, "angle": 30.27 }, { "time": 1.2333, "angle": -10.1 }, { "time": 1.6333, "angle": -41.47 }, - { "time": 1.8, "angle": 30.27 } + { "time": 1.7999, "angle": 30.27 } ], "translate": [ { "time": 0, "x": -57.43, "y": -40.92 }, @@ -284,7 +295,7 @@ { "time": 0.4333, "x": 344.29, "y": -134.94 }, { "time": 0.5333, "x": 543.13, "y": -81.1 }, { "time": 0.7333, "x": 569.68, "y": -62.13 }, - { "time": 0.9, "x": 591.8, "y": -46.32 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, { "time": 1.0666, "x": 653.14, @@ -296,7 +307,7 @@ { "time": 1.3333, "x": 986.94, "y": -153.35 }, { "time": 1.4333, "x": 1178.19, "y": -111.88 }, { "time": 1.6333, "x": 1195.1, "y": -62.1 }, - { "time": 1.8, "x": 1246.53, "y": -40.92 } + { "time": 1.7999, "x": 1246.53, "y": -40.92 } ] }, "front leg IK target": { @@ -311,32 +322,32 @@ "curve": [ 0.532, 0, 0.75, 1 ] }, { "time": 0.7333, "x": 566.43, "y": 107.27 }, - { "time": 0.9, "x": 1215.89, "y": 68.21 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, { "time": 1.0666, "x": 1235.47, "y": 15.8 }, { "time": 1.2333, "x": 1235.47, "y": 0.97 }, { "time": 1.5666, "x": 1230.15, "y": 3.76 }, { "time": 1.7, "x": 1244, "y": 26.76 }, - { "time": 1.8, "x": 1253.53, "y": 44.61 } + { "time": 1.7999, "x": 1253.53, "y": 44.61 } ] }, "front foot 1": { "rotate": [ { "time": 0, "angle": -48.38, "curve": "stepped" }, { "time": 0.3333, "angle": -48.38 }, - { "time": 0.7, "angle": -121.34 }, + { "time": 0.6999, "angle": -121.34 }, { "time": 0.8, "angle": -80.19 }, - { "time": 0.9, "angle": 45.59 }, + { "time": 0.8999, "angle": 45.59 }, { "time": 1.0666, "angle": 2.1 }, { "time": 1.2333, "angle": 4.65 }, { "time": 1.5666, "angle": 5.66 }, - { "time": 1.8, "angle": -48.38 } + { "time": 1.7999, "angle": -48.38 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.6, "x": 1, "y": 1 }, { "time": 0.6333, "x": 0.954, "y": 1 }, { "time": 0.7666, "x": 0.82, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, { "time": 1.0666, "x": 0.851, "y": 1 }, { "time": 1.3666, "x": 1, "y": 1 } ] @@ -348,12 +359,12 @@ { "time": 0.5, "angle": 34.84 }, { "time": 0.5333, "angle": 30.32 }, { "time": 0.5666, "angle": 61.67 }, - { "time": 0.7, "angle": -19.47 }, - { "time": 0.9, "angle": -0.12 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, { "time": 1.0666, "angle": -7.21 }, { "time": 1.2333, "angle": -11.34 }, { "time": 1.5666, "angle": -11.23 }, - { "time": 1.8, "angle": 36.32 } + { "time": 1.7999, "angle": 36.32 } ] }, "back leg IK target": { @@ -361,15 +372,15 @@ { "time": 0, "x": 516.79, "y": 86.68 }, { "time": 0.1666, "x": 523.71, "y": 16.63 }, { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, - { "time": 0.7, "x": 523.03, "y": -5 }, - { "time": 0.9, "x": 551.31, "y": 41.86 }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, { "time": 1.0666, "x": 554.24, "y": 44.45 }, { "time": 1.1333, "x": 555.44, "y": 44.74 }, { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, { "time": 1.4333, "x": 556.6, "y": 46.19 }, { "time": 1.5, "x": 746.96, "y": 74.82 }, { "time": 1.6333, "x": 1127.68, "y": 103.61 }, - { "time": 1.8, "x": 1820.75, "y": 86.68 } + { "time": 1.7999, "x": 1820.75, "y": 86.68 } ] }, "back foot 1": { @@ -377,32 +388,32 @@ { "time": 0, "angle": 74.17 }, { "time": 0.1666, "angle": -17.01 }, { "time": 0.3333, "angle": 5.05 }, - { "time": 0.7, "angle": 3.74 }, - { "time": 0.9, "angle": -65.56 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, { "time": 1.6333, "angle": -92.52 }, - { "time": 1.8, "angle": 74.17 } + { "time": 1.7999, "angle": 74.17 } ], "scale": [ { "time": 0, "x": 0.824, "y": 1 }, { "time": 0.1666, "x": 0.754, "y": 1 }, { "time": 0.3333, "x": 0.589, "y": 1 }, { "time": 0.5666, "x": 0.909, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 1.4, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, { "time": 1.5, "x": 0.844, "y": 1 }, - { "time": 1.8, "x": 0.824, "y": 1 } + { "time": 1.7999, "x": 0.824, "y": 1 } ] }, "back foot 2": { "rotate": [ { "time": 0, "angle": 8.13 }, { "time": 0.1666, "angle": -3.21 }, - { "time": 0.7, "angle": -1.14 }, - { "time": 0.9, "angle": 34.12 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, { "time": 1.4333, "angle": 46.68 }, { "time": 1.5333, "angle": -15.6 }, { "time": 1.6333, "angle": -11.91 }, - { "time": 1.8, "angle": 8.13 } + { "time": 1.7999, "angle": 8.13 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -416,12 +427,12 @@ { "time": 0.1666, "angle": -37.29 }, { "time": 0.3333, "angle": 30.66 }, { - "time": 0.9, + "time": 0.8999, "angle": -53.28, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 36 }, - { "time": 1.8, "angle": -39.71 } + { "time": 1.7999, "angle": -39.71 } ] }, "neck 1": { @@ -434,7 +445,7 @@ { "time": 1.1666, "angle": 23.95 }, { "time": 1.2333, "angle": 36.37 }, { "time": 1.6333, "angle": 41.16 }, - { "time": 1.8, "angle": 21.95 } + { "time": 1.7999, "angle": 21.95 } ] }, "neck 2": { @@ -444,11 +455,11 @@ { "time": 0.2666, "angle": 8.84 }, { "time": 0.3333, "angle": 30.71 }, { "time": 0.7333, "angle": -3.36 }, - { "time": 0.9, "angle": -17.57 }, + { "time": 0.8999, "angle": -17.57 }, { "time": 1.1666, "angle": 2.19 }, { "time": 1.2333, "angle": 15.25 }, { "time": 1.6333, "angle": 4.41 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "head": { @@ -459,11 +470,11 @@ { "time": 0.3333, "angle": 13.1 }, { "time": 0.5, "angle": 13.1 }, { "time": 0.7333, "angle": -18.9 }, - { "time": 0.9, "angle": -41.77 }, + { "time": 0.8999, "angle": -41.77 }, { "time": 1.1666, "angle": -4 }, { "time": 1.2333, "angle": -2.35 }, { "time": 1.6333, "angle": -22.89 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "back arm 1": { @@ -472,11 +483,11 @@ { "time": 0.1666, "angle": -18.65 }, { "time": 0.3333, "angle": 324.98 }, { "time": 0.5666, "angle": -6.41 }, - { "time": 0.9, "angle": -14.83 }, + { "time": 0.8999, "angle": -14.83 }, { "time": 1.0666, "angle": -16.9 }, { "time": 1.2333, "angle": 1.49 }, - { "time": 1.4, "angle": 2.56 }, - { "time": 1.8, "angle": -17.23 } + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } ], "translate": [ { "time": 0, "x": -14.25, "y": -6.6 } @@ -494,7 +505,7 @@ { "time": 1.2333, "x": 0.956, "y": 1 }, { "time": 1.4333, "x": 2.315, "y": 1 }, { "time": 1.6333, "x": 0.774, "y": 1 }, - { "time": 1.8, "x": 2.186, "y": 1 } + { "time": 1.7999, "x": 2.186, "y": 1 } ] }, "front leg 1": { @@ -518,18 +529,18 @@ "y": 1, "curve": [ 0.532, 0, 0.75, 1 ] }, - { "time": 0.7, "x": 1, "y": 1 }, - { "time": 0.9, "x": 2.248, "y": 1 }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, { "time": 1.0666, "x": 2.002, "y": 1 }, { "time": 1.2333, "x": 1.495, "y": 1 }, { - "time": 1.3, + "time": 1.2999, "x": 1.047, "y": 1, "curve": [ 0.339, 0.58, 0.764, 1 ] }, { "time": 1.4333, "x": 0.779, "y": 0.762 }, - { "time": 1.8, "x": 1, "y": 1 } + { "time": 1.7999, "x": 1, "y": 1 } ] }, "front leg IK 2": { @@ -543,12 +554,12 @@ { "time": 0.1666, "angle": 17.37 }, { "time": 0.3333, "angle": 31.94 }, { - "time": 0.9, + "time": 0.8999, "angle": 4.76, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 39.96 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "spine 2": { @@ -561,7 +572,7 @@ { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -6.69 }, { "time": 1.6333, "angle": -2.5 }, - { "time": 1.8, "angle": -3.49 } + { "time": 1.7999, "angle": -3.49 } ] }, "spine 3": { @@ -571,11 +582,11 @@ { "time": 0.3333, "angle": -9.02 }, { "time": 0.5, "angle": -2.65 }, { "time": 0.7333, "angle": -10.53 }, - { "time": 0.9, "angle": -16.16 }, + { "time": 0.8999, "angle": -16.16 }, { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -9.02 }, { "time": 1.6333, "angle": -7.26 }, - { "time": 1.8, "angle": -20.41 } + { "time": 1.7999, "angle": -20.41 } ] }, "back arm 3": { @@ -584,22 +595,22 @@ { "time": 0.1666, "angle": 53.14 }, { "time": 0.3333, "angle": 116.25 }, { "time": 0.5666, "angle": 35.72 }, - { "time": 0.9, "angle": 39.32 }, + { "time": 0.8999, "angle": 39.32 }, { "time": 1.0666, "angle": 41.19 }, { "time": 1.2333, "angle": 78.09 }, - { "time": 1.4, "angle": 36.16 }, - { "time": 1.8, "angle": 26.23 } + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } ] }, "back foot 3": { "rotate": [ { "time": 0, "angle": 11.35 }, - { "time": 0.7, "angle": -4.24 }, - { "time": 0.9, "angle": 25.48, "curve": "stepped" }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, { "time": 1.4333, "angle": 25.48 }, { "time": 1.5333, "angle": -30.51 }, { "time": 1.6333, "angle": -20.54 }, - { "time": 1.8, "angle": 11.35 } + { "time": 1.7999, "angle": 11.35 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -614,11 +625,11 @@ { "time": 0.3333, "angle": -24.32 }, { "time": 0.5, "angle": -13.37 }, { "time": 0.7333, "angle": 21.61 }, - { "time": 0.9, "angle": 46.61 }, + { "time": 0.8999, "angle": 46.61 }, { "time": 1.1666, "angle": -28.69 }, { "time": 1.2333, "angle": -43.33 }, { "time": 1.6333, "angle": 24.89 }, - { "time": 1.8, "angle": 10.81 } + { "time": 1.7999, "angle": 10.81 } ] }, "spine 4": { @@ -628,11 +639,11 @@ { "time": 0.3333, "angle": -0.82 }, { "time": 0.5, "angle": 4.13 }, { "time": 0.7333, "angle": -3.74 }, - { "time": 0.9, "angle": -9.37 }, + { "time": 0.8999, "angle": -9.37 }, { "time": 1.1666, "angle": -9.02 }, { "time": 1.2333, "angle": -0.82 }, { "time": 1.6333, "angle": 3.81 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "front foot 2": { @@ -642,12 +653,12 @@ { "time": 0.3333, "angle": -0.2 }, { "time": 0.5, "angle": 22.72 }, { "time": 0.5333, "angle": 26.87 }, - { "time": 0.7, "angle": -39.25 }, - { "time": 0.9, "angle": 11.26 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, { "time": 1.0666, "angle": -18.17 }, { "time": 1.2333, "angle": -2.64 }, { "time": 1.5666, "angle": -5.84 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "belly": { @@ -660,7 +671,7 @@ { "time": 1.1, "x": -0.44, "y": -1.45 }, { "time": 1.2333, "x": 12.37, "y": 2.32 }, { "time": 1.3666, "x": 11.51, "y": 5.52 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "butt": { @@ -669,7 +680,7 @@ { "time": 0.7666, "x": 9.88, "y": -25.41 }, { "time": 0.8333, "x": 15.89, "y": -41.88 }, { "time": 1.2333, "x": -12.49, "y": -32.99 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] } }, @@ -688,7 +699,7 @@ { "time": 1.4333, "offset": 110, - "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56073, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] }, { "time": 1.5 } ] @@ -698,11 +709,11 @@ { "time": 1.4333 }, { "time": 1.5, - "vertices": [ 4.67718, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17206 ] + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] }, { "time": 1.5666, - "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62085, -280.84912 ] + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] }, { "time": 1.6666 } ] @@ -713,7 +724,7 @@ { "time": 0.3333, "offset": 164, - "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28855, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] }, { "time": 0.5333, @@ -746,11 +757,11 @@ { "time": 0.5666 }, { "time": 0.6333, - "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] }, { - "time": 0.7, - "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] }, { "time": 0.8 } ] diff --git a/spine-sfml/data/stretchyman.skel b/spine-sfml/data/stretchyman.skel index 446978f6bc7d53c027fd3a031fe0ae9683c6fe79..91f55d163573a8ab641870b04ea32b1b768fc56a 100644 GIT binary patch delta 4394 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 delta 4480 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 Iuzk9J1CFVrfdBvi diff --git a/spine-sfml/data/tank.json b/spine-sfml/data/tank.json index cab50642b..b483fe274 100644 --- a/spine-sfml/data/tank.json +++ b/spine-sfml/data/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-sfml/data/tank.skel b/spine-sfml/data/tank.skel index 3946eb333eb1f33dcc4cf1b53b8f8a26dd9ec1c1..3183baafa36a3697a36a20f9831f49aa99a6d97d 100644 GIT binary patch delta 877 zcmZY6KWGzC90%}wcS-JY`L7h4T1pbItu{&1T>f-Ww7HO0w4$xl+JcanGc7gO8k35f zwg}px7~fg^H2}XkEzZKYx0UPNroC6SN4Yp zSH2KrtU{_oYA~pW3^2zD3+ znUDD}bA$IYtwKNZh!A6z(5C|XSM-YzVYV3#F^3F&Ox*zU5777MHrj3U+qiFPvMCk| zS~?r=psz*G|IOfjXxP2ajj+RpF~GE$z{BVqT0!5T+h~snGZW}7bX^SC@mUf+D?HE( zTkojC2md{7NP@c;&^7b}`Wy9|VRaf^L0_WZ(S0(krqB}l2>m3(`NbgT*v$qbFTyXDF@8l#r(zr z@9mcZ-e=GW`H~ZI1@lM9Rg=rlTh%2AII5Vqj!zKM}x{%X~gzRy0>_bfQ zwHZyj9LUV(B$7-dmKBBG^zOaqbJ4ulA`1M-$yA~S75&4$d9Tce4fL5eE*Z(`)Z6y^ zmDYF{G0`sHpd^xsvBY$%r3*ec;j4Fi**1P@uDTU>TlmcwmDLX7q6gG&es!IWsy%R7 PY+cq=H~UqsskzR-w9)Bq delta 890 zcmZ9~+iTNs6bJDB(x#U*P2zAH(`~jxotL)uUiYA-Yhlx(AgD~}OI*{eXyYs`t2b1n zua*+`A}WYOP;ffxLqTNI2gN@?#y~+=9l}7_gA9DB{hdP}w2*xA?K$U{@Jl`|l7~yg z-5<%9XH+eurX~u>O93TUKBvi!+b*leMCvX>!=6ZxAOPh%+!S&4g)s%mgSajGJOM z9-u^w5lSAJGtztOAB`ajXWB;zoAy&=6U^O4ULik_Zq_XjvX)4;EX9H%XQJD57YmPY zfrY7i$OqO#m)b;jnLQ#-Sz*c_bauvWnxXMI@)@yP;Lj06MP@DkE)wwX=`6B=9XqTr zb_}_KJVBNb*7n~bBficevJIxI$ZKRB>Eoa_hLn&;9PIWA2YV>kfdo=Uo*}FDAl;1~ z9yrQF=XD-l!3#{^G4(j0mU2MtDy9WYtC)HPsErHIc@5J%rY5GXBGitE(0N&eH@_gl zSMd$gb_vpP32GHc^@b!#ZX!5hHw*@{B`;4-fGpHmhBcR+gsw%`apdvGy$5_u)&%jtWDYYcgIXNWE zCCJ5z(eVQV!$cheMuv%T+CZWkMCWKf3_^Wk)B&lKX980`5ULVFEn_kU X$=!lbe9T~;6ND;bw%NRyIa37yb5$rT diff --git a/spine-sfml/example/main.cpp b/spine-sfml/example/main.cpp index a76c20244..4ac13458f 100644 --- a/spine-sfml/example/main.cpp +++ b/spine-sfml/example/main.cpp @@ -39,22 +39,25 @@ using namespace spine; #include #include -void callback (AnimationState* state, int trackIndex, EventType type, Event* event, int loopCount) { - TrackEntry* entry = AnimationState_getCurrent(state, trackIndex); +void callback (AnimationState* state, EventType type, TrackEntry* entry, Event* event) { const char* animationName = (entry && entry->animation) ? entry->animation->name : 0; switch (type) { case ANIMATION_START: - printf("%d start: %s\n", trackIndex, animationName); + printf("%d start: %s\n", entry->trackIndex, animationName); break; + case ANIMATION_INTERRUPT: + printf("%d interrupt: %s\n", entry->trackIndex, animationName); case ANIMATION_END: - printf("%d end: %s\n", trackIndex, animationName); + printf("%d end: %s\n", entry->trackIndex, animationName); break; case ANIMATION_COMPLETE: - printf("%d complete: %s, %d\n", trackIndex, animationName, loopCount); + printf("%d complete: %s\n", entry->trackIndex, animationName); break; + case ANIMATION_DISPOSE: + printf("%d dispose: %s\n", entry->trackIndex, animationName); case ANIMATION_EVENT: - printf("%d event: %s, %s: %d, %f, %s\n", trackIndex, animationName, event->data->name, event->intValue, event->floatValue, + printf("%d event: %s, %s: %d, %f, %s\n", entry->trackIndex, animationName, event->data->name, event->intValue, event->floatValue, event->stringValue); break; } @@ -294,7 +297,7 @@ void stretchyman (SkeletonData* skeletonData, Atlas* atlas) { skeleton->flipX = false; skeleton->flipY = false; - skeleton->x = 320; + skeleton->x = 100; skeleton->y = 590; Skeleton_updateWorldTransform(skeleton); @@ -353,6 +356,6 @@ int main () { testcase(raptor, "data/raptor.json", "data/raptor.skel", "data/raptor.atlas", 0.5f); testcase(spineboy, "data/spineboy.json", "data/spineboy.skel", "data/spineboy.atlas", 0.6f); testcase(goblins, "data/goblins-mesh.json", "data/goblins-mesh.skel", "data/goblins.atlas", 1.4f); - testcase(stretchyman, "data/stretchyman.json", "data/stretchyman.skel", "data/stretchyman.atlas", 1.4f); + testcase(stretchyman, "data/stretchyman.json", "data/stretchyman.skel", "data/stretchyman.atlas", 0.6f); return 0; } diff --git a/spine-starling/spine-starling-example/lib/spine-as3.swc b/spine-starling/spine-starling-example/lib/spine-as3.swc index 26a28913d9aafe2036e8c020a27e0d0e21930fb4..00486d2a27d5195154c44c4c2011278dcfe1823d 100644 GIT binary patch literal 86016 zcmV)FK)=6GO9KQH00;mG0B3J!NdN!<000000000001E&B0ApcvVQg<_E_iKh?Oj=O z+c*+_pI_nfdo0`_Tu!E(Icj%mvy&NTW*=RYL^<5(Dv^rgf4`up1EdJ3L6M@g@rz5c z2s8mS(A{4jxcl+jWPJ5CS|sso`t};%pzEt>I+zXP>C@HQ>t#B66I}oJ?uWbNd2pp4 zohEOuKd0&Zw%2=pe!dBZvwn0lm`!@4ahQDW>8A!^8jfdAJ$3!=hpVf*b=OJuMSsn@ zF{qL2tKRyT(K!0H`-$C%>{a^9cszW2O(;S5`f3tSUJu$<3li!>Vky?L76pzP^Y zS9d*=Mir z8s!hAFZ1jrEl)o_-apXC$D6Ow;P&rmkj@r|TIBsd%)^1^rVq1W1Z(hdmc*%EKzNHk zXK9#5@aG@KvlKGq>IsUxC&<>~e(|)NMAP(_#p3Y8zxV&EJKa1L+q!(9n@6VRBX_-= z6J3lMrfE3%oV`%eyWf5`m{TaurIk4Y9uP?dqITZAF-Y8+Bra`w^wE<>-zq1`y@M%c zm|`S(0Gy?LN{#N$jJbiE=1Vk=(%BTg#XwJ5S)#p#{5YG9cMB%DWK0O_f)OSt;|e?2 z`Zn*;d8W{hu7?FY#iMZ<&+x6-=$v!Q@X)>BECUAAD zvdM+$M7bOTZeh-|pQLikao%4O0{MX8Y+9H@w(^;+-7jCGJ^RYNfS3kED5<3548AqG zy@XjX)z(J0?@CViQhPD*}b*H|1W4LF?WcLeEb#r8(VDSO90}^P%Rbc(lL13WJeRDSJ z31-J4 zYv;d#Bg+&Cy$SU$bd1dG*TG801au8`Y`FTj#5|A!6zF|q1#Pi5Rmcj~b(!LYo}1lR zP5>XIE>$@3d@1kSV6AG`2Icp&1?e*Hm`{izJE!h`^6&k1_?dkxB~(d z&Q8?=)J+^39#&*zVhvC92FTlwMy$8L)<=!s8}ElUdI82zV*Y^<1!V+q zM1WajPoDrY)F2##kKg^g}{?i>%@O}PV@y!01aZdb+Khp7pZ+6#Q{|(hJIr&p z%4G#*i+^GfU~I>NIhI%`8aPmHhZ@u>ve_o9oH!<`IWV{##jt|8>zE0Zm_VCY{|Y`% zifBI}fmLYIfFeRLal|Fxmiumv?doISTGt%EJb@Xoadxe3#zRMcNYgHi{umge{Uh3H za)C3sBtuB^tV7YW+jR}#na3oId>7eJTXuvxmW5&hqX4-)%iB&*KB&i`BDAkY1FqHY z5QPI03NAw#hGfM0QbZzR1Hwo8zx|PN3pj+YWI(H3U0SVm% zSIT()=F!&`3p5Z?4_D!B{N|R74n8h3>%lqC*%Qb*}BzKnmn2`%!W=cW$7S9LR=;DN81|o1rowEYREz;^q>O%WyG) z#-0}P-Wj53M{Bf^n_v<_M5)Mz?KH&s2u;o?}EVVqMU@_)uP@Su(M zlbf58qqcbDwrhNplcvBLDwbRb;pRt2au!hB*&-lXQPoQ@yy>fA++M~TvA= z{9s=|{j!sdtGvE-IX$av9-GP6eQ84YsZ>+f_s%}>k4E+nAU?Qi#{+v_iePi`9{CII z`{i0L7f_MfVgf^}KoHxRtZi+|5rgRnRg^Bnp!Nu+d$o@DMSeL82#Qw|E%BAMoV^S7 z=43h>`L<4pM_fJOTyZL#fzLZn6x3q{sZCNJB(PSVY}m7EHru2Xc)IS)iD(=V^Ysvd z`$KFz+EOe45_g^J3T?gf!#0nkDA@nnyhjq*;UysgOjV#@dDsSl&IemvJ;j98h&@Cl zlQ9bE*#Ql^np9V~nzsq?>b~`W&pfYeAy^_AAkA>z2pZ_xmZK`0HBk!kEJ`|p%%4*O zu37@rW*d%?mZZvciC>9pDye-RtaAjExkhr&g+-xD(_W^A=h7SnuO4fY*Sf0da2?d{ z95!pU04iD#5i-zPj7!;GcX>z`xxlM?j5;^PQgH>(DWXIwnXIBX?meb z-Ii;N3>c-c2Y!QNf>oyFBsjP*+wc9 zAuenpX}$7HP{|cSz#4!KdaoPk(#3Wm3K9xM6D5^1Fs>L}+0l;4eTs!VP&*!r71L6M zA?2zdl=s+}7ro8eiY;FJ3Qrt8qpNHxy|snhC6TNIjV+B+5Gg5Uu$cK0kyq`fQTcM(vLCy9 zV)pMt+X0I>1D378B2%1jhJjZCRS>!ih2>(RCC(?sd}pbHuR!41PD9M4LmT$L>vSmB z;B7`{IkTt?QbF%)B9tC&dT1{JXD<%@!2qbijp)jd1CdSb>oMB+`l1Q@6aWYS2mohqXGs760000000000000XB003-hVsc?}c`kEz zW&jRA@xMb?Qw{};0swdcynP9LTvfgQJ$IQqdnS{;N!n?fHc6W{vt%!nrpt5zTA(eo zK&W#kGfilk)J&4LiZbk=B8v(t;%f`2fFOcC1$~0J0WM@wz!kU0Q{P{6_388ZT>Ah1 z&bfD%G_<_;`S2z=%RT4Zv!CDjo!|NWe)ou^{#=s$ACshNCT%ROktFHrvPYRDoi*B@ z?zw1VJapvX&~T;)PiHp{jEx=YX>C1x`0(n(vDG7^`&%R3-QBI>XlpdO3Mp1)jt-9{ zj;tEaENxuNGuW8QBu57ijSY?rhbY5@F)}`Oc4MQJYkxAA>7nt_A)aM_vNbi7I+z+B z%d|#TN03o}vL`(7l^GaG9ypwsNUcf_B{BnNwdNDjJ7a@m zL#egB{Ub&y)SIMtcJjJ}dh@yPcSJ&Zr9WTYwLGdQ00|C_8$*Mcfz;^Q@!TC%`!;ubA3kp1| zl{&DXL#+^u(OStL7_ZsBW7P${J9l2PwO)`I8`v;1oEaNU3=WTNOpGO@fV7(4>8j=_ zdge(n+`2oH8qKsCiT9NC!(NrtXW!32T z@Yvu%#EZv7CRXShO|IeLYfdd}bt0nk3MXh*tWJ&` zZ0+3{YmJ7(9j(Ur;LzCMuxH;s1nt|mdLor{t{)jrQJWq64EQp>-qHQzG&47ij*g6$ zQ?a3BVt9CDEQC2WJU%qETH8mVD|un_bj>{d>DW0oIyk(4$?Lwti*DVY8e9CjNvO=z zrx+U%#Z>Lvw|`{c*vP*ARC;iDkXFUMfz;3;<z;{c1E4Yjcl| zjA2?+ocp4j7g3#2|42HWNsaMP)K85@!(C3hC_Hty>sHP#E0e(^UQE#8%n;=`ctqn} zrbgSkI@D-;N1M}by&CO^wgpd}B90x#m6$$tcIVJcn%hHaG#2YXUxYi|8q*w=a;09S zJDt^R0jqQ=E+#9g=FpukrY>}8Ojq5y=Ft_euK9H(pu4nsoyoeQ>PnTaRO?EuuGZ?D~ok?iLNy0>M~tv)RkskS*a^6y0S`FR_jVcS7W-;=8DN!vNG1Dqa>?J&QdJl zAWRw7qAdB#Sw$sG4a@?VdYBN*Qkdm1O)x89T4BO4(RNnR0k@OY);V>Fm1ye#5t!s& zCwU~sly#C*VzPIggD{_z-Q#CJgh)jmf=ww>iBB59-tQ}z; zlW7fMsvXviu%5}Z3t<{wR%$21czbbQeP3O=E=<-QseYgqVT+Lc)8((pg>W%3HkL>Z zh+V2T=eJ>Fbsb--s|!-~6r>t`v*2TEL4j-X1==w34a2X}Q>x#1N=QM2TJuF&&}`Xh zliT3x^r`Gcdj^md>juz>bQi4gNN2aZphj#|#yRb4LC)iPZ!ca<^hk+c#O7gnNzS*>{aD%5<;Ujh?=305$FCEP0J!0M+NzD`o` zj!KJyX}y@8G^14JpydGIQMeprEQghtdJSSZG{A$|zYMeAElK9`KGx#chB<3CV*bl! zQ{ntyfqA`hGA$R*|J4Xldd+$5Kb~y=%|- z^TqyEG~-W6d*uIQ-p?)8p8c^?=j7a^t#bpc>8xh3?fHPk4E0lrK_D_^MNj9YhWC#R zQ~;qkG(MKPq%dK$^9__c-;3(R$Y8%fTU6S13o#Q5+p)K4!c(*iw&*b}IRZ?|A$Cw_ z<^WLXv5{d9c6(sZy`!Uvqs|Gd1!9+Uh$uF}4zpo4sAdif9%2Sd%M(ZBiKFu2Bl6*+ zD($B}J2NUQ&Iu54>_YaJ9{Vzu$8pw={k0w+3DZly++45GhEj>)z})tp z7Oq9Zu}&aSz`ml9aCiB<^CKFKB28DU+fz`S+8*iX{GWoqXr#Rj;IFI0OW?24S6QO9 zRkl~PJ39!ySWW`i0|1Tn4yNl$PzPG1H0g4)E?4Vv zjV`Z1M2Rj(ba}ZhM|C--%d2!bq|2?k9Ij=EMNVhwj(=|YnqY^nv%6m$-1Uw zeN%EF71=S%${4J28J1IlRiVPF)VgL_m7{x>RqH*otj4)!mMw6dHOp$q+>vSgRF|r@P^3Xb9Yxe5qJ|>2;#K(=DZfrmYX9lP-4$v_R0%ru`2ZgYQ8 z2cRR^1DRxLV3s;!pr9iL=XAuCxsJGpk`B%3gM*?E47X95u0fkS60tqb}yBnufkm-{SP*aNnZzB5ncQs~@PtOX6&!sfGC71=z4`yl$nN?{+;r>@9B= z{u9eHj-?J}O7e|qrEHz?@nKFGv@jG< zK@JH7gg3Z##25qFOQm<6ls;h$rL@r$h!g&NP86sf8qW+A=AIr+r8oiyl#2YpeEL>; z?j0Hm6a*!KA&j0DA&7K!bz_Te4?C<%fha=A0f-@1ejrdpA{x&Lq>orkr5c}}qyfrK zRE>0Xba_rCX*kQ(JW<1GlQ)=JNz@I6Q#UkFGkk;rI7)OisJqK_M+N8`wV-p{Vy0T1H8(ocxPFpsUG%t=$GPYxnT$wFpo{|MwkL0Q4$0%nVt6vDS2xc+N z5|{><ghPOg^qN@y77wu6<6{Ty!< z6CGAy5iAq?`7(3KT%yA=I(99`AxkwIX_v>DP;0~+zyPrMrhd=n^x|Edz z*t#a;DtvVQqGQ}@Bv_-N|9kpxJCHe^^J zjl5al0AvglyQZjEI>jAI?8iz2Mfxnhba2>2vYw)3f@(ZpOwSOie*xt{=PJ-9LEaYW zT)mVJMOnu^$7pIl2#;$E()^D~xro2+;n@oR|0=8TVY|vX>dUF^Eoyzu>(OMV_u_ zo^)ex+PvpQt~s?xOnx7aTirjHIW&|w>RvxMb}(^>?k04Ddov#4QV^|_v4KDawD+M@ zKBYr=-T8#rONj1WJ#UE(?L@(+Rl zbqOIdU%{SGq@cigx_+Kfv-Wom8w#=t(WOipw2=PL;XxEmB*&hRe>61=5SAJhb<++H z_KyuX1~`GhT4TJe^A&9`pf?OYn$OUd{5mUy6grLYNG5frxAUvActM_aeMcivqLy}a z=D>j(3wLxEF8NqnBvQEKV{M%s!BgkQ>G6taTLd>Rpk4s4s8lOu%~$EK@;giTWl5dl z#1<^>O5A`AoWiPbdV=Dq1#TgrhPWoFp_>wSJ>8VJ7wgIrR|D_~aY3?5*IKc#37K$~ zWgWOt@Gr<#IGML3lwHKUzNOg;iq)5~<&7{+Fe_kMU{;6O@(A20t8luUtdwaW2H?U& z0z$z6Y=AugPyu@YCQ;5Y2|yW*Rcr(R(;USY7rLtbhKW6X@wG24zV_u%mL=6$fV)*@ z)8uXm^x0LwB8VQ)N&7!;HJ%6p;9=MAV^eX)aJLcOY(}U0)U^6UFo2lYWS=?}S6Ny^ zT-#=|6NCV5>e{3uFoNyha2VRcYhRjWUKuBQkJ613_;lKF?aOA*jL4nxSkuR5kU7;Q z(2D1?W<>r#Ak4G-)ES;VkHtljc}}0+QaXLCC3tM+*ft%6<#j}~FjQa;ol%EYdh^MX zPKQ%7*8|RiR;_B6p~V{sKdF#5Qqy3004+X;H?OshNb!+&VRrb|>8CHn^UI$2=EBfHbaZeiU&&6|qP`-{#t7^wSo>1Ia>-$8RRUByb*!60)Jw(&Bu%q0qxWxcqCu!x`(KYnkOzis} zfu7_u7e&tZ#v8o*iMG>`2uGOiu82)!wr;M$JP~C_2xAGeqi{N6PJUU;FO6)` zP=~JImbl$j4oV=Po+3G2?$Rv4tmFh3bX7`{y9#bKKVSj1T2Kp92U8Cdf>{F70J9vX z31$UM3(RVmR+unM1SSg8)&Zh0+%D#>rn{|xCcvj-odh~7)7MFEP*y$bBrlLNA9qv` zU-6`saL0kWWG_>gUMgHCE|n4MD&vk@fMHKLU6pw&=>FJOxgG~Pe-$0*N&t)<%uNTn zKxxr|PPQOZm;i(-!O|Ekha3hBCfJyk3EI-3E&{@=*U7Jvz5FUUI$eCV9OGBZZIjaj z4zqo7WUN7f!^7S@@(g892e5vCNq!k*(Pms$L__R< zMVb*yb)FlfVt`go#m;54DK`MN=LTx~D5=J|b^M^x>>Amb8XG?Z&XklzoS_Q0l9lIV zA^24$z#fmKEC?nQhEZV@=Gtf9f>|(*zhQ?_irmGRXJ7ti%mREoaXyripL*R@aChU* zr&WnNs-z&xU3j)Y-s|L!_H$gdzMyUS4C(z=Bsonis>epze%uBo{P`ER1CtheRSgpK z=5GJuBcs&5t+b03)~I+G`2JSdvo@r+HkZ?)uYmPL1M3FeD;#Nu6$4lfcSK-ywE<$| zBnl7?C>^24_9!CSySj3>pa9(M2Au^9LXVr^~FJZz73;w@_0 z8w2ps4!TNRw zTXkidYpVC;yyu~J~ni&&|=EE|&K<&sniHov+s-!ICe zEY=3o4$}eC3DX7B4bua&2Ief7vtic4tb^%=Sr4-jW)n;tX3M!Ob{^dG+0q6g;025K z4Qv9y=4EUGa1<~Y!BN3r1VkDnll(J;tWP1+8{ht>j7rHRU0G+ z^DW*W>CC@)z2w9VWUu66fhE0?n*rZt9=4RWk6;-#odS9wjwP1^>T+_ON_Th~?(kO5 zB?=Nc4@}&-B#>my5u;@c7evK^&@T% z;`ZWIEgc*PnwN54*+7|j8TXYBl$)1xU&TO$*+BJ z+%y5)dLw|my@`gby&)fwdead8Tp6^T5?(xKtD~S(cQpzXJFEp+bJ?`!d=>z;kn&t` zE4@oQ%_$K!s+-&`vI856NlV5E)k0C+T6z{6(aYQ{2^%@u|40gRA)JB|0)1}9&gNV;h9!J-_38{d?^5RCq6WXE=jkrdHA_bdFlU#pKETh z_R6tv(8_t@8``6%B35T6V4jwbsEGYaV6GOMl`=k&u~4yjc+BQj@07l`7A_lS6Y_Xe zo`^aGSF^k)D({WTdt&n5n7pS=-rFYciO72+7GASt^<{DzT?<=bh8?ahVlMHq;R zlxq}$wl^2LHy^q;icmp_EfY1|F*>+^a5yn^2`A2qW4cA7EiX>7g%fVYNq(=-isQWF zdy1a+dPE%0(Q3MQH%}8dA0%q|f~~~2mb*jBvG|_a!Q+Q;Oi1nEg$ee!B7Q*SU^omD zQ4U7nMk4Z&h_SHFPKK$*jBoLEcHI!sr}#8pNNVL+pSDOo$-EKJKk>t22NCeVBnG19J0GjvX8bC?{0f1F!_!SRHmaFFLnaOk9KyW zGF=^rpxdP=gb*CojE+Uxy1hl6A8YT3&d(p$))k2b=5}1c@#^$6>{vKP)TLNAc;brL z{TH}^%3q?o?K^RoJAYBm)GmHMZe#Vh94C5qCEbbVDB25%sI7qgA9QWt@3EA2Ijh+DHipd3ar7MW~7-1I++vo~n5%zM8wG)mJT3p1IsNhaw z3pRaDk5{FQX7Ah+%lhH~6?A%HTm%hDX>cYqb2E6uxn~QZAc{kC{G6^dwh_`&Ds7u( zK?bW#hE=Y>s!+Fqb509h0mK~#3KjINse}{Mdh)t(ZQwMwbHAH{cW|#~8r}=I*E<96 zh1~0-(2Ka&PoX=xw}i3?Ks1dG9LUm7*<75DGB4qNUg#d~bx}Thxz|nkT*|$?%*(i! zmw7q&`gjGeKvNYps5!o-ps8=6rY@Ee;CW;Qcpl{>cpjC0@I0z1@H}d1@H{&9&$1?c zV3svI2WQy|*OlOAbRPgWqh|=*jNXIbX7mk%o6$c4ZpM;Bvn&#LD^4`&;AFb&zR7g? ziSh55#$>u;GF^$ssuSZcnMuUn-XQZ>oOhcnKaW}5iyR5LX*nO;B% zk{TG|&?&V%!eQ>8OxN|*r|Z)TPb~WkyKfu}m;>}|=8;iF7wJ6!-;Gc zBO|wYV8(Er7zZ=r5ctd}cnN~N=0QABxX&Cmv|Mt(If5q&FEJ0{7RpW^0Kb}phnJe8 zm{J%oFwXgoV;D00u>>rZo@00%n(3Z&Qx{^&ORBK9zU1m~bpLa|5q zqZhF}=cD}5hn#ur+c27{R;oFkrO~{KM)Mr$s#&&>VZVV&*$=RkidOM)RH1 zGwFt77{{w;(#vRIvTP>3d>p*6*TBFex^q$AvgVZfx^eHAJg{ka zZ1kvwss)PEG=%w0fCHD1$paaUpXjaY$rKS+GOqImGh?Y?$N=k*x+b|4&&crBVF>y zAii>R>&CglxJ0!l!U<>mu%vO_Jg*DKQ{yS^tz>hSNI$POZys?-28-K9grQY}b0gP9 zb7sbzsipO&hQ<3S6`%Vc` zP{I5tP!IZOKxrLrAgL-oy!4cj2M0^I%uT*S19TZ;H-O%C zLyhe@F=rU~J(*t+Q0%N6Y3kbyKc>s0QF%0?jX~mkNbMg?r-c-pi!S*1)fGQI=g0#3 zrtP~f+PZ0{?}CdqUA*t29lLsWZQZe5;~9Dnjix5-adPn>Dp3c3O46D)K*Sh5x)a<4 z$pIICf7jOYHpQ~C!-T|}JNO#sl58QecS zeo&+HAIX&?u9E*V8nr}{NM3DlvHkwZ=*K@iZ6 zzQIZq%ts%GGJyZYJm2r;OzRxltvEwo`IH$quNxmUn=4em9Jk-rYj_sIjUK3XJ>i=nHRrMidGhfoT+uEypU--LoMw|QZ(Bv`3=|ky?gdu+RUyfz(lIx(ypMd|N3?4y2L?io?3!VB=2RN44=xVt;B* zp1Ubb9_;sFGF)I|as9cwp{_Sr+9_3kqY!YO7P@&oxlpu!Ad%T|c-XGk|1MMB#4~{+ z0saXobU~AlK$6ddZ*uUJL#c&`&zXj&=$-8&V}of+aZ={AWMSxSArf#GD6ydT!s;e+ zZ##T#VX}xi+a5-2JNY^yM79OPgH5|dlFn{eU9qUc!V$q%5mwtek+Qw5vs3Mifd#o6 zGDlhjl;xNw51KPtBnF}~?6!^w?Cy?e5W}4ViUOi&k+!z(Fzl{qG*}2S?CAFPaJv?1 z?`rSTA{`xFk)VJP2?xW)03s6U7hIeaC^k3u_~n! zY#x<){*toFdgmqcift)3GhGH{Shaahz;NOxh7&hLw!vQrhLcKNt0J}&twz^4=ZU9I zmlx{VB4SN}jv9H1?p~_P4Z4iSWxBRP*H(h8t+nb}Sl1%D7S*+wuC3O!cAa(TTBojc z>8xAVdUS1#&d$=cvvutpU0bJXn{;inu5Be=l_*nTR>MF<{5+kV4#R>_SLp7y=vq?O`gJX(YiV5>(3L@5JE&_JT^rNgFk4W zKLqn(n0sJ83iD4e$6@Y6`~z@54)YMqqcER_c@NCvFrPvE=U_e$^981R|Apy}FTp&E zxUa!{gQ2~euKfUhwDV_h{uSm|F#iwccQAj3`3uZnLBIbybN!tu3&E8E#t&jxU$Fez z09&tKJWW_f@;^V%ZNcdDU+1BP@G2Yf-e_S4K`y*uCsFh9^1lF?!m48<;Q< zwfYlwTnx{0Wc9;VY)sa6ul^)GY{FZsS3knNF;wwWEW3$myC0+c`8(PZ);kX}wo3af zY9pvVYRy{{FAE&hPdB$E~-(=kRmTJ`6 z-E&erWo6u;IKX!$H{qgVfnd~qyM)V^8}uB?g#ab;C5>ygrzb1y>LDNZ-La$WCmX7s8r(wf*uT;a9U56JI zu;tgosb!5fz^P+R=zw+5!GkGRkB*^>mF5)-QBj2`kF$trx&jKQTC_eTt&s2pDWYnS zw#iC@NR$jSQgi>_Yp(6nwrLW0kz@tX_)82yVC1@F#Y@PegmtIb)IkuA15!6}l2KM# zTH`vcbm+9=0T58&0WNTS^trdWr2!8#M+l#nu5^qxC@ci<1U1xKAPo?=7uTUM$qlXMv_s* zWl*{<^K#%SMoI@-lufuCQP0KYh_;L5L-gr%J>>_D4r-`em88J=5b@uF8wWMLFtG?K z7RVP$EH=-bf(QA6u6{mzOQ0B{6<0#rd4eT|c094f++jsfJ{t15fSzxsS1vSENWLzC zngunzlqzoSHXNa{n@9;oo8uB_R#4N64M%#(aU#?2G4uwhrrsAFdI7t^WmGKsEA7=Os38a-y(hMCJqw1K& zQW(d0GFaDF9r@d!caiC~<1 zH?FOg44!H{5nP@cMfpHM|y^}_GIXdlX^0X#eae-nu`0Th2w*v^H8F9Vv z(v-M?K`6cU(0$ht2>U6HIcq81v9-g3%$0Z5+L30IE?M4m#@E#^Q zLTlnPyD8~}td%R2jR~zRjY)4P+m`f&vh7KKD61w*a6u%!2kW_<-444+z7uw{awo$L zipA7b)^aXiZSTc(Ob2PxoQ!v(|8K{mE8F#wc_+gvd0DIy2xt9TEEDy8$Y{HEH|((E z9@sl{vM+Fc1onlldtqPX{wOowhivp2zJxUM{mjrXNi2CQL!&i|xw%&|{md*>0;i{O1 zVviSSs_gOHhlcI-J^=et-^ZDGACF98ksoF~_rsI=*I;zRi#$=F|=9B1`ZH(*< z@>8(4EB^w!T>TpCg!XmVhJ);|{tehWoMd0%dJgu5?&o1&>Ujb7X74v)@9}*b_Fn&s zu$xMznE4ch=ddteHoriZm7y{nQ*~wNU z8Q}x~aNDe!&tf4qFh6EGPhfrx&ok+bj}V~Xb3OnO?@+cY+Xb-vbso9tk%^>(QpMrX z&2OLrn1s$5J_lXqb9lC7sxPK3-~plg7a=+0_Yo76GAUc>ZiN_v~Pim5^Ae`=IN0u!r5Vutz+9f_=z)lRV4b>bn{C zsQ+f!{1vJLuu+M&{hCcdCDu#`gQtlV^&7U?{4MKSHx*yUvg-hOe#Z<~dK*T|ZO*dk z^tpIC594w^W`T)@LTOgI-V5;s^Y_Su1{wqBNtdU$C$^h^KxY3*i3~S*Be3ezJC3L8 zOF~HfXACfA?WKQ%eO2)9%=~Yzi_~z>i0tAQ zDi{UxuLNQOJcx1`$E5ii4NKu)~oHL~Gdmd&!h-L06B%YG#z{cd&~o)bL&TG=SYOf7@zCEhk_jCtJ| zUb;y}w-IRNuZ#zoo;YPrc>dp7a z1StFg0ub-z!PIhpU=c%CUdzhvz~EoU%E@V|_z>*tS>=ah^LFH#Yf;JE7L}NHQc>l| z^L;%3a`XLo0XnV%P!MC@l`E&*yjxTS>by{Fh4~>~+fPj-D-9^cdTat3wC<7nE>2%; zRKzb~+*1P2!+h2GfyeaiN$)}2Ue<8wqZ7f^$o*cKhm|92*=Lv^>UE8BRFJ=0j(3Rz zr`-IgY*bS2$55aFZC8}!esq}MJT61MRAm{x=b!tY-#o$VYxvQ1_uExBO7Qf6j79D@ zRLb6GeoQvNMv?0wA2KQ!bIkCM%h)%Zst3a7G8XoOvQQ=Gq)p>Nbn^~I_Pdz;5S({2 zg`D>=^8Nv34Wk6}POEW)- z@WqC9KVc1@k~v%l@xbCIDwGC}j%{36dUzK=Brx~Mu|F09V8y!07f8wdiKUlE1#`tk}qQ&@p#P=T-E zbxid-^Xt^*F5-|+qsN~^kE7qD7pULZ3$pn<<+MEU7V`z_lJ5!p?xg?MDt0<; z&^hH_DLHS(Yt#&nrmEVlbnN&w@3p%CH$ce0ne=Pk0 z`7H`6!;CV2N7>E9`_X~3^7IS}H%X%+&JBM+eb@5Q`4iPVR0i-gJ)Pc6OBkG3Gr&+9 zSUe@4NNhI$i*lKcr;*EFs8(JTox2m2`YW##y7jN9&b^G0a~qS%*{%FdHvfhf%hUU( z;{z-!V@>>>cMYamUs=mB24x0xw*CiNfTa>2B*oJ{&7o?~Q-iO8>PS9h*C@!1k&Ud$ zX;H3&-K*ZFnAa*8B_K=4?|#N}yH2tC1I1mhU?j?RpdW64FCA()S&n&a-UL27eTsVf zX834usDEy;{B%Tomtvn0->vW?d;q(od2258HWV@qlr(+-1Bn%WJDzb2z_Hf6gR9P;<@~8qs zgr=0}AUPZ-Xm$_E;A94j$vu=MBO9fV6H~~3kf|Sq)2rRDm>)T%`#zfMKF$0mD!Qx= zzy^C1&M0`~^Z?B~#=W8PUt#v%FZx0gec>=a#w!fTNb}=VOMcilKVkPu;7UY1gd{l6 zE;S#Q$$g?~oDeyf5e@mYA#Qvnt0>1=e==k3AxJo;i2BfD3A zQZb)Iok`ri5z~>@)KkjLG!EBaAg9^XqE9P_5qXaacM^p2pBkU8Lbo7E^zJL@tlF>Jjcc=`r7!x~fOvQ&WRi9TZYR5M* zjNhjGI3Tr$%6w75S}!9(#~3Oz#TyF%G^Lo+iU6Bloz5u)GPjsBRNNGFJ_6u>R|%mZ zEVYE2^ST>7m7&BNRr$2|CVO2iVi=5K{3Z2nGoHk-5L zApmQ_gFb&ah(5w(q%}lSRTWcp9OM3bq(C=S(8jnGz4S-kOTE$`(IKnZpA_>?$`mcQ zmja}R!u&H0%yfK|HJksXO!ElyKWPE~9K-kD3IN(t^RF~yl?uSYHPr8arwMdJQl&|x zK~b%g#V**yu7lkyll{+3xgJihdXsAYLz!$G=rFUYpoXqUIub#{;dEq6zh_>DWty90 z=Jj|=I-piZ=UVlEvp5!_6!QiZfc(n(W+aH}j?!O3^^NXy1lCaPZvjiKH5)baT`B=J zLSsM$G~ca)0uaxjUGGt8Mw+*(9KE@jKTXe6JPo1;CzIS>n8_WK2|s${?J>N4o1Ol< z=#clR=!q)oiSN=<`hd!N0tDDz=>ur-LUs@A3+0c%ZdUGv{S@FLoF?s<+! zl=*IT5`JF055hZ@J|{koweul$vw06{6U>&rWPSw6ap=y*UN-N=$sG8cYJL=9blwIS zMLhw7>da%*iBLt)nd7)>9#>~T>#UDYNb$qc4S;wj)M@mmj?L*lde5;OzGJH4 z0BQ$PDX1XNqHzyU3)Cr} z6rI9R-%q0LxGExNq5KH!3zbJ;n5{S?z4gVW@ATs0pNt$x{j)NVCe`zfM0qTQPL zm^zJCJIqg`9U2<_IB&EbINNHp{)B2ifz-fzbFBuhixwI>`0L|G*j;GxXVEQAP=f05 zzM-S-=n_M#_yXGgIcmcK8EtPw6Q1O4$8PteYCfe}$eawK$rkeqG+78VNm4CIViUsh zB_ubWMuaDQlp{aS!0)yEUxwdj`JaW~Z~4Che~IP)D*OS<|23*f9SK)gAnR{X*3Tij zGX6FYEuW{zdKm((^-!$mH5>bGVttOZBTNL zZQUa@X9(4c_=p5JgoKQibnwlRy0-L57L*09?4=gR300u58ijS{TIDPycnM0FR~30$ zE((Z^MTI6O@zov3k#$7a5leo$tCMRa3U>;zN8IK|J1qf6ezVWUZJ}x~6?Cu(1a@~r zG?Ya1NIn#9TZb-G{O`d-XV`k!i-+!R-$D>k7Y~a9>*_TBz6V3|tLu?flz1?W7h-u5?tc zCbdY=dSrcn!$ayMWk`KPmAnx4uF&Nwu45jmlQ^FO>6Bl>*%P2>9vbLZ=<-U^HLteT z(R_0vSY8rfH(cn9bGc!BFaek#OgT&?ObtveOg+pZn8h$lVV1!( z!ZgFQz=UCykjsY2I(HN&cT^X5G&lcfj>F3x z-NzlLpF6G+?znONim&r{pfm{rU?i3X#|J4gIR0{eCtHH6*=mUeYPeInV4YM8H5*u% zve0N>R<58LxzFy{Iu)Ra9@^+}YuJhP4lTEZpTnt5*M|FG(Q?nLjQ%T7!h+RqGdIrR zjVJC$A$ozHZnI^|?Zk7KDtY2JQKsB3c81vjgXV$;^pl4 z^4Lf*A8KBLrC0~W{QRjTfQv4$Wus49FP_q303~I+7IUfv)yk=wp*i183yzJ<4dMWl z^;8#gM_HrQ5Q&^wq~;8~cziTOvpCzh8=pc+j1N&W-^iQjail!MKF|q4W}&NyKIH)& za>VD0*R0-&#)zw~Gt%Y|xk1*syL%pqlruoj2vlv5&LMo6jDNkzUFp;oIYXp%2+B60 zahHFXOe-gF3Rs9Q8mWM&L0v1;!Td#9GsMR_088s@!6*hcFR0M~_yjXo*cFy_0+UQq z>2pV_7wRtHcP@D5BQa>;rL@E>Bx3R9iLL!v>ux5jk{J6LcdO3_LFHxJ1O zl_HHVIYk@v0kLh2)Ncxv8&I(Uz1;-fY!y5!0rXlRln2yGp+nvElu&3HMf|jg*UT6l4y<@f;bj|+tvHUw zow$c?M@>}Hq`3{Hc2cPUsT0L8SS4~Nbb1Qj4ZWq7E9C69^b6@Nb^ICM*Z^hJ+p_Q& zRDmCxN%+h)$Wfyl*CI!#4Wb;+rW|1{k=K$Ip@KK?g$}6YJZFXICx>6Y}B5g{Q=7Ht5eSX`ic*8uwGH-O!w4}qBZZ8Xm>rQR%bZcVN*fbHcR;`Zc% z1c1svTS7xzRLN4FlTVxT2{@jA%VJ(V!{Uy12*~Zq<%3lijzJx^(@_b{L|_MESVz$8 z=yiD+kPYfGpdQd_O@0}80>?WLreRvjy_nDx1G#m~aK^t6CUjdXn6x?F)+*_?wuj-~ zqG8B?s?#2a5-I(rjYGaP41|!}=*fp!Basj20gU64MAk-7D~2wgpf&H!cd6*&z}&P> zJF_#4QCqt^pQ}AQ&{ht$R?yXhPrQ*1HYgwVxqS1CkQ<7CVEl;E81Nz`KSXM7h*Xs> z@r#B?qajkQm9l&jjkbL-vUmAynUP_E8X@jA+4?|4QS88*Hgbia2xw$A4 zmyFRMw>Xh1os+sDBF5y*8?c2&>ELrG;USVy+$p@8_!b!gxGC=?D8$NeB)Pg~XT2 za>{eNT0*0UfzVTbPsj;jkz-8hER27eYJJodXJ6p?5)Xe;XoXz!B>f(dsZd> zf5!wV*2<9dsCB$5JaILNSwC;~nE!Fo!o@q%f`YG?5OwCs)NzP92}S4g_cb!zjU+sA zATQu|9zF?>8udb2@j$Boe8~T$GK=P^T4C{}JRYa~oD!WtUhGfgms2F{J};MXPAz9( z>w)~bB}}bqm#q!CIDDSZxvD!4K>tv_xB{JHLgBqSIx;d=gz$SZ7V>>QRssnFQjt1& z5TIwE{SmG&nfnqlo-}+aZ#V!_pUfaW>#65?ejQd6F;^#B_ETtzqV9|*Q{o1W#t1A)Og(^!08 zdEwS`L;1;cO5xVmmaBFp=%dT0M0*Vs1Ese3_VPr^M-LkZ0j5ap0heJeEHhJ;>#pK; zvn;osPFIsT-(t3@PBy{GE2vPGQn7-Ey><*~(*PSl_M1mJ|eygBTm%JB`0`?$C!KebaU zcsR&yiT*rj^Fg{P|D;4on&_+OKX`HcnN@uu0eEwA_}{M1oZMb+DjSo)A)#n z{Y{OYkV*l5$|;}LHO`fyLGhf613LfL;MY2$rq}Wso)ks2*8=7lV z8wAa^c5zNL$Xec!K+>v#Cv@qPefv>f*Dm^L~eyOY`&Lk%xy*hwe~OcAuT{eO4bw z-)zis9;F3ybTE{1fJ&dBx8Er*#9{2f+8o@?Lo+*WA$4p%Sb+GEVLQ5}I2!QMj`52r zVLzU#PQkZ{6tmdzLS;){pGA&R=;Y`qmaBKn(oR8(SQ|WmprWmeg1tFljoADbDfkRSk zAWke|Jz5GIaH2U@Ba=u4;# ze+rPV5Dr>bCv!ATXneg1M1>}V#`m{U-d}|iB&T15Z=gPI+g0`Lq^;9_I&HcX!AUZr!!AlOJRk3dcmIKrFZR0)EB>O?a+2?870lPLDYiJZNB{$tQ^mnHPLAb z3Ye1W_lo%{K#pHL*jd+$r4~x$z&m$B)k>koCU@7zTjvE;;Y1P#*EqAOc1dI zPgl2drKEGzi(afN5Wv1nS1#fDO8a!>3SHT!I}*C`79H$uN>W$)bu~r8*p5M6xl(7) zJvwTuA05|~!@7DzSKg*8@6eU2b<#wtTn7VfqzYuQNj_b<1qSli3godB2v94x!hk_p zfl#&rp={+27zkvmcf*BHwhDo4BQOxxRv@aaJO%Sbn2kDv#J1;Ym}g+V3 zgt+o8_`ePJMVLtxHU%>cGlS>v!h8?rWjuc$?kh+ODR18o;r|iLk71sN`6>*mpu7t6 zQy7SUE5ATFzh=7YH!%MW15t3-Z($$~4!$_uWy1U(<_|Fc0rN+6!k^$?Cu58up01#I z%8jzlZi2}F%`msXybI>tFz8=;xyd>-D4`uLV<2yqRT*L(EJ43S1@2tyKR4S#i-`AK`7lq`Y>~DfcE|>i) z;4-Od)y>T7U5T$t_`k%++r3B)$%~x+pRufZKLqI)A-_AA^H+GB_&F5R%Kqiwl<_K< zuVh>k4f&n^AIsUt8KvDrVP)Tv*|+8I$lQ5RIFrJe63(=6W`y%y;e1axFAL`t;e1~> zKM>AOg!8I!ek%Wr3i`Qt`h|Gmb+8dMbTlso+p+jX#mR+c8&~1yP zkSaY0Had-w?U2dFU~A?>+Ek047A(#WYleDP5QOQ?<|pB8@s<;({v+D-Ok4q9J@N5B zig58sxy5+;6rzX=HqB*xxGi&ANkbkKU%r1#1C3nP@NL`8sL12IA{El(D7=zAu9;70 z_>fzJlXyG(+$}Y@P;-N+`ZHRe2ZBQK2{QObcHApB1mYff*-3UEzqNBJ>Q|^?pR*eF zIpnv9ksXrBUaWi`_7e3;*h{siU^h6P(#+3m_+lRB7_RZ2)cQ)&C4IiMZzrmrb}e5o zXG_5W_7wOZiCGOn;M+34pv^#ZsTsU};0bn_{{p!_;$s8X8%r?ri+HeD+w_W8!RObA zgy6e#na>m?oH>D{PZuU7(cov10&P+8y%zNrYRlKGwtNk>UBt*Z>+*gLU?+wWS zr7wji2vY`A9?I4xE8wXNW$Thv6kQ$4)+cL1*@ejk^ja-GKAD90YO}<`LWosQtsIt|MK$WfY zRtTf@x_$tAz59o-TRbFrx4}!2cN=|wfxXFpqYMG;lAC06vvq;&ZrRM&(zdBSf7<^< zkc4N>?OT#w(&wLw`&oP`R{YC>^AUR96n#47i6E`#^LdJfsW@2GxsA^(F0&JdkYM{1 zeLI?e$=cj8MOk3!;)9Itmh*XWJNuSzTP|gnW6&XiKb>eaFPUlC!NH3LX?txVIEeIn zX*RZ8fJM{p0xu8l@x`BDr6m}&O}`XSg@nlk(Oc$+ChZ`qS(7h6frP#hjIU-iA+(@#BHfU*}2wSi?4T2rXwd3E~s7>@qP2gN1=>a#9uLQd<-g@!F1ZPuekMX&WK7H70TI)RtIeZ^llmBI(tI1dBjhbNp=iJ;7enMQuY%yMHAIIXpvQ;k9euT^ z!Pyw1GQ+X0R-v_QUX2WfDT7KzUE>Iw*6t zo@ILOB^3oCy+Y6Hp|shkK)w@b_6F!|M&!oyMg$z4+bNr%!mh^s4uqFF@i`YR5Mp0J+A#UD5nKdDXFM;O3 zIn>F`M$=OC93*zDpuvC?GTR+k4MhV+wcUg7w0jT=2dXfH)x5HIuxN8r>E}?}W@i&A z8>qtju9mB@v8-kgxPsDws`Tc&=##d6tu5$W9w&z4!=jqkFib!a#^fK2MS^Ru+Rs z7eaMFO|Aw^ z33DgjpczwNJY(L+YMurj$NCmpGiD*9&EI^684Ko{G0&cE#(bq{#(cG4#$c&gU<>*b z7UX8kvqdxJIV#g$bQja2d!7>K7TsM%i|(6<>$@a<32OO4Y8#dvIFXuLKEwzf-lkZd5f`tPoFRG>GOSS`uu>+wDfXB#|<401i}qB zO(U-bzaeDgnPvB}1wR79c0a5AF*AQ8G?mcVtJeH6>sw@awk=|WNSZ$pv#0jjWOLyC z7OX)IWwST|*S(4yKE~>Q3g_^`pD`$dz+@_1Q%u^3MSFoW?cWx~s$HNse8rv>ywj7a+*HAJlLqLJ=v!}QatLK6F=Cz+;ZI_j6ynW?NUa3D@C8KNV7<{I-;j7KX_f$UxUq~+NgoP=qNUPg2_2CFM69?KCz|^i zBj*7ole0)6`&p*m4(BUOBkd9)$NOLp>+hGLhhmCjhgM4s^#&5_yB(olu{wZ5y{|Ha zYvvtt-{JIOIu2(K16zL|guNpW+6~;TV#L16oOdJJ$C-;%CVZW_zYOOa%=1k+cQWrJ zoadPDdvKm-{#Rrd^ihy_Bh-Ag(C%S(HmVRmqEM5~4?@4dT|o$+K(-6oDqN=|OdK^o zjPO3+RLd!QH@=jSh(e=%VRm-&ttKH=l0%CQfq-4 z0ih_IKW*keSta5?R=nF&i7QA62Cpv;W~WB4ghq@hfnhsI{e@Ft*!R&pYYnK|B8>SQ z(uN_PEe!hs``N;0Sbl#Iz^y_rq7f>afMJIwF zXF#7P>W%B?SX<~j48uQg*=CRK(A_G5AYg(2Z`|Vr2XcoPrt^`{il)r&@kg z*jqoMT&&(|oJicv%o(2O$AyW0T#yJ|dJ8kZCl^#910^rerZGkOTI}k)BIl`y>m>qT zv+O6VH245C$AAiP7l&MFeCVfifkTp(Nr8SuJ|sf%ogWd( z0^1S#un5IxenhBDx>2BxgkWF#y>_S)Sc1?OMd(p0DHmgI3{naBN*vkF(%K^@Pij?v zJ$d`z=zr@!PTu&BlL&%R5E7YpkzSft=|fCV3KB;9q5VK8)`JTTQL6L{K+Fk7_RpD2 z&M%nquW)|JR1?l6+8<=|m!#_BHU?!PG+Td>o2{z(nhaWV+Ew0%%KjT>K%{|{ZKMr$ zspD68yFvdIludEPG&-frB%Olz`D^S(kidmW3*rlK6FDcC>*U1G|3`Xd61OvGAK45w zBl%&SX;4n!e?7zKYUb~uJ&AAie-KFo=~cuBv5ou(hKR@ivA7E9sOY~j z*PmtcPncX(rxhe1%qKZ1-uq8v00>7!fj^^;P=2SLI7TXV@Xa+BbeVw8!r$UA@MM2M zl_;MEc1$#nhyJ%6Di?jT3aU{a#Nw^yI zPF4Xta_g6=+T$xR&exKNJ`vMsps~MWYgcJ&my;fZ04V}Z^#DcORwtB6p$I+VSeC0m=4P%si{N=BQKF+{Zy`L>-( z?g(W+$da8+$*xfLLoC@%WZNE!SQEl2D0>e}{(s)S1Te0vI(zP0=FXd4qtR%WWofipwnn>TC$VH(^1j4Nyb#%$H_}8V zw&YlnV^abmBwN-YVJ?i6VGyZo&mT__ZY|L@%U-Yk-r zl)tX6ckg@my}9qcyPk9IIo}z=*=D-8rFtfk+Dc!vjn1|seFu)6bZ=Mn%rh*tn@;zT zNciUJnfI~OUK%F%07GE~qi~%TA1^}z=a9t?dN;fe5P5dIe{_#vWSu*i=P{gM?Ddc&_+^gj^2 z%8K3rv-wLb_D)1IO7RyFZ7BH?!nY`;7NUEUvd44_m^DN>5nzoNHScHX_cM~q&wPMk z#N4M6n2FnZK%H-apbuXg0u~J_VIR?z`@;u_%ieG916^rY?^Z!pLKKXrxb+^D5blVn z@c@_xzc^s>ds4TAi|7}(m0#^hpY*(t272txzebn(0&(plrk?kqXnP6@aP{mqaN{gTH#8 zyd*+l8qCW3sYHI{b)N!?8vK}9ZLS=eW$q@R*bL7RG$HN}%`q&|=T*~>34;pVe&}Gq z%~&rEc@A20gx8_ljMua3@UtxaEHDVcfPIj-Fi5Z1ENUW+zYnoFjQtNYyxJZ9LrkR~ zq*^-@{UFVx4=O94Q?2LJVTb{#)*eBv(U>D(oElkczh&3jM{;VdF}KzTA*aUl)4Z1X zC?8Sg_#}M6M?}HDV;3ACI~Vc_w2JijqV2#C|WgaeTGWD&kR%d`;Tn* zE4auWR%$+r*1f6r^Voz$_bV9sEr$MAO9(u*0AP|ry+?q%C*Sya6%0^;$TkjC9??hR z)JGr6?W12%&3LAdevxYXQ6>6ys_w^>_?J}R^9)1kL)HB#s+;CCVD*4=t4#vU^ec9C zzm!wmKw!;wQb6_K*_@hw9KA?Z_1Em)gWIzA0JKN;o|i-;yl6MV*PTYFLnC}6+X!{k z2z7Svd6cE`m)Coq2iWZI)Au}~2oVe?5lpZ}LeqNW#gn)dxt&JjQ%W7d06neL{{bNY z5ol-wV0`EYQGyrzmO2cyR;q^QQ4KVyhY4yH;6K5ZCl&F?x7A??OX-mpoJYWyTHjHJ zACt+C*~x(aF*VA6UN!4wMK0PE`Q4m~yf3#RFS6l=@1cN48(&tf@2Q~Ae3xOx8s?@` zjn>QZ_HtH?ZZ`ok2ye|aNu$|>_RyLLBS?&9+>`AAh#=V>-xcj~r`;Ze6eLD-J=)_h zv+Yq&?NM*H$73vwzr6OK;qlirJizVQ!=oTOJYE#TBW(|l&xql{?BVf43=ix#V0c7; zI3$Kggoej<5?;yK8KS56D@}ik3i^Q3{9_e(M2nC)eH0ar1=spJ71S+BooF8Zu{sP1 zBsJ6HxJ^qjVHK@fgrvTC=wpl}KMo4aZjOJTw;iC#_m=Pz)Et=E?aBA8Y}G&Fb@#BA ze^M-3=Kqci-1R>>2?(w=qK3*T15@C%5I>?SsH)24TP$tIq3z+zGzPRcT_rd zCs658pe2b)k5Z*SoUQaCNDP(LKSeEkP+9Xc6_81b*fRPAY85mMK$Xm>S!7rG&(vY; z#ZaX`f!jpwSU*?I)3k5;N0hGj zXaI~_#D3MMXkF<9W|Y~PSyuqMSuEF;2LZ%%o7su{L7xH|%8X%4jb7GmJwz`%V0P1Z zc{q2K0islQW|etF!=(8EfS*GcW>3VkxQgtdiTI;R_oEs>rQ{6!I6XScq8l)IJfRI^ zi--Eqr_qOqBDS8?%&z5fb|;DC?2xL7xi;K{9G=#OvHwRoJn7`{Udq7{@;eU$Ys%~~ zJCmPb0GpCz*azs#Y%=Uf{>1zVr3b)PK$7y&7v>15rc=E@p+ZiX$+p*Qn3JpDoZTOA zQ}zd7Qpv&m0gY&u)p`CIp2GC?)L(v>KX&>MU|Yhs{|NVy4feHtdWz0AB*qZ#iXe<^1?fLsa56?$?BAg;u)DWPFAkR3LqB=+t5vSxi5 z1Eo}m^iylC-_gtx?1|DC-~hrBV?b~NKhKTMHO+N&sPizFF66?N>5&CK6hTli@BX;9A5q(Cv=?@TnR$2copq*>xy3FwUx@N8g z#8(ho2*VGv^uz3Jf=jf%p_w;S+f*Xtfk8Q%e;=voL^aTdQ#S%>3l|TOG~p%yZkabm zu+3uL1SL52S%}Xj1s*dlCnr=&s4>t#()P+tHwnkyv? zVBXtky`l}jNfg47MQ*bGRD4As49HHy`ZLWOFgKck^X4WqfL%z2+hzb9MF4WKO=+X( z&mo=o3m~yU1O&wm2!A&HrDpw=W^T+pa(*&3C^P$O$}B(!*eh)gnc+bvv%#XjBmova z{qaaAD&YrqF`(>ZSU=4DQ(>iLv%Md#qU)YhOg=gCZ-lexjLWV#{p4^|>v; z-BY&wr)K@9CS)Mi&opyO%S(9onFz2eF0z-Dt-r*(zN&2d6{4>x+h0ZWyUGrVeoxtX zNwa<~yOj{JnVTVigDA!NFU{NxUKXt^aV3ADnOn^O05U<`pjo~qnm_I;`4O7sm(D9u z1>3A&gINHCo#f1v9KL9chKpMBty%+RX2B-o+#wK*8Ms@ zVF!LqL*;ztA(VtB(l<(~MP~TUoD2_`2Qts1@!vriZZ4t>AJ8*(gkf!157GdEj*vCI56hcdvtTiVc@q&sl-;B>g8(XFS^OnZd5;d96Way9F{x_Pss zj)dI@aZ}FB&*;O@Alf58@#bys!)^k};H>xQ=3XR69W^C3pC+)u)LVfP&21ffuP-H;lSSO*BCP!3TYT6rBHD&rM~OW2H#^Q~Kpg(Pk(pLhU>c zL~;nWXUQoC&}OAXO0n@H9beT=2v+T=^!)Q=vrxCVFN~KXictHN3vSj1S{Ob@?K!Fp8rH zM+`?XjuITDILdI8o5z*>WGsdkNDFEF9j49v+o=dI}J z8H^DRU{i(Rv9RRz!P)(&G%%c$qc-ao-Z**uEX?$GPfzvO;4#kUtaUP$m{M8vpUjQ5 z@J@c>oInVY;6xc`_BQ@bF077?v?Hyc9pn1-|NVEuT;A~*ymf@e?8+8@JBO3QFm;8=lcCmom*v`%b&J=7BqjzD$#W z%l%^2egAaxi|=3mUvGN-m!}>%yS_vGTU@{W&+oqVz=3Z-xtacT^dG8RTHkp&x_4~d zH8`-B@7q7PXV2g!_lChETL<_0WOQub)+2+i$^V66lUF8;og901yQ>y1eI(x5v$Wl> z4ab!?26j!KG)GU{Fb&Imv**1pzZs~b|9_2c2YK0P<+b@QyW&XBAFtOaa^Bdq(Z5=* z+8J5}?wPQMRB4^pTN~^jQ&})993fb1F`7oC8c4Ae7j+g!{VMi$n<>{2GC2B5lzPf=xIub^OF6 z+=wSnp3+a99zAnNgol^8Ax?#YYGRT=Q)>g~7 zw}Kl6_f}T=m>+i9u%0egaPH>bKCZ4cHmO`4686_H+TPC9om}0`)tkAtkE{EQeJbWf zfIGWjV(a0C*X<6tgTd07NMW=nR$SuptblIiN*91sYiDW@#%F4D!{f%ku9=#;`i4fu z?Q!2YQvVas>TH!rmIaywYV2@GKc`i z2%{c%HGR!bxFoDRt_)2@-gXJBejkHZk6AKUovSBe%xWbPi@~!(3x3r`uZ_6cE&{L{ zK~zCdq#}rE2#R$CCGIw>9lyaxXu1!-=>&XiSKPHltZSMcLsBo2`heFDgHpT*u7}R! zu1-aZk*p6!><_QRqv|5-3ncy!_zs86j!>u;?`EEOU;sM6g%HaE=9?* zH22!Dwm}mLzxTkcjThQUI5lwUv$ij^s&l6MyyZG@K#^$N}G8Ge|XiUPy-`;S@M)+% zFMp5X;@4&YQVu|3=cV^sw?H7`!&v~%fxWW8Fja)ZQc>Q+*y8u&EDTG<0!Sq7cfl+f zMM3V7qQ@XIxfLzr(fykKBLyvUlpGm(8%cwt#&z@}>t+Z-%5A7^HF=TsXeMe~PhVuc z?%Pq@96^U?+B!BINk`z}3PRCBb^2xNHu3eZSV^ZsG|MCvxG*_pOTnHOJtzt~YhjBu zf-Ce9z`VQAH(|=Cp{6t|EtPL>H#O4m5{BEdf;>V8-5RsAb6dwv_d@6n5~Z#)UJpxD z@9SZ~2-$fQDDu_`%EoJ*q{tVJBV}Td^w8qUEUJ^r%NCMX~-sRC(|OZwpz$V&<3;?U*}ue85vDV?z7xvBpJnlS&Bmn90L%btmME#n5R zO%-09M7|u&Cn4CG~?OX({|bI{|K)4#8cu@yi(K?3>9Ld#_!gCyQ371;)t zBUIS1yv}(XWt~1n1tL^5U0i8I#p$9w{B-Kv^^cF9opLS=ai1#Pp$jESrsS73LI=tL zxy*r2^$Chx)>savmXohdT>FX7chV$KXcjOiU_$D3`rJMc$*HlnrNo*<|IHz1m$Z&} ze}th z?f}S1HvoWmF`%c3oGde9-dI_zUGoZ=5b@VuBXi2M215rS3G5$Gje!3NaV<>nKWc=l zh2_9tDdk?h(htJZ2Lzxt?(g7gC--&1y$M%)xY~<*_}N;nf~{Z2)f>2aBloZ8{(js5 zV9P9C02 zfK;MZCqas7D~Y1iYm%TEQ4j!>)RMpszPIRk9U8`1T0!UO?taLNTZrb-TrD8@=C?8k z&u9&#l@Ej-5qJdUFOo9J_6^MuuIcU)X{%ZI|ovc##CV= z!AAsAWfxh6>xPT0k|BsG2&z;BD>MYvI)asM1T`G6{k5K(ARsgbu&wFc0KWu25OH;W z&~L>=tJMd0gU$;fXbkTGomT*YtvLe4;Z=nQTB4^w=M~)vIxlt_bYAf!=)96C>&E$X z2p^gD&V->)3k#fd0XEbOYd!312p~dOW5ZsfX*dY2+aMI>3x*0|qb<>3K#r>T2CuaN zKaAqcXKj?un7w}Ne_5MMH(3h6mAWfgWDRb%wxEt?Vj!-zl5Jetn=Zo6oV6XMCPikT z5RxWRKGCfmAhQDa#ZJ?QOoP@w>AblJL|ob%T0{FoeWm+By@6Is%T%gL5N|qgSvv6M zgS0yoG6QhS9EKL50m>~1s;|rprM+mPgJuYXP>8J6ihclumOsT$4x_M-AwFV%Dm50M zCkoQV)zKYDAI513UK6p7ip;~SDBojHa6_KtuK70cibDAkvvAhb=g#9@M>FpV6#X&Y zwHkSi$Q+=VXMiZnlnlSX4@Po+@YnbO;Et^0@&}FdgV&26;74h%{Vs9tyzh9<&o6*@ zII_Xfisi>fCGuW&4-Pd0)ns!}&F+j=MGR^3+8}ZKe*Xmgymn`LbCQh8Y zePY~qO2&I8CQe))^mjRB7jQsn0S-J0z*3om?Hq1N9ku2cSWrwELeMLbde_X1_aT|lD0#3jB9><8ro<5Njs z?C+TXyP%wHQ_i(1XWNx??d+uOZDdJ7=|@|~r+{YOTVD?(xQR{@<91>*xxK5+c8Wur$bjd>HhRIbM$$Ur zJFsX;rOIZ|Iy<}CVoPq>^{sWa^>%1oUA=u;ccQ!3oBc$s8#te~pTzF2_AbXyVs}?x z&ubItw)b{nBdoKR1iCu;7A$sqxDe=iVtzGCa+9AdvCq|NK%%KZ;_2mH2YZuTTFJrUvVO}K$=a)^#q;BMZ`Rmgo0aP_dj+62nxG0f-??6^WMrL4T7ai$>RD(iG9 z6@`UeGpz{?abe-QneLumI2>GggaHIQHV$kK+~`2XP$2aRkS$IF8=Nwk8pqY~>mv>I>927hQ6!p6bLDT~ak)jeAmCC4rWXD=WQ2LDnMCmt??3g!`?ATL7vSXu`WXIlB1Hei2 zwQK-RqJQ-UD6G)h=4UGj<}er{9wOt#5I(~60W5+|pyg|G7=aDsCaF#)Kq4qG;&iJ% z{|PsKhTZpO)QqC~;p&;}R>576JsxQq0WOXcT%0B?Sm991)dE>DLr|z-|30d&fvlLs z#4)|gT0Nik%y?h1)-0xdBzJ?$Fl3VSS#8M5dm-(<2XeC#Pza!Ry`;6Ig9Ay!a!yVA zOg-th;5E}*00=>k&*QZ^@B{H{$e9Vk??wEOB+=a$f#eEqq|CF<>Rtp0p`XfV^}w(- zK(f!bQE9DS(<9vzp96IQUIlKcb-cxcx2zK{Bs#6Lg1<0% z4Jl+$X(DtDtAAM8rntmyZ~|`p*~Q)n^{)_Ef-pW6Kvz(;#r04Dw3xa~2O3c;>IY4; zd4XWLz!wZfTutE?oNl`?44lApbganQ?wrP~9rCnzti;;soR(U<(M+lu(DVxmn(1cS z>Xa-yfh3T^rwD0lW6BTa$ptPb&Jffq`$!;;Ag1jHXQc19_KH^)Pk+yjU$*wivxlZ% zaZb>D`>EbhZ}?2A|Ids1FLECM_r`Ald*wL@_R2VD9l#^_VyZX}F)}s)s6>({F;Fe| zwKqH_e%|OBzM&P$^!KdS(bWQUM{)JC zbt_#h;$F1^Z|uW#1(~UzE>T<{`v^IzVH&XEeF(L^KL^`!1FmnoFb^&(d0`{ySNq>Q>Br6xTu1#Da7uW#B=hXl)t;S3HVfd-o}EX&9BdQEYqI&` zsw9)|U3f{(vuCgN?70TiuUo;6(neJ8-Bi6dxbC*zL?1y}qTmLqhRSKbPhQ66=|eJi zOXuk;krh{={C5mly_Lx}e=9cK5{$x_axcObAT(R|5^M8{Jq)xkgg=ILA0z|r#k7BZ zVW4RRpH<^E9-V9Y6khW#@tSVeyO4Dcqp(+@un(Zm zG&~tVcOBj8&Ac!%E-#3j77Kf)H`mxP;pO#ESyts9;dXB3p)OOCh6^Wo#j0YG=C zUDWq1?)aQLPt%?E;!Y_Vp6>XaeF@d7fx6?G^qK?(v@fv|IZ1x)n9#Iw)Lt$FslN%3 z`3~c@P73PRUg@#xrm3>-3U34}C-fL?ey-xmkHu|AiPzqY$mQ!Y{=wYG$iu;8zVo&y zsZcI;p`{u>om$tuM zPayc)a(s-pceOh%pKzzQ&GGJ(f*-p>UhL&UPcCpfuH@kDwUPOqZG9S);rieLH($^mGjfQ0rd5z!UGs8Xh}LzX2WRM&9Fla1 z%GDAg>CEV9BXhSaJ1v-z|qyqiuw?*g~pvA zy7hjc69R#{m#E-=f(uuC{Zt6mFA}wYi1eU{+#wNhcn`-9Jdn8~G9n`K7K+FR@8L-F zgLFp}h;0Cs9)xa(%0kfX(BMgyk1v3HH<$LtQbd!h(4f#;DFpneO=c79B^Ize=hbW8Um2l7GQ1DX?)r_iyWw6#bBtttSro#$>s+IpEr zqA{`gt3pM#e7G!KmY{$pS<)$&lkDASpR7>KW}Tf$wKE{4VNP=Dx{1N;H)Q2sfow{= z#Fvr5Rwmq*b5g%M$8!SlT19+5Gz1XZH zK|wLe4aEE+W)KZCNWy4UvGfyT?{h&hN{P+*0~%sQX_zS~Ed!Q;;?m)Vs2N8Kjx}wp zsU2|#{L#`JpvqD2g32w1090R>I^9f<(o5Z8ALzf||!v zO6S>hj`Rrh*}!vq+N?H_BV}h;?WVC{@>ya&XP*^WgD^B^=g!ajk)x@@>Jl@K2@jK+ zwVHI2&V!{h-HSzlZv^X1bBwA+HT`)Fb+C@=z~7h(G^T=$sZe7o+?Xn86x(=Uz+LOW zfHMST3W9PKL6ElZDs=4ERk{&W@%7l!^Ymj&&p=S%9l*Ars4L>E=ND(eZII>^)x-LE zQ=3~@oWq63>Zg+Hs7&!u@&YV5zR+t8P_6pHZ-jXrb_sph5v=hes10lcqZ{0Wy}=NI z`tTrHtzZZ^_{hpfKlO_779^?1t&bSqMo1#9?a?sySgOW0@g( zqQDwLt%gWnCpb527Jze#Sevo&Vr1AaT=M+qJl zzt_Z1uu9{GsbybYxPX^Ses4P|l^NKYgjyLYAA6eAWqgp_=tXaQ^^&!Vcrnsx&n!WK zVSn16pn#Sj!n>49&>VPAT7r&^^tE@uW;)f?+18OvBvb9l?yjC>Pcqq_?lgP4N4rNm zQ|(=8q?+j-ctA4yI@-EBM%qVG={B=tq~}-~S{7r+MvhOOI*~kgY#)5)O=VoJSKo4- z^8XmSJ{h-OpKLw*MpM(Mm~(znTWcoI!TiMuvUoWzcT)bY4BH*)*+DPU_( zQMQin-M2$*t?&_1w#hJIHO8UFqnC2MjO*q0Iu3nH&A8X41@0AVcZh`xa1>U!Dp|M+XDgV; zFhDsgZd$TkoR(}%30Sf{kZ7y+n(Z-cH5bO9?R_DE#hI37*w%PM7ZOBRr=DbDe=+I)!1NDD}sj!gJ$i`9i8-A!9Q4Nt*Bh;DbT!Bv~FAg|-LW;r^ zVFg8xFctg~ES~6G*gvUg8QcCz8P>@DNwsK)|E1{79?Ht8_>4haYrd1irT#!g!|2MZ zmo8lj;kX1u2G`~_;_Gvi>8_p!w;g7>j6Hh?Z#lMq>&`*1I1{_YOKpsFk$Nw?Ui~1) zmhkGuMn73@B^AHsZ{pqU*PZ|sKzeeLOQ<06G%JXUIbOy(y_;M~U zZ}@MPi1uAiPn-fbcy8;+Qe|3Q_|IHsntAm)Z^d98BG0W-dtlPu@bx%Gp|4GC)(hqn zzM(O>XT54K^`k9EuyE^)g}{DV8-W1T=5nQe>~byGtd^=jS4%a7%E+~M>ilok<*%=_ z3Q?XA*CBwE4+d1U{oc{DOmnrTEmw23yDOu)+SPRpN5a33CM&2>NE~}R{bUAS?ACoT zw=|3@3&eu4`YY(M>TwQBaTSXxyoteriE#yMD@;!#TrcEGlq*GCiGfX4D!5X|eGOb` zH!+&W}ykhH11-&KKiyE2K%Uaz8c+`WQyRymF#=CQ4vJhruy2U9;IYbOmX zI%H_oSQ8WvC;{3zXr(alfQvGzj^(3~p8U5_n29(Sb!e(VEU{ZJN!6$h9> zD6FO<$%r+u*&3ur@Ru&6QqHCWA#AO~*PD|FR{!#aT4&gcVrtoU%vaBaFaF}yOpQUpZLja8!|B;N`5kvU|Apu#gsY&pCm=uy{$ ztV~XD;;D>Ik$lPvDsX&c=fudUqr8{9PgCS*OUZ|^G{<57>9Ub4M1I#^bfbAZ!djVC zJU{XB)c%V6hn6u3<@xvXGO3XFB)7442`gf62pJokk6*&a?ApC|=fDniVACeg&I3F4 zZ{4%wuzTOey@P|hPF*+pNR&6DQkki6zq7E?hM{-UaqvhJWN_h=-#1MLzn;5JV@-lu znnq5{<#MT?+ca_4ct)wuIOgONl{$YyuQ0R46;6&w=!PA~!BKqOJuR01rYm=@B|S3Z!I?fqI;EDjJXnv(c;$4Kc1Vt#A&3`Bwat&j=Pv2I z8J)vyX#_DM^f#AlgogKy-j2%48r<0Ys#jL!?V}SXgByj1`qRnr$uzKO?2ewC0#V}| zpipMv-Ee&BWbzb!hg+WNBcms#l35?%WZ+{=q4>h{yRBarJUx1H;>_sAvEwI3PLGaf zG)!}qN5iL=6q4JG8%*UDO{48fJ$>T%sY4<>oU30d^YF`Pi%<*n$_r6sQcPL3SM zhpMTGNpi_RyS;Z13sV25Xmn z+8Lv?y?iyc7S{D0ARW7UKu&fiI*Fmc3B0PecXz`qs;?XV)!W(<8j`v)8n1Fnxq@)! z*ObRxRRkmUWUxKl+Zh98sX<56oogjk<}LG;`9WibVAmgd^+TpQ!sajw0dYj<$%1lLY-ZJcWpTsy_JL9PvPZ8O*I%9DYtvl23&lVQ-o*8LnQ<>5UbOodkKE6A=xsRQYCZH0GO>a<$`z}diLtW6mYD`t zw*SmbuPbyGatOD}dyc)~H*mZW$K5#IjAI7a6K{A61@}@ z4I|e&P_o0m`fWZoMtYFg{knl*mFkm0Xgm&w=C_5|SeQ1L!$SqGCTn0gBJ=@4DHaVy zpwCFA_ll|--ge}I(0YEu3;$F)yxgmq6|BS<3n+L5G?8I()BZqFI&4w zscRwKgblIq6mVDJTv*!!*A6=D$Tqs6D7lHh87_rA_d{Q5$aovV&0cuS*|V^iZl;oh zj@8qvhAYw)Z=-JjIqQC$wCutwRgkYB1A8fto2joOI zy>71VvkaSUVe1azR5uJDUfPX2VPD;ds|fiAPOkwd!?TEc=g2G#9)Z)Xc1j;oqHqRG zU%L`)#VNcply?4u|^D?cN~zfyv<}>~512?}Sb>klv8q zm~Mun+&9y&((9?`lf9RRI_D-lu?d@v2$F;3idUo#A$5pShvt%-$p%cMZb9l6O5HM- z+)8eFMd~)BZlly~bII*cNTioQ?|Hp-KfQei4KcXrrFZS5{lNGo>1&n&Y}X5eFuJj8 z=?$L+gD^r6-i_*j&m}tDgDQa5A)VfAdgn~v94Zw)mMCE_641o(twdM*=w2Ue#D@D# zE-GfXqa}IYFE2qg5p#n^LjNG9hDS)5@KF>aj15L&_dIU($uKjQdmNYWgcE$HIi4# zV@w1~vW#@k(CShYcUdONmqYAbmMh8@Bz$k~~DsVXTOx~}J z-pk|c@`=BEUidX{&DqSw&IbjKgNf7c0lMTy?C*1!*CKf51vIxF&by z0JM~~jOVJ@p3^HhRQiCn#8+_7O75xUo;df^VHha*uPIo@{C-V`G7U_aDN!qCC8apZ z>RCwx;zkw-irqT3pJ)@8mxO&7LLg}ZWPpP0I#4dalC+J|Rj;oXyZsGB4rs0h2=Q10 z^k_&j*94851)(~>AQg*;mHBN7@XNO`hW#IDccOTGH{kces68Nz+F@c&WX#-<8|~L2rU%lRP2Dj#K6Uz>GgBO}B}SQNNaNOd=K6_1 zGOr`OWcziPBMe6B%X3C>LZ>9saRy={7_5 z^*K$TotT(7YF@gqVI z@k(IMq0X$vN*uTt{trfu7`o^mQ;6M#a67|Y{q%F1atyIphDd64WE zz1a`LbkYIFS3=^p2|N&7Lh%_v56(K;JG`Q%godPKl{;uA?M$=>g?MoP7(QZb;=~Bj zdJ~1osi|aYjO`F30i$ootE}u>>h{B~mqU1v4#LmjH!AksDi5h8e&lesJ)(^2cRVC!=~9HOQz@M1dw5 zHOpv~jJ*A>)h-qU$G^tKLahT>IKv6z_zT)dlN{Q9SRBhYp)w1j`I_X|5Iccoh;a4D zXmcBLjVZ!flg?;ym1!ClR(Yn2#g*>5t!6uou>6MMDu7g6gu$m5+g>68dN3lvk2iqp z@4})9#TrfDg?D1-tMPjT>=KAH5#Jbd_0fh`@IpE?3md$(^Kn;HBU7W$7Scx#&wmi7 z=eJll((;OHy29fS5P)LGQmp9{$Q2-d!0)RbD}*X$^;p!}h>&CkX(b(lS!b~|h;`jQ z#io^JpKgY7yM4NaY_8<9Td|pBpJJEFD}E0SAD}A8Xa_z9dOy-iX%}9*+qts`cXHI^ zYlb_9+tcj{3P?w>JhSeFcuc{LwDxaPrky8LpOVzvR`%hV&sBWOLP&&TUYN= zO&QQOIhry+e8Ub%PhTMK^{>eq1Xd+P-*j~nm_#0&Tg-?Ba_E~3m;}?R1dtn%Hry*Y zR>7`f6GDv&cD00zL_pcp2nI_!j!H7?sL~Lu&=FL-5v=5cKupjcmtbf&Ei49CLZ-U@!u*1OkPE^V zAC6Wa;S2F5t3Q5e`sFYXzpMdl2dKj^CJ#ez1RQBnq?#)_ae)CJHP@huG#d9P_4GXIq6r_m?N%uc_ zrr=vJmf4FcbUVwDYSj)`(k4KHf_$3di+Rh@zB`VOJ8RF4Ucm=qs~%~$T`zSB2osNw zV^zsDQ#S0h_^*XEbp_oD|FJATIQg3Gl%=3T)B%K!*jtyjz*+FqoZb4e>$?@@t zscLhydVKoCi8a3LEr%DEZYE^T*byJdFsnk2NNd(|#fKckPwz-ZgCsX6;vX|PN#T$E zicIPxZAuqr+qTuQgU(IMnEevwXhvqr!CO-;2y`rop|u1lH8_de*%Ht+pS{Y!njIg9 z*BxTc2Tq*GXtrpS^EH-`E)qKSb_DV(ti7G|FMATW*#{t`jzmXq)@~V0bFYzko7U0Z z)BD;MlD2MoSw{!7DVHrIzF67imy&W?N}vi!Nb&)$L-GkgP!f333IfaJQUU|Tsu93i zp#hBu3kg=4MnWLM9yYBWSWU2c5Pu9N7h7p!0SV7&kYBp}#WNADQ1ScRl{j$)t1!rc zFYm5)Dc-_p(@ae*J@0K{tJmOY#nFbN9Y+U_P8{7hde^em>k!|-qNSuY>A@mG`^;EU zfb_`(cDy3+e^gF8z#43gQ3u6@|KoWFjckp9^Fw0RCczRq zONy{HmQX$!TjQXxHC`objax8jL2Rq(N#wAGa)`KKm#8rWg~}SMb+J0?fd@COB`SWE zz}6`sK|`n|oB%xje9~jV-jL6yjmHVXhE4?>P7=07y^dsEyQzDjx)+DR^Q?oQgK{dz@TyS#ir}I5nhOmlKJz&Yg zHZwfrHBd%{p1s!I3yWA_BMOxo!0twMAyyeIV@9&T+8;)9S-aZ<{(_GJLn+|#TZd?$ z&Du_|N*irhr6Xt|Pj>yP8!jWX%mf9rei4l!*{M6wA+RpnJaLAomIxArtl$u*Vp-$r zugC}^#~cGqymh%xAktOJ{qbc?Fx+u^$mQkE0)UweZv z)8GGu)U|@e{Bll8F`SokIQXf5z~^RzzFsRlbwHGk8R$- z^+1eE$#q!>s%MQ?GH-y`8EY?=RhT!pr5u|i*b1EAML5hGU@i#IZ>5+k#O5h0zynqm zz>^B()xIXKGz+_jN|Igctz1cPrH%VKxUUlrA+^gka!_F8u#xMVjE%5!7{qi(VkK|k zjL+pQb!lO*$K$D*0X|?Q4_DySvtmX2O!dn0n%a0BJ?rgeJ-s;kaID3#4#y2RZo<)z zW5W>Z*^GFLjn!@AhNworD*~-8fzGW9bZ&Qzv~+MowB@xe9lW-sgV(ln@M^GlfDb;e z4*f4U;q$tsnSiKE!l_3%q8^d0)WqW?e z%NCIYI|-2lY;j5g%38>_mI&$YzgLmJu$Cb2AhZ%ntO4+uWH7Ok3?|CSV4{W$CThuG zB2ESqb!0FRA%lr}0vD(ti-t5 zLiQ14{%@p<(lKDbk?B937ek0VwAtE*=fUWe(D%)zL!m}I4vtYI38RP*nZmRMQI0t1WLj4Bb zA#P9`;D*n>L5O?q2z}fUr!J6#4wa@D6vONqAv=Gh6o-59+^|TE$$Epk7@WkUQAP|3 zVDyV(S&wiaLl^R1v2`2zXvSc}3xkcz12{YG9DkQzp5PEWe$K+^@X*_qt)Kai{cp%` z^WKf{#eR8O3?<;oJ}sxa^Sh$8Cgyf#I2ZDMg*o9EF?%P0U*ZH~IUO%FKqW&#FK z(0&i(y=gh^V6*S}B*Zn;l@eXR9_#DtgOd*^D|uoidPT9v13N{y`KT&e5vx|o$%pWv z>Gd%ci#|vN&dFh}SNP10at)S^Wza$gWl&zuxPK*AYPeD>Od;#IQqSED+}+647On`h zNOvoDC%C(f(>8h+_jhxphbw*Dzn1&gA)jil+#raD0lDXGYy|Z&h@EdpZHeh;I>5?+ z?Zc~9cswgTH8s66fnX?H5CI|z)S=+^jaGfdKX-RIxRESM1Hz#PWW-Ps{$Xy3v;$Z0&Q#Tk^ zl^3}AgF2o7i!NPfWfw;Y!~<9uV%&qoxQ7%3VM5?7&=5p)1PZ|7t`Ct zib=+aL7?}@6|*E=LU-hfnN#j9_QDC4nC{DkQ`{HDhf_DuVNvKufII-!ENW>7VqY>8 z{x*GBJGqhT2}H@_)(tldH>MjC!%gX?gmlILj|>nS!0@sT_od+A zBjEgV1P3|dQ8Jg$3N4+byv$La%09Vv$&+WUAH$!0>AL)vV%ZX+bB7S`3oB%#=%$D?EV)aDA<5nEqTMu)jL?r1X2@BVv;#IA9k0m{|>VS_xW$tcJ1CZ2!G5& zyY~+214A$=bzMIXCHb#Lr<}trr?y_N#bT_q8d!ys;pCF!N&oKY}ke z@3B+12Fs-Tn6M(`$5PX$&%iIqF?%GzKv#NGnDmguhg8~^>^6-cY3T-0iDNOi^oD+n z9v1>58)H`zuVT=9(#OX~HsCGVsp-iv8)#M}iftRGtegrD6U{98Y##8er1Zpek%i@0 z0(}z6uS)u=%*Ksv6l?D`kO&ViLDE%WY06G5nUj`JT0Xl- zR2G{~_XAa~ifS?ExmTZSJ+z3mul+f?hCht5wMebMpPTA<^{yjOWQI4)w zQLgV8=YdIGyg@mYWFzplnei44|BScqO^zrdXO)q2T=q`e0QQi5dDymxWs}OWq;f39 zPCGWkIvRAm9d^3PF;h7<;wSR{_~^(j$rHy%9F);KY#Ybp%qgUXV6smBrkxT7?Q6Tf z)QRaST?`g`sR$C7DY-`6Ar>F67(t@-1OlpHmu#=+61@~oxbvKGOBXY**(LW~5KIa` zGm}2?D*0M&Cki9;%X#j}U&OrhrSg|-LKpd94nkkcYb3|_PkRBjC^wA4_I%W-6*A2q zNWLK%T-#024bpvi7pQg81{y8VoSKQxaurc`nD#K%l;M zS@EQK{#72&E4wl^rA|#vv1w&`TAiLoG^I{Yb!gKfn40R)k5BGO?z(2Cd7o}O%ULpm z2)Q{4^Ce%sw1hN0(p`zZefei_TPS^B{;spvZIeV-C3vtQ+~v*Ak|1`3OkB89?<6nk z?Xcu-Cv+feG$VjAQhO&|cF`pOY;37`2Ozq!7v0;bb@z58^tO(^_D;R66RP3};ZR3! z>+0z0LD<>R=5dOT%dSLcW^0=+dpeiEDZRG6ZL%(hAis^2z`5>^>F{|O5K7>|SpQ{r zwv}Uqj|*rWBBDHo4+z~Mu7|l^z;yu>qzg&92GqSWFvuMCJ%H5JgvqwMn)bT28nW8f z;-o#L)e8_I;dw`EA=_;)tg|6oAK=;suC)Uyh?9l&AUAxKjVy%24dFao{%G5|wu5Us z9ZT#zT!Ab0y_~~}8O=1&h;^_ z3(IZgo%kS_Xuk{512}rQ_Auk{K)~4}I37dNlQ^Ej@gW?~CM&q_V3^S1e-b0-EneUuW~o zHgnU{Y-r-$z$y|6&tww(Rc_~B^S=EbM*5k%&YpY2Z@lqtJl)}H`Yn)z?`v^c5MsB%`m& z=xZ|iT^aqJjJ__T-?$E>9za2NGC3^hjikC zHbWB`7Q3ST$i@-g^T#qP;Id-r4?c28XDkh%}MC*Es&xvjj;?q)UU==u%}FQYx)P3pSWp91D=Xr!A=SJ zviGt!(u;>woCM%P`JG#<@)JDRImvs%fW}>3f)}EgyaZn!+7vvKk|jN%yhGTcbZ4O6 z11%-nfXQHWEJ($QKuf8(?u0r9geo#m*r|zfg{^MLd9?X-!96KGTuS-?x~bLTTS#*+ z43qQ7P$3(N!rHC7UDpcWCDWsOG;F{uz|jeA#u!xV`!39l}DrlMOhNLWnAPD1rH{?0)^vanUSnuzI-F8j7CSCi& z8A#7|Aw51*hs`AbTn*O|m;lnf_IU%&ebyc{S-KWmKBkww z(&3pVh@tjE`^5|-Yps1anQ2aisu6?P!j#sigq|~zzaY`lP%%vUHRW} z^#sk5^eSp#>sGTY-IA`IPL-SGI9&}%Q-wHNgR@F_T55%jeuY^vXI7e(bLWQ=u)Qyb z_{c{tXdp2vG0T&yAUz71C0}jE+fz*@%1q)^`eodOyb8__wJFo2*kcw&!#(6VN1i@( z4=S$6IxX5Fu1=?l!{3F==!@(~)tQUzbt}#QX&_tuQ}AnBmc9}20%hr&W*4#VcB3^d z($)impe)@l($>R~Qp7B#uc@FD^d~y6M8gyUr+fw4CW^S)x(n@c3qI{EwG2H{4oHIX zxT|o0zV5c_H&|~F4Z6ZyF=tkr)uKVoauS>_%puq5)Jp3&#Onvlm2=4f_^PGyZJ-MR zEvO)*gc)X561V~o3iQa|5W23_83P&66VFX`*J~o}I zL9}){Rf}lNbSjRhZ#q>+I0jzoIs{!HK6947p*~Ea=KJ6z)+`ZUj`pL60BS%F0e?&@Fc6i(Lg*|KQxHT zM#3|2h6bS-6rv|Lm^E`|qZyx@oikUU#sqK#yw^r?uaWLG;NE%Eth^T$zT@Bqx85wm zqxAqdkfliv1!H*sqnXRNGDk%V*C6$=OzJ~^>ZXrpuJM$}<_V-MpqJHKPdY`GU+|Q3 zDZk)pd_hi`(VXvOaq=dpWI@704WX0t?&{ihh%YF zMLCKwH2p>KUtO|h8P*XkxCVX{O0bSR3m6BQ&#=Q^(wHi3%vnYn#Ug^`r5Z;qJw!_g z&g*eB;Am`2H8rN18&j(qQ!Th&eUY7TJ&W$s%_!_pC_JfBIIdB+QhyF%t@}d=d-#VD zPIx|o@RUK}o!;jWp7yP&mU%DS8Vlqv#%1PSIOg1x5F=N{a4dRTSONR=gF_+gSBS5WStP zd>+v|Sj`KH^&GG+ie|Q9)%g(4ipeR$hjBtHg2(zToOu@F>KuAFX8DiMC2knj^K3r7 zotB#yaI%9|8-LvWEY=s&8kofD@-d|Ed_1y7#n9}n{W!k#K^FfcqIa{p7ZJUO)xXHB zkK?Ib)B@Hg80J-<0RCY2&^#Si?!gKYus+GmxEY|~RcCz)njB)z=jatw(ofUy?-EN> z!)KWF8AdZ+V;FX$hV@y74Vp$e(yQ<|rt{A*vk~)oquIDn^jDb9KabBb;vRh1Z_^pd z;kCXXv!Hy?A0|@`;iF>ae26uE5yif#>C4ReqR5$w)MR~$Fh-it6}k0goKB~jt*pnPu@^|I!A)NjmJXX`@9N^1c*4GJv z3HAm->lv|DeozR4~iFI-{Qq<&}*QvQI2&odX)?Of&h}UTrF=v4cbWBFYLf=4 zfK}G_=uNAFpc4o&#d?{U7(>wzPG1psfT7bIZlET5l&$(RX8oD?Ehc;Vd5iVu^ia#J zxe5V2YW*b(13A-LL_TP%hWdiHqow{DS7xx##EtLcl*<1%sAVFdK;tywX5fW05%6Nx z5A4sbqVingLp7>Aasz7pt$4H{?xx-y_hc&e$LxajV=5LZ0bR#SOE^MBgsKQN z5dwh;>248nglGrr|FA_Oo3K0AWHu7D=M=Fi?t0oJF+n^AXsFQ%}6 zfY5J?_0QCM?nLqag`suG>xJLCNZnJ=SyrZ_{zQC}f@d_*T%u3>tNo!0w$ zMJ^J_1+!+cOfI+Hqku+G=FGD5AeF3#6tk4B%5ha`Jxn=;XIqg|$$7J^Rio9k%KA;p zsX!!`o;S;7@(Sw_#jF$bK$TgA)gA;B5x@9Fo%N_fe&HU(&HdpK0b-RSMrcq~xlg^!nKl_j(N2Nlfrt>~%G$qpjt`41^e=lSQH9PN4j zBML0C(J5D2&x=l3V|~=_Vd!RZmZuI^8*bOo*FGllqYlz!eO$@R?w`OZ%}<|F?AiU( z3Z@7-yMG3!OJ?`aiZ?Wb_oBF;leY4QjXPf#KgvwM-=Mp> z)9*JGG5vl88GKbtzmH-1{Ucmq`rV>n7Jr$1QKmEh z5)bBdXVgTq^{VX8|AAYmh1&Xp-$WJ6s2GK<9?a&L>m!(YqhPONCe%pH`fD!VA9ZGz zoaOtQzqn-G1CQOHfONM{)4$HZgWLz5EKrQD`_zl&er+)S8IkzmCOUQ^t8hrFYlhfdKd>zyRsbZ0*10sCVfK+*6q z6b&g9PN)>(V<jh{Ye!q^N9U1kDzF07yw>Cp}&Q9DHNVnDLki9_y(QA z-*8j-Mo!_~9ttN63g6AV6m|G0d>`{aj_Ca?K+y+SkfQS}MA0k@Q#8j4oa0*Ss2j+(kFyTGB)c_RAcf&>Y$gG6sEA^?(Lktj+OC6SUqY8Su~lt_XGNLg})<=Bo>Pbeo^E7lEw5M&r~xs-l1+~2-WcP%T^{)zKeqm zujyVjrfL>5DM_cCtu?7bXS{ZWjnjgJ+CgYog)&-67RGgKi;ocP%8OB zMT5|568bcua;%93q~!NW=&wp>_CCVnLHGwH{6i|doba4Y=&-kL^pu8e1iMjm&K@F1 zEjpIwFd>{4rQ?)W#%jw8G%b|_A6~aqA8LiTkH2){V*y^+&gIz_ON9H9Gqo$mYw7M? zD)jw-Bu(QBYWw`w(sWK{?M|%F%xKfl1zK6l%d$dC3;Wv_%28?lETP$!cuyFka3TYU?3l!4&db-Q= zRSJHpx5hZ{P;%r-2W^>BcuV!h6&le2ax z45>L>9kNQord>Z_x{(zj zNOG#;S~Gk(1PSa=sD(ukBuZ0UPxwj%;3C7oKaq*G^NNe2uKRK*gaD(1{Da$QEYQ2 z{8;&R_Ns%3Sf{dOWP@ZmyR@bc3F)e7wpDmZQZEHVI5cYqpAA-2O#H zK1n2m|1g3?w-C7w`YV!=!#4%e=S#vFBtHU$f_OP}7ls(sCwT5{{R~8AVQ;s~l zJUi&lqBa|zYq47+Jcs#(DAO4&KZt6r*;uHRNyKR737DpBh-bKnd@M{x0&Q81I~VoV z0xVo?;5h1UTK7V0FZ?x~OUv&FH&AeR(#VYyLiy#$yE8A{o>bCjKZ?sx4^L$tLAbF5 zEr3gy)V*UW4MwZK8I1>#S~~g=^#vYpds;qwaeL3GO64w0+Bjm@W=5xaOicu?KOguz zQlNX&$gPp6A4H2GUhEb^qs?>#;uah8Ayb?TZloxePz@PE=x$90`l{!LTU zP5IxRuI6@aB~@2Sx4Z6{68}pb4G=y(9+t7e+0ygV*xM=qwPXTV!Pd{+zt`R0Pc>;liHFNMXhQukZp~gKYJm#OP}%YBt0aFFHgk%3f(`Qz8D`nmp*^-_|*P!dgQW%IFE^IJWlm4 zPNXjxPneHC5s|KtPOB^E_#H*<;!o<-5jcPi?Qt{bK zGql+FOv%*r*)wM^q|Yf+N6Fwx+gNg^vRQWBCw%{;gP8rq<1s0V9x%C;h92>IEH9ob z(UfMS$bYXYEVmj0Z6dUO)jju^_iVC-;J>mSWJ z`=_U;rjv&*VCD4ec#{-nM^kj>at2GHEZ(cGlav~HQ7U=~QTee+Qayh@ZM25$i%z?jrnP&!So?arJG<;&WO7Anx9cWL9U#jrbzQxDk3pwiP7bA@C<#`61l7~1 zlD3Uimq+@YQ?;k+PlfZ)%Q0oca$~?t`DX~% zu60S@)WFMNORaOQ7KJdiL5>$270lFT7u{Atnrd~eZLYQ5wc8ZxRENM8THS7(!^A4r z+F1b1yhmX+gGsdnp;=T_T}y#9TZi2EVb{9Djo;-)!;J%m$;HX!gll0<=^+?2sryJVSxUME zpo}0SzRh6&yGgbfc4(6rDcIyS7aWNcgjP$zfrtQy`0NTc&%dpleG>4D-qv}MCjGdQ zy+d|1JP)AZ!Uz^yQ(Z*ZHZRAbk1P9@$c;wkv00$qY!nm>9Wh2k43oE3V};35<_pYd z(sn)@p?F>D9OR=@+3G-~42sIZh%3R#C)6cn$Ei2_fyuB2I562ey>0|eCFLGcZd57v z&WXX&{?X+8;iNH}1Y&En^l)j2_4&nV-z_NX@}a&OkA*7D{gZ+a_hxO;%=>9p2u87oPz&6Gq+(oNn& z3sUWoW)mAp93}ZffWS#tr49)XZ@^7MyN)2m+7m^Jbz|%tMzrGRF{5N3wnMY@Jfe>g z)of$y8hl*L!Dz2AC{p#2L=LXVtTAL$T-cXb|ySQN*}+z9?b>`Njwb zS)jL{PH(_Y62cff)I6Quh@GTJc0IxZAw<6?Dl(%g8CFxMctZe2&r33-45I7HY65vi5(^}F|CwOZT!U~H)N;V5mOAB_Dzyf z!C3A<0?`lg2XiOlhCytsCl$q3MwE1jAG=#54GEF%mfuE?_mr^!aiW*s!dnpUaQI^| zMbcH?t_@}Tu%PtwB73J`_f9a0{1T#f$W4cS32~_-@QSc6X1>Gl-a*g|;?R6M^PC77 zMv(;MaY01L=hfu#PXGBJkrzHc^X$T6)wki+y~}7)^c^PA1EhaNrGF%JRZ@n(g6JP9 zKcj~D%(Eid6ZNi;&jJf&I!R%mbde|5lGA4%+SmRq)K3K~Kzpg%*2>rT&Xqt|hZ9Ow=wwiD? zC^LqqZKs=vpCF?5NeTsBXE+-zMeZBvGav{>@N9T)%QM-1TR#6RB&vN8Gh$@-^KDeV z6@2{PR+%(~euw%#Y9N00JI0*MlFuM;Hs5+~WW>Pg-Di!3mKQ3~O+or>^g!#>{FTE8 zm;fq3)xX|st?eE z-wHm_^&<8hQHV_q;{q-SOfgklH+pz> zNC)62>J)9s0sDU&Nwwz(cXa||HB%Qt<1f`AI%kP%xk7YA==A&0jY}PRG_S8F0U8WY z4sXTb<;8k;64h3^#W_ZSe;&^nrXtst?v59E48Ql{I4NWGHE~)SFy0Fe>_l1N!?6ht zUpejR$V^a^vrB7oDX=NKq$WbMD-OB^6>P0(trUc3l-6#T(=S@B`tTPS^Nsx~RcnoX zo3|3IxGMo|ps>M93d=lGaeR4!D_5w*%o3%((&7ru#0y$Z6AyBOEoU07$QGKML|rM$ z)F-9EZ<}1L*b0HJs=t^UwIXFQ^B~dlH zG-6`D)h>3Nuu_Li( zaum0~QqfES>rD-U{MU^)O1e|qsav^1#VzaW1qZWJ&i1w>zd~2p0yM2p_VIL{vR-Jm zyZ~`q<9^;sG4d5tz|TUTQKKRsu12P`_>8X*y<(AzE0_Pe)3-me;zyFIrs1qyR5eCY z1-~*C5LE#(cNveHX%NQD^b7pn2{)?hPhRAFm--F4)1=lZXL8B{gh@u_;kElw@%|##HAi$!~0ulMvC#R+5 zT_MWS;xC>2WN8upy9Q~?r%sS+z6mvNNDLp;AXo8e%$Q378eoLx|igrKmcm z1vGtW?g1KyPe#_HzkDHr*NS_trW2KiEN?62u~O<%|CN%JaFwicTIQ9dpGugjnA}KS z8Y6^<)IB&&0#%ctu1eRJKv+777bWhCDoC!Yiwm)|GquD*zMob~Mm27AzUYNbmT0B%rkkW6cQmD> z+=XwKb{F-_CzH%ARcZ*VE`D5E(4{k)G*jVXr7g?kDFwQ89PN z?(Y)Th^mVBvi|bx<0$5!2z-L_(hd!f6>dnv22w%nI*EzDj&^v79SUz)Sc?ED;0%cE zzitTJ-5u~8yZie&adh_d^cZK1jDhVuXxvWr+}VpKa_ASGy`6n3=pKxi?pD-_q&k9jGeBr+cj=;?Lon+ z2=8}|5e0Q|#5L}8?W3-Jmw;5nj=8aWTmw9clWzP$*Bo{2QzW!o!B3oV?Mc^Gz!UbP zu6@q6&%5>o*Pe3iiwcHf+O=m~`;wcu?AnjJ_7krCO4ojsYropHU*p=Zb#2o>UGX+%F}SQLgs{ug-u64#fxd=Lwc z^8#Yw+W(E~kGcMo>(9Bq%k@1j0mJxPuK&UHk6a$t|Ky^qAEO)omD`US(SJ2;s5e5h zU$bpC5!$vVWNfQFFgs*yTXnCv_4myVS=)B)4nH(|8!U_L4SPbC@f6ADBvtjIh@Mo0oKKK@6_Gjh! z=fn@~`gtO4d+-;H*w`UgL({8bNrMETpsf8Ch+*WMSk_Z97ZO?zM0-Z!-OP3`@m_P(XPIql7BZ$W#D+IvQO&uZ^E z?R{H&f26%X(cYhF?>pN23+?@-_P(#Z|E|5i(%xTd?{BpCciQ`V?frxHp4Z+FwD(Wi z`)BR_i}Amt>HbYW{Xd5B>emSCr4we$8U_u(AnV|bR1SvDz$gJ21kVBrqy@o@hQZK! z1Tz{3LmL=c_`V7XSA2LT$f z?n36x1{b5&IpOtycOjgg-qA#B{ow>e$3CQ3N)WXxN+#*;fZB*Dlcbn3nSeHkFnO$* zf+B1e-s$aH$d)!KNQB*^;f1-T!(mHGE5M@2;JJH%49O;mBQkVS0}xw@mWlZB1g$k& zo^ch&W-n3w+Z|$i1eK3SJQDLpbddn3SGXsYKy;`w1_4#xL0!g5DdYZJ8BIW4lnpS_ zUCdVdMR2{tqb}x94!fqbrU!aQWhSawMyON^b^{6}7)CiLW%!t1hNC)57)q)Pb>3Y% z%R0#tZl~WY^qU}c)Q!S-nmb%;s$}nyg#Oe|=pLOA>?f5_gLhmf)KHudeec~nmu(oW z&p303>vclM3lq9uCj`u^N~qC0p%ZE>PKfd2ot(>JZY&d?JG@FKbfPe!2j@ms1L*P) z6mru_+0M_}jK+rr&?V6{TRT?LG+RHGY?@s)RtjEyC=KJ#7zdoioB)@_%EE@S9|e}z zffuzkd|qH$E(lBuPFEDCJ2vH|MY(kCGhPNQ3D`5^^vCSFXT1s3MxXPtxU||Cc~}rd zb~^=AE$U68UsARa-PALSZ@K&&e2}WYg@pVljXT>y$X4g}>^Hgqj1B|*0!cY=@ zl(2YFY~kR=G>Zz|7}Sd50-(%x+p#%F!>M%an|4hBfhc>I3|GE@cvLA%RRH6RG+l#d~F8LOV)c1qcSp+9X61 zdauqT^9j9XE|VPDLPD=iJxoHc%q0|62|Wo>o`h2X752l=!hVpc2obrV(9gnc7&e~5-D|!TceVBN23)84?DpC4v%+** zPzk=35IX!h7*30DZe<>@fvT9x*y{D$jm0dmB*{*hGWG%M1vJH?3c9M|I>MSlPuUr1 z1Ig*v-c}wJLsD28P(LnVKE>wM?YkvOaE;oj#INL&*uWUNBDJt>Oc;L3q89L(;B^g! zu2JX~w0nTMG2erG$Pz?|UR&@V4m*PXaC=xV5cayifqO^fV+LF(sh<0+_a0+`4oESA z-^*Qxs+2%6bT(DM11?wImZaN?tI z$lzjOk4t^>Wf)R4A3Uo?#dHL%A*kHf{Eq}_3)Yza$gi8Qx`NN7O}_5Ot&+IkfDcRh zQZsmHxp?0v-Z!OUVJl)gPf)LKsUKIL{J4&UzD0!&8sZ)@#l7E}!#!ay8gR|#vpW{} zaqOfn^CamT*IXpmv2ezIk_A|Dri;VPbiD)e!(7H$RNcL3bh_cPzhF6XBVlkKC;&Kq zw)6MWvfoxESU2WKLR>CagkM4E+foig+|%YC;XZ8riC{v^%XoUzZ2xlrLM-~F_!EB5 z$=TZ|+MiOiCdJ+SGk-2f&B~8_mHi!(Xmh@601KfO1B&=v3J;qxg=7&k-W}oZ5vASz zOT+sfsbs=i;3S5#WiyQ9zl6n@abZ?Qv?lrYrE(G{D=6?Xg-HyFPrOJKD=+X8+}hci zs%t#_jnp|}!l%81D*v4tOpT$xBfr(g|1iA2r*)e(ve*CMwp8Y_e=ru5%`|^T`$uD5 zdQZ$Qxs4yjvX^tB`p8@h<%VPLX0f+tfsK~!brZJPb`46P?{$1zF7Bb4tXFT*n zvTQW|19!rFlj;4C(#B`kJ>&g{3=@0)NuSv(ZPzT7{7++HA-g9%2pR-8L+N3_Ah_9^ z-sineZuX}~yeH-6K>DEfdbv52J`4^3H@Bzn0PJC5L;47*3)tMRGQI?C?oH?okJ&Vn zx3;$;& zN&+f^vnWa+KSvx^q-WTxQ1f~=&#R=}8$)kJ?7Po+8}1JCmvMJl*G!-pC=U}U+u5)# zPdMXH`)5FAm>;>Db6{osI)>}V8oPUPoz(Hpe`_r@o+MI666K{K{5n+LBEkK zuc^d8?I-?zY1^l*>=>HDvcSogKeEvilm@wHe=#OiiE{{vgQo>jjy9LmKm0;289;gv=d1 z%JgsYInWtonB;Q*mMH=@#FyWUj57I+&6_PRP>PD6($A<;NVh?9d4~L3jBlIXvqApP zN&ZjiN`Jec7iBRFdhw5nEB)=FO8>E{bY)QKKiAn&X|nrsvTHN`LNYbKXM&gDxAb=l zGW`o(>F@cKW(XBl+I`OZ%i>CZUsw8jMV0<5UFoV|r2H+V@cxc5@DNQ=Z85nI(josq z=<}e(hW>#P9WnmV^!|}38|OzxjoDq#de584KeAh+LEdg4dn3nS&qM;U)BAyp&KenU zO{DYBlKQ_$>gazV-`Mm9L1*MK`@kE>uU1y@Ka@H6heT`%F%h}Xp_;}aUajWuFhV~x zz5g)hA1i++!|p#xs8jF!UNGlnt2lBBSD zU@wpYYA`*Cq;XhH*s>u2FkpW2A(Z~9ew{R7ER5PMpHkn$KKl!Z)CH~q)K5;wCI0P z0_GP~X`e%JeX*&6-`wIsRMlmh+pRa&a;G94MEhKReGSt1-;u_@qH=a~&CYndq6;7% z=s&nE*3*`E)nZuc!uUUgYtq)wp{8EY))(Xlp|(&Y>Ai=h)jvffq@;P@YkBXrR0n(S zqjD7@pNc~JqO^xHrF3an4IxiNwg1qXV^?tWF zug?|b^?8-o>L9N#tGrg}yuM6cyNs_`-tR5T>nl1h7QlkMRz2(eesNx3Daz}sDz7z& zJ35WD;n&IQdC-qTU$?w($WR`ezcM-IeN%>gllND%eP%o0v*O#Thvc( zke}$Xq^EU$S_eybuS(q}GJbhFeF?FWB_eFXU0=!|uFHM3^o$7QH1cmy-(0%Bn1L47ib%DOQxnBXMy+n@VtC>)Wx^wU?&4%R3Y${Prl2?WI66E> zFJCe)T;CRo!VS>o?hCq2GLWXy?D2vZ`6}hD)oJj99LF-?8Ee~hTH<8I6r{POZa0V$ zaJ!4(5N^o&#zsJQN#R)Qu)F#@1`J_lqrn9%WY7#1=qFO^G(ETb+t*ukNsN+DHccRHd1V^}DE8&uv7> zADeitgB@I6VIQvvpnpOW*wPia0<7i6!SYwua&0)XVgPTavU$fl4DRlC?E|iPFnYjb zsxy%d4?AWl+CO2Fy9#bpNVSAmp?Hb2Mi2}_CF??wRGH(HS32e8ZL?U=-LP@f<}IN( z$J;nGRZ>dy8v{GIc5&UtwTEkvYlv%@YcJP6u8~8=z+wE`jfPclpKLcW7!nQO=wPS> zMpJB1batHNumBm<3e(4}8y4-JdZpbHva0U3u(DTuw^$#mxm&F18d0M`*e@QJYwG==;KGlmODbs-W~HA%H`>J2B|bi{G7xb z#fP~sBZAP2*AAjSLf93Zpm)~>vC8h9YzeW{n0DBLgG{MMb*V?C)HtqriUM1wDX^XK zPN}WTY09fgYkLoqcBqmy%S*Qy2hkBBD~jtVUWqp@#iasQ{KASf`h*IALLp^6lfl4` z?M*^rtd!@oA}W5+dxU3QOvfABQ1%Imc}^9RL1NhtP|7J?$|)%&PT0h$v@XJrvM+iU zRkKQ?N{cEUiuW=^%4x5p6m>ddA4H|ZUWCxYaW&&q3-;@bI_ea2O*Q-WDHF-)&u`p0~2e6&U}8Nx|-4oCL6+g&*Yt+ewfta_C+M z*qyX_I07!%r=`t%q&Cf=9yw3ptT%BsSU4MPoJ|hS<}l6{7pF1;)Wp{4Zm*Y}CX4^5 z+uEvf?q`Dz!~~m9sK6j>3JDmBqBpR}<9nb{?pSCEC28gb_57^2TiPiqXI%r;98n{R zis|AcSQ2dR*~vpwaMAN9bvI)=F$&oW)4G{h6{kaQ50!F*N)1t|VSs?CltOHhitZ{GzgclN57>Z()BvpkSR1nn zIUFCVA?!wHT?V2Ra+5}BimQyPoU4MXvf3!E!LKzUQ3cOn4~mfw%NYzI17O2%A2Bdy z8UmgHPv9BEv?>21GPlZVAV>`8AwG}ojTeK&zyS4;6~dkZo^eB)naZHy`sg$BlQ#A@ z7Er2G7&E~j4SQ=xW24b*v|St-q>&sP7|72BgES{_Csw_J0a{g|#psG&hA)T${kc%- z)P-|Ts5j@-Mz8w9lrk&Ep6}@Nv5D+CfDyQNFH9+`Vimq$`0ngWHHdc>m6!qS3lA0r zw-r6<9ac$E*iDA05&%@fVSQ|HI(iwb2*UY8)b8jX7|;VSrUoD~U#44#7$QTm0+U2) z=rLb0VOXJX!YD~{m2#!H%DBq8Dv|AyAt%%C2=GK|km1Q7!!yAEQ6q80!Lu21VTPRH z06)Tr!yrj8;!wPW(rp`p`@uc*9*y}S8oB}A2lqLw5AGcqeKI}9=Gx~Dg?Rkitf1Y35QWtd9`k^Jgy}Nnfng-ktiT?^Wo) zJJiv$ILv?2ugVMK>7bX8G9Yyd)=XWerK@Ie3SD0NVBOT;U1#Mi#w)qWxC7|{aE(r! z0hY}UC6p`&u`Ud^A&M*}-Q=;iJ(#R+A_3bA5=4GIO{sB{YHPK!q%we+)Hp{e zd$ks)t;T3su(rnHC9`q(37m<_jfzUHDz0j-8m?NdI<9)I2Ch}Bjfyq+P1v+mYb|FS z!9e1S!%-)~hHV51FE#oV8o`JqU9f0tA+b7;Z!*biz?YkeBdR6clV{u3-F%g6(GTGGFR^6_--cqPYZa z<(JaV!rd;`4iR;ip9>RqXIHS*l!5QB<8d|cV=D}N@DbTX!WWUz4YOIz+-`}HEaggZ zm2s7GRd7{uRU2+Z&*EXmF`Gx3#qneo$CGi4C*v4T#xb5idbu*SvyYTj{r3F$WtD!> zt9pRm#kb)l(|@#hg$JK&G%B)$?c&JjbAJ%vbM0i?QZW4oozzyS;1N)|)Jou5%FeU0 z_^fO{vlR{lh`Kv+=tPCO8Qy>AzSH{- z9oxV6_@SeBE*%vX@sh<+Uhz_GDhi0jD^-PY9m|8c`Wnjh*NNHE+kSIxWvvodKm=4a zN`s~^q6TZ@&_0~)z^%0WirpzIRU*hhCYmC3+u+DpcD6wMS!s`S-cpVbE$^D1!X)pd zCk~D4wo+d!nye`C6|41WldT2SU#Trc8*F46lBiO_&Dq_~(R<@r5XHvT+%e-^m(*LJ zy6dPuj4D@JBCvp5tUs-{jfuh%DFj=eE0Cvr7Li~}X#s6#c0!pc-f~OLb|Z}18_tED z?cK6hPzUW>HS}+W5iy1IhF&huX>OyuZ7Ky}G&(=4rYIIZekw{}?_3F;qrnL?0 zp!iDMSg+C7&o#icgKH<(F0R|S2DyeujJ^Z-2aV zcwHKTf<}dmp*A3ENDTD=Swv!3{WMrbVm3a@NKB}_tRu0oPodHZO;jD?mdn z612k)LhxULGB#m5S@vwV#0h`XCjH%#ep3j7g6Efe}<>1_E}#M=X*5+J8+X`&gjCH&CB3qfR z^oITWDxhZeVNg>(7>(g%tEGvqQp#*;>HGNVAYY%rKNNgTBpuJnT352AI?1aU2SW#y z-eF?7VmMI+SIvl+j(59CS$||_Z9XFT84#29^74pEw{m%^l|hMk0lzyZZGh9)T&8JRSfs}%(3W==weS|`nEfrDo`$y||%@<-Ju>~NX z_*L~*EQ3ka;#Z%(I#Oqf`1whi;UvXv()l(Yttqkd}?CPh;`%&2l8j@WDAcE`My(e8hDEzX}kivo*KoL?q@-;+AKB(%WB4@QO_YeWOEtR9r(S9z8v&rG;jD(beNryVcQZBT~W76?96) z6M!l!_oc2;=EBGWozkustz2VubTw-&OFavyWrb&1m@J#Sgxr~qX(hQa!M;r4Bkjl; z5Gckfqq>Hxj;n#Ik!ua7eg}MZfEnS!Muu2|ji{{WW=xdzI6y+Hh|59GmZLojIWvkt zkDDoG6cga5MAM1TWZa)Xt`?ub^1Z+W0##~h#e-Soo*Y4{u&Y=4;MFhP87W^_4XM1e zuuM4`!)3+a?Fxl$y8saET}O}0*~C%A$YS}EDiyX=%w+dUzvz`xU$I3C8C;Hvv1FR` zp?(YCcYLfB?VT)uzAc1z*1)k1dfv-pGc?k17OfrgQL&6-+bCOD%P}x6{A5uhXxkW*r1a>|7uD;LA%#JA-%0gtziqF!&I6LEx>G(U~)L!1eUFwInAxEsgIr8T~i%6oi5kxcI{pzYt-+W1FpG4gpM$dV(*FW;|vQ9 z?m^c?9rq5`zSA|2!lX7?KMZHqHbQo6mgDZ~HETL%OOmBl6L-7h&fKti&28M68&|Ix z#FuX(L&or4uKipGxDIjM&UNH2WB6|TW5%}apf+zZ9cwToj3uQ=ZlXfY+Jrhe;KnGA zhYduG5=xE;{Dy5}X@KK6v2(IR7Dx2Mh(rWJINquGFK|dZJwM-Kyzc|tJMp}wMBR;Xmr{4*d>|)5(?lwDD=8|TmK)m04Mg)zh>k#T^)`>1tJ)XIbkyrYE+>|ak0!J~k}#eYy~J+y zSmFnl=wR3Dk*|WSIN<$Pu*3gYrKAS7f;uE1M02> z;NBhTt{$A;o$78?y3yN}acDVPWWRr2)PNKxxFobkngOTO#7S9$(hPg08TLyvjCg~E z%`g-+!?52BJq69MceH8YaFa3HL^JG@Y-xu5s=mvbVMGNlYlZ`=u+j|awSrviH%5A$ zpcea0f=bt6^&kxcUhnPdp&YPY@QaBfjf1cmchWd_syk^MM9v74#sRvRJ87J|)txlX zG1WNi+-#?gwz*db03{*L^hx7h@4nFu3x_udswi7J9pR*oa8e?i^d1=9xNvx*L~z-g z1+vW;vH(H1T^u2lZzElO&MTFD9eYAGcWcf?uoY|3I|$9#2&G@D?Uv@M$SLlU$hM9H zI##?ns+6Fmdm|rTQWaZoBXl`+6?{Y`&2QPq=anj=A4Sp==~FGnTl6ZBI`xlkH(W?M z2H<5P>)9D$SEq3CWqU_RUwg5fWOMhqMJwyOxsh6xqfQvXM>b~H6wnk{V?M}8D}P+G6} z?2_Xi?Zt$`bU;8>Ka;rg?{JGse<;o}29lh&?pn?ODNJMq-ceYwjE-sVfcA#9H?)*> z1kU~el=z2cUaB8w0l%oI@+&fmDwalR>FIyzI7D0h?PkzBJBo5|D|%YS6H?YNrUPbB z9+&hci54*(mU4fLX$_*bOf#XVC_frz&kYO^`s^Fy?De=nx5(I8#^5fl#(#mM(A)o|2-n{GYLM#GZ&UJqRl&>XcPSBjtjgR$ozF zS-t&wtQ=S}g{&O*+i-JYF4P%ii!hpEOB_tM4kG-_xD9N=g{`yRjisQous`4C#x*;q za6`_fKG>)aka40Gp>urO>ub*h;y4J8{x;mTw}{7Y24ViK5KHhyPz|Tu;tJUo}|yRRRcnZ6GlkTYq45G-XDBPv!saT6W z8Dnn_b;}8F`9V@Mi%LTU%p#aTVh#*uQH!HkMJ0u-qNL9%Vl~Nvm!w!l<(gIGI^j1P zB&m2stA$szMtDU{!Yf*9;jFW9nw=$FqY}7A6~Z+t!Jvn*s;-PA;Tly4*GL7yxso7u zw-w$_KMa9d73L7O%MXiXV=636*ly}*yX8*!dk!UHKlJ^0HRQe#6J5mp^17DL}gJBNEPilgnREp9^ zBvV?D%L(iIB0U-Cjm2ruIPi@28-v?E@~FyTeQf0011q(r@t zvBHZI|3!&6F4`oOE%eX?tskRzviNa&<_vyz4<6%L2sV(@1-}- z`}fkD7yNta&5P>3p87c9q6OC)d=^}yAEt1wFcbr9e^1{S)&bHs?x}{r> ze3btiVraSC*oFBrI;DkSEgjuUH;Omkh82q9L`E)OP*U=-)8~T9FWU~}a%{`p1+@Fz zmMr(CEtif`X$+nMDEZ<8Uv2Pu>7mcx+AP~r=d($VYh!U?F|jr_(RAI8YMY)oKlRvz zot{2}OwGlM=bpGh+_M)Rn|gHOCWpbUo@h|+8P0e;eU=o4jZO!Ic9j>F%X-5)Eu>ug zyQ8^s-{PsSL(ZG+{V^<`IS>HDHQ|V>5MLuJn@X;XvP>hsZNw1LN0X4POQ{=X2`&>G zW)*I@(hb)r6J?k=YjUl1uHE8V>sb(8IR&Bs$PWk^)tFg6TY_6PTM~-Z{+PUT>x}va zu12mkTx+?SHyHIB@i!S|#*kqy^fz-*eKgaa>&dSo&+&^ z?5yGB*34;c?NWPP%|cyk;ipZSTH$L0(Kh;rJ^?)#;nOXeD6&Nn)-d6viE*u?;nvjQ zFek`u#GfB=#f;1Lz>13;9OaxCnTJ{=g08ltcDp`83Js=HQtR=${M5R0srBSj>m{`c zxNIOYs?;Qt7Goq1R#(5wM}mX3k0f^p&Vu1GotN+vY-Z41vu4C6mzVntnEqdnIk&76fPLJ=KI1^H~AI-ZCg~un(9E0!wQk^(= z=5l6sbIELaVq(S`o0_TCB%IvqHo_>FPwKH|&R$p+gD_%fRvof=7p(K?$9)Lyf@H*U z<_e#lxp4Wsp6K(9(U$w{W|M(ZGVToPGBO=73+U3wjL_|jNv3l4=_6Qj5+&qb&Gm`q zGV!N{0-c?vm4w`L;_aHmgIpLtXQA{**9vQxqe3_wn~mU>%tov*|H@{Qr751vXQ91U z@IyzjtkS5e=BnYU<7(i-D0&}6< z3nV%|Q>v%F8j|Y`6#g{b6-4A+|ED=fvMX&kglm)sn7`*@dJNiO5!s0z+p|ox^v0jP z-gv2gu>~}u8y2CMW_0_~rTK>6w%zdUGV;#S?N8Okm6|jl|5OyeRr0(6^ES7YxnTih zQFc`r0DnM$zlKj+t|<^rE>0C2Cuc=b zG8lKuHeE&XvwG%I4BY(4^+mZ0g^B}uXG{?}?;E<~-u?eYGF4va-ciW~qC&UWad|9@ z9Eyd%q7-h3{av;u(FZ6O#RRJxE(mCE^atdtuFm$x;-+5m3twIQc4n55~ z?R`S+>hCU5jN^z?gU#GpMeVAquZNAi-6{}WHrNNkNU%@=WMx6G1l_4>P%7eD7#UtN z6fVV1cGj|6bj=MeTx4gH>%c|c>Ps#s+T3`1V~xR*)Zv=IR`j}7ziSOd`yqwxz$UKZ zJs8Ll&%(@2u>4e2SJze7*KZL9ajLAGRSC{SmjS!p=@cs8OL+ zX`%8niP}b^Y$Hue7z!vf&&lr10QbVJWFw^35nI*~CHA|Kcc_VmUE!{=fatY@eV+}@ zM$rOf`EX0Zt|z=n){jkN$|9>KlgLJpb)=AA%VU|1Q|{nYgmEfec(_#&IJfgzrJ|U1 zVaZ}(eo;=|&_3J*lA2ySr)8ML9K0jKp-soJ4eRx&I1(?L5ap_?S+}&F$h{Ke2Pct2 z&bk04r+!8#6zigxgl&%PL?Af6ON_o|)d_!5J|9UzqlkGs|sP02e5sSN|h+m1L)-Udxo!>mI~Qb%GVy3V9b*Vy=`33F5G_hPyYY7H4x+ zJ$){Z3%V)P9;q`2dvX02-UvM-3>pVkIxXKax@NQ~+tfa~HoLZ6%(yB?PVJ480t2Nt zxTi%LjRjGyCvC&$5Fjd47O(X;w7D07qIiVk88h5t6Or>+5j)EX5VU?97!xwzgB#<6<%0-(u!oP+k0!L zOFk^vXs)PKrX>+Y!X!{CGeY6$Y((uJQ6F2TR#t^d8R0d)TAASt3NV2U_4o$bWzc~| zpG*N0$lh_MrUGkVf?*@CQq}_NE3YcvV)B$z7H_e5QoBhJ&!}Tdm)k1lun8O`jFHnA zm#x}TeX?My)^Ht;VDVIqX|7+EZSxgHTadUw8iYZ^&%8)FPHKiuVXfDnLgWf+xkbt zk}S|a^F=bFm&8^jFdP$0cd#pN7Yp}^|HVzAo_+H_g&o(g`+tFt*&}MXT?zq)iB`~E z&`j$u-WH;n*4bUa$L#Cq3O0fR{atm}Em!gO?$&1TE)dLQm$$Nd+Lr6_G+(@W+GaPd zMFsVaaGUGsJs!|xJxV>TSF5M>Y4tRvn`WY$w%>I|qWj@s9`HGsMe1phCF*J2Me1qb ziU|hUPAuw*2(_0 zYX$W*3-z=kX!G>R;#nW+6ZJHlRVGfO)#vr+)YC*O4MwBZMbpY@qL~IiF*>h!RInFI zyidLTI3^HEfT_x2H%oZLml+ZHP^zsHO$#Xrh{?HlNXz6x~7@MojH)c1R@WiG5QqzYu!(CF@wpgdSBJh#c|FH#qL^G-H087KrbvWH%>}6>c7t z?e^&Dz-)Ojzj8$Z)$8M~o)-DjD5hmKtgCxkTSi}E9$4?@Rr|F`*(2hJC~J;RWneQo zXE3=~b;mc0?3+WbUC9*Z{bw&t`aelY**8V15D0wBs0G2r=8*M<6WZWO^IY0Imod+c zndioZ10#GIW5&FgHZNw(i(}@+aV$Gy*Ew&_Ik4j#7;p|OH?L^2xquVmGkbiFj1sg%HI=;du63F@Om$$FLe4$E%Oy=^A%&p zwE2pR`HFFS=4I2D;Bb|wZ7W7-&&&K(4867zT%1o(c#*(!nxC%w_j>)~Qz8QrfpimE zP6Z~VeIPv5Q-M^oMsL&!2V+d=(>~)%#nmHDLJMODqg%p#1T+;}2}>6SWR}JlTN*Gf z0fjm0j#)AEq=fpjvC2=yRXR$Hu@g6ZtG@M(+ULJj$bRa>m0zi^jI=RkWQ=jm_t)*E zay~wF$JAK*T&@5&i*PdFQu<6pRgUSYOPqV|m*Hq#JUecVKW>gcVV+H!+@H;uXUELx zv^kwIr@0vq>(_pxUv7^2ep@MzIeOXu&=bY3h ztlSgYJ6YK8>c#OXRah+(UpTIoh{Olf@0%=#-F?w}0~6~kjDnNd-XVZSVtcr~PY6>= z477(8v!h?cK;^AIL-mSi=m1f=1T3se)U|0p}}{rY@oQSyS>NeAk~RsV*r@? z`Z_Uj+(%A;V{}D=Ux?i|Kr#BIMwmYCxBELVuH4@Nj#+zxxG74G%PT!+|!#=Siq2SNB=FNwDtLPMUh&GR$JAvnpgztB6f-sD@(0B z5RG8;w#0Q1R4H|xa@VPF9i`J|*NEb?Rp(muuGOFfR~lUlX7?Ije8p;atqvDE3|5zG zb-PxNYr%Ku6Jx{HfNKfg!L@d|mgzdXUFSB}+2cBct^;z)uxpLD)&bW#=vs$d>!@qp zmJuS?ppV{)_tyZziXXzqmjmbk*GQAT93NcBd&E$SSHr1T#9AfvRx1>Znbor*Ia9F~CVq3st?1MLPR!N`&dcgGp^66p@O%*D zuZK7?j)p=5r$V8=(_9a8rMWU(V_f506I@xYGhCBg=eaI~jEcUCvs0mp*K#-fq%k{d z;J?wBeZ3Ldht*&yO7Bk^#!nePZ7A<&wfB_v-lDyq)81RP_w(BO1?{~}dvDj?FKX|X zwD%6}{j&Dnsl9h;@7>z_742Qo-c{{g)85nCdyn?stG)MW?^m_=0quQAdmqu>N458B z+WU3w{f72FroB&S?~~g5l=gm8d!N?cZ)xwhwf7nAeNKCy*WMSk_hs#UMSEY>-XCc1 z8`}Fr?adhr($AxX*aRTwK5u*#rI%+pYSb_4G?jX!FRP+Z!1CZNM!s&z2mQY?8 zd2XIu;Ct{QrOJz@lou;gUc6Fyi7MrlR4Xr8qrB2u<)ttl%;#nG$}7i)@P5X}I`vf9 zth}lg1m1qn5GH}!jt^lHxc%OtP_5B%pO^&hykATLcZH0# zg9h~pK{GLh6VctXing`vh|h^Qz%fV+=A8L~4JbDR7AG_;vMe~RIgBit5CG)7uZ+7| z#6e_jua6~eBY}p>s<+SAX|h|()boDSLmlwE7be5l$X%Rty@PWjBHD6@?92$VZtKbJ z4(L5cuy_)m%O()62H9sWTRN9b&1K6*$^j9-lgJnu(2?&Z^06C4zK6)Ry$0)`Ns_)# zB+_DIRh!1DH;vV78mrwjR<~)ae$!aPrm@# z)8al1ttW!BA&RpxhO;S-vpJDQY`g?#YcfMSm5w7eo_g)`#UOJ&2jW$y)EBxlDMn4(;8HJ6Z3Yn%gkh;5{t%AQ32sa3T&w zDL9(qB!JAvL#+KWvfvr2<>)XOfmJa7fWgrwx15$yEE z43JEX2mmZV)4$hW6N1d71Z5%;;1Ce=&gSB*)^XzABYqqLBu+x?-G-$_y>pqW?3!{+ zWqRl5pSt{vNIpL$sZM2L_%Q^XtFleP=B$u7(+f{seio7DIPcn@u%jGdd$g}G&k5ziJ*j_A~zm_RqxORoG4f6f#2&*8hQip9Mq0}xL*!nkM|25Y_ zZ!~h%&o$ATR9Imf{dhiBu94mx#LBhOPe>^;QHqg?U%NsTe^Ld+Bp^XRvlzI|R7i|U z6{7{awh};$N)=261wo_o2ehyGk2l)|QI+op+Tc{>akK`{>fn`!ypqgU%^dduu;Q z!`@!^Dcn2iKZARu;j_4RuKJvTRa@1c6i1c{@N8xjY$M! zd07IVQQ_HbE#}iILVc!=exQvTywB=S8b-F0G(ETq+qWuC!$_MBX~f{I>W6T?A3m=_ zS{|Ug@?G(TAX=^~zE}_~*Bf7=X#p;~mRaThl)kJ2=neEG)K3X}xm1Z5js8#RD=L5( zjs8zbjOIGo_R)@PhuAn4L7alIi}>SXDM4{#LX$~LEMN#0!B@qaar0C3_t)fZ{ZssG zzRr&_^-H{by-sp$HI}bcx?P#o^{{}}hf-`pF*>aRyZt~Tbq9gJr~`ZaKr_`x;BV-_ zUO&)Ett0SbI(^2l;YH2Fc22N}iVa>& z>+;gc#sNe6V||;LOn85yZ%Zaiu&t{iBqx&|#&sob>13(*=lV7^nG(yo5?VG{=6zS; zENNwC8+*E>|CiF92q`J+AhLA-m4yDa6qZnBA4EdMI4%ZpS?>sq1}Xfbgo^Q7QId`Y zpB(zwP~mg#M%{KM~TVDESGEXk|e(Ov$!mM^;B$PuYs1 zmD}{hTFU-&678*iv~{F*O(oi*e)^bbiht$#)Qw ztxHG@(zY7!!rf+yyWJAE%@+5pBkm*NcbS-eRa=c`uouhT&ldZ0)d#T{i~Z-z*bv@% z`MLS*F3eTWXLl?6;5$I&n3E6}Te4EU1%io4wsx6Ky!QAgZ!;rEyrj`fT7bYaonbKRotR7InhF4kyosc6+Ut@crAwfC!{ zO@-c1=4Xu$NI^_-AF;$eXN$YV`5^A*@CQxr0~C$+nUnTWtzplp_Q9a7OqKI$0SN0` znf+ai+OjEJxP~De``T3iIzBAVi}LL7%nHP_%X^GS14Y?_OpE?vQRqk=Z^e9V3YjW;0>ywJFd}e{HgKF&iQk}J6O6qdAFNC z{jS#gU30D_#C{r6yEAW5!Z=&|+wf_VUQx+@Q5%+35`gH={{AVRo+)k)nl@6{u;Ln ztf(;z^Ga9CKKbkNS~lwm?;EBtR(D*>a7v=wvP1Z$3fifHc1uta>%78b-E}R)L28Et zm3rS&LAzDZP6lVtCu%pP7vYyKhg4SK2Vo7#-P*k2bUXxlhy+xBqscV@e zkw~J<`)^bS4Az>bIlo}uR~nia>`qFFcBOEaN4q}jM<~sd6!x$}ME$lZOO5wOew?Hv zl9EKEEVbSrtM~QZpWy3VVJef%r*f5n@@FPzzFJImI3Jha=6BR@bJhrbhv9hE_%80F zrnrw-;-0g`eVyTmP2jrl_i*c7ECYX+O0SdOXtVrAIa2T&vMeYU9? zuuG?W7SBpiUowr-yfvbH!Qi55_GpgXxP+;yO?K9;P*9QB>*;%OY*nAZ<($4WasFZ? z<8wHF1l(0k{6+vTp_q9hgT_N-20n+`o@5MKha7iMcvPU)2sg%2mq%o7QzIHdtJ z>1@EHTd93CTf;$|dSY5*zOL9g@EDKYBucpK7D5D z^rflO;}Z-prCxJ-a^l=Y>*CZ5OtK!aN7@eGt6hW&+k1smCK4qbU19`8SppfzNe}jm zxMBZ5S0t#I-P7IPiGx|4o}Qlm9IwX4uxVe#3YEDvp+aRZ6`NtOZ>llz1l*Jz!EzYv zoA`?C8*>2e=;OdWdV3>lD{%u7|lYTw`1lTv@I& zTxZW2C(h$vF!l^W!QWvdA>CI%bB0R47Gg7$cQ9C(Jb5 zVr-oNVab+J76&|jCtJfw3$K>V5?&qqB)odr^db@|gd5C-Uc1_YQYuuK(S~e8cGcxn zB)EO*vTTZn=dz92)ezxiU%Xcy)~JVsw~uz5UCVxWzZfP>W=gW_05D0tLs2(-N=KeI zdQ%60UtxQiZI<@&4s3jkE$ksSP?(wwarP<0#%^0VPJ0DTMW+w5Xq#n?J9D%ncI%5klEAi$YsilPW7F7 z(WPE=dZ$!A=|#-SdUC=zSetp?I8-<0WmJ`DX}+uB6p*cxi<3Y%b*%Ho)a$T1S2198 zaJ@I4spG5ylL0azl*+48#vTk8U&+*QOsf-~2+3@QN=mb2)x%bK*a}ZX`i(A?OY*Ci zE0^D-dhH6q0wk7PerH$6ueTt-M^qMDB#SNHqw1km9$LL~s^U{({5bhnQu8DAF9Rhe zH>T8JdYQ_#DpSD-5{m1zdX8q?U~uVib~V%BmtGpFMuwY=CRi+mgY8oAR5;i!2Z1XN zw#PCJnd(g93g=EW_+GBE5oSQ9N(PGG8INaD>V*tOUDYRYA)8c4tM>|3-&beK${l(q zwK3g?j$9Ihz#Q^2rB$bX_=5LZW-vRL+2GT(drvaR!r6Y#B}xTd5DecS;ct|1LQ&Ay z7>I9{P#7)Q1fhy-D6=DMly+Drl14eG4&akd#69n224iz8>7J;c^$n;-C-6Slt+ zqHMdz7h;q>t$(Nqy|!G7eipr(e944A3$x)2;>&xMF9~kx?)pEG`^+7K^x+_K&$+2f zQdeh&n;B*0!I^pV?1h;;)M!|lqnpX2>@C&Hishh%W>STgi6q@(3r*KMJyc#=ex#f! zFV-cI)RwB<_@|7*rYY({bppE+LsW8RC_aVN%Fb6_HI1b&T$sAll$mI{aQWQ1?S&@@ zeL`wj-u-RCdCJFC^+oE63KB$7>i42r6_GZUENg?CrFkn9#Oq}zU3I;Df-lHGx5(v%X+ME0N1QAEG21eB5cR9Z&x^z ztdxWlcjF34uhbS=@#~hdQvF|`w6^{_JyZO%D!*8y;wNQTw>)TR>s_w}iqqC3GIxB` zCJcq*kqd!kX=^W^3 zFDd$cBY`=fBgjt?fy?$D6(RS-w7Uj+x>O3PumI|}M-y8Hd!@A!T*>2UQE{{)1FX(s=~Z%gdnR&1|$L+dGTg-_1!lFT_P z{*Y$w7oaaQAW)>Hf+EFz67Xjx-$u*|)(h4bq%p7pF#m?Q&T*m?&@X1u-ag9!_G?fa zC4mWR)1stU;H1GqC&@10AWpOJlY%6mrSXBhU>UDk#%q=_YZ-Hv@rGsOEn~qlik5N3 z^@zM~88<9r*)mow$nyiv=?~IQD-P=FNW35@QB)qzSic@5JaJ$0gYVQDVQk4jy zT~H+y!YU;qAh4<(AXcanbwF{b9kF6e?Wm_OIMz)d7VA2&YH!jz8&<6V8DP8Ms&!}w zn5^puO8Xs!MZ;+KGYu#x4lw^^5^fY5S3ZahqG}K%)`O@8ipKq7)4I;I{3($6n>U(3 zdCHrofMNU5%ES8)n*S4S1BZK%mI0VDy%%ZnxEO`oJxugFG$zoUdaiV0OKZ96)(C41 z;Nhnlk_LDOK%&Yy_5UUHpGs`f06?_%HN7CZ3RA9W$V0qhhsH#^Q$JmLvD`{hUDIj1 z6>rrw4I3|У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 literal 74436 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

Gr;n4O?CcibVg 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�M41HFibi*PmUK3MkcCPKH)XRrlu`Co9Ex>jiEF7L5xQw7r;c(ua z_M$oC;f#0M9pI7_@d1@vp`Q)p#NPLfcr>cLJ-Y_H#yEw6;+|epT8y>7a=zvqU$a_R zaAqARu`CDzl8gB?Hj#rNUkm>=!W2}Pofhs>v|WJ8a>xkRe)Cx%1S=mq&C zyMxHoD}XT(PM0*(tB`|!6P85Z2u3`qE}sK3Td0I!7fnyupkA37aFJP z@kmx(ZxR8&+G3G9&aDdl2YAGe2!?!sS6h_*+>ieXtgygcC>5w71{r-u%92aAtCElJ zQIpgKRT{DHy9KH&gbeD@E6{r955w+kSb5i+g7KV%q+7}dRf=Tb z`r^~LM9QSs0NUw%b3?MQKme?*N>aJai4$>dP!P=5E<$q{a1)A>(IVQ^&+pJy7C>An z_xI>?cKY_(-aUB+Z?GkV>{y$;t79k?00o*z7#@*X51}PUB!n#3d|6pyU9;A&6oaya+XN=4QpC2IP!D^Q1vYC9WatcEGNSn1=e_ zriM9eh^Oia&4t0B;BNWi&{ZJ*8*|7(6K&qPps}2d* zjMTZ4om&RO0nXoKQv+%CkhdTSHbui(E|Pz+>KJE`?MR7Powr0g>`G%XQ^dm#p!+R| zSUVKM6ng6j(jMwaf~sN-DZdg&GLM>w;D1q2PE%acW*f%!Mo1jN=e4HAh4~>zw&|N&a$FZN^Pql;qGs z<2Nn65hE3O!ait?Z+7QAT4{2XcbrD}fT#xI-HAIztG1wMW2<#NWtB9MeLpI%jBwgG znEAj9OBG!%@`Ve-DE9Iczl0VmB`~@gjIK~44(YWgU3@kw!n2Yg9uc!cUu@^YYUImx zxjcmzPddU!?UR?J`osoejNzX{b|HV3kpRF;l|0$p)gYeAiq}*47zha2A}2t?A)Vna zk?ca;$^_wn{hsL}V-$%-KjJ{S)O80kQl#qNt5NMqzN5|(eGym_dL<(JC{9#`IaPS%6f9(Zn-3<>Bj|1f;}B2{~$RKih(Z^tB89f&!Sj6!7*56r#HiY z+AXSQM5R>(Gz!}~`A!Hm&qplp4jjVF&p}Xa1uM(rPjW&@L*FFRMubbM{iZH=s0QsK z_XtF1SQqZ_eq5m*akcL7Cj8Y1Kgge*DM#qbpF<%t5t^LwTjM0JTd`7L;5UXD_QS7r=@u4ZZ+|x| zhS{=ARMyqCZoQRgrWEy+xPk|Gd zypgD6nmd|(x5>;{D1MAQ9f<3XTpG^3)0u%YI&mBMNJh3#Q4Jsl^;rDE9*7bmwx(c} zBTVx!$_A?3^fiBsS7A6?x=A|5PY;1YaeWM@IH(C&Ow7{WL8P&_RNM&o?uR*I*LB6=gL7dbBfR$%7 zUTfB|ZzF21J1ob{Jq46L#k`=0OA{Q$=k0Uqw~kL|hJl$y)e>hIBLgCt;qaBnO*o8( zGy?n?H39OQil|*Rw?Ws$9)ar1n)BurtYB)o{GooqNhR8R$KT38$fEcha+IvqDC0!{ zcIb7oX~h!eBxR#N{gqHv>Xl{Rfjx>XA`f7gTU_KxH@>MYatO2egilcN!5ZCFS#j=5OS~S@%3lyS8emC9-ZoX4#1iruT~#c<4~1iQH(B%N6%5 zbkb0>DahGe7W>m&AQoSBu$ewVpy608bSMRY0>}bPBV^#jQ+?26-q(X})Idqsh~7<9=z!i}01LBqSg-x~@S(J?dM=Q%xIl%m+Ljbx_o1XehL5Ucv(4a1>-} z2p3`DlMve|N=pnxMSh^l z?J4+XG!)-*SqE-|?uy6=h-)iz{KYPKSh_sObFzKV8K8mVazd~iXWej}wH-GUfG8Y@% z<*gsTrK3Xn)6IBm3c6MmoTyu>rzsPf4fVn@C4*{oM12^rJY^ng6>7p{dfObSi8Vca zQRv?gXIxfDSjJ{py(KRt4NkUWHxe0 zCP4~&___k3^=TH~x@H8PFu5D0QQJqu;uV|P6jusbqw7+vu>K*hpLdL!TWk6fwtf&B zZkyE#`!O8aN&&CPZbCHA+*wZ*HVucw2IT7?75lv+FU%S9VuB0QF1a z>GXaA;G`qrp#hX6mxi1`*?&?KBN`fh&T&eO?;R75v!vsmnLM9ckuB!u-li1Ba+Hx+ zW2pQUa><>78;cNvQ*b=PU)R#CP?srx+xJt$qG_HctW9eJY+9wl)@+A1T!{6Y(KVTL zX6Vllo{ja#4&9i_(GR=1kQHLJkFmffcAcd8sR^O8X;U{4qw5)=KGjtKq{l*WqVJ<< zxuBWYnb}2p5HSdrae!A4{TvXWkHAGJMIP*X5ev2fYzhaeS=|z_ct+0skv5=2yk{du4l zQGxez)NY|92ieg{84V8uPOK(2qb`Z)ddOi#DL2};NKR_t5wVHvy3?%MA5>2N${_`n z9t+vCRaJ;_KXj;n*4C9-&~FzR@QQ{TyN0yaM^#gxS=jqwP|^ZecbRrzlRaJY)^ntJ z8;q{BYDo!V*|6mi0aW2S{8-Ao>$KdEd-}5hobiI4sri$@E-Zi$JD2SfbI#bO5ajykIDzFIB7=xdQW4CuviuVTC_BxZ+jZ;yIFNNZ~^o{ zJR^*dNVzy9At=%%;w2I`k~zt=gr&&2pk`D(tP$5>RBE*^T3pq}Fd?ctdA$_?m1;B- zE(Pg)oiRUVUdWp0CzbRuxcV;G_ynRVmcW);pgdWd)=+74hc2Hu!$cZ}b|b^3lGAg9 zD4Kv7;1=YAwKQBHid*^^JVgS}@039VUvkK(f;;&(phpjncBn`NKZ_ns(CDNQZI%{l zW>u4K#Jf_X>C^}^3%EtqLIa7Z&rD8aYIHfHNNt0Vpx9{p0$)C<^ zaFkh_(9IYAvWG}Tv&!F%_BQL7aI=#Flfb~>Ys@h0!0$DhW(=r@$GEfuI5Np^Aq=A) zxial*$1IUS7_%QW9|3raqsI2Nu(gjo@%2j%63{576tO}ZXM|d(66wAqqIqZ>DWKj; zimOU#Fk#e}5P~p$QWWZ_jM_{g5-=zSDBo1%X1C2D!BX z>^Kv$XyRMmoa)=G`TffNS>ar|VpQCxrOc)fy*mq~EsHobJ8SOYhxLkNk zZgf=m>TA%`K(h7E86{W2ZXr2wR<%ejdMLawQM?5jnsSq&&n<}McTu=aV!VHq>kA~8 zV2I!~)R?}o@vp8;(aSJRJ$L5dg|7s36%hMPE%hXK&rpmq^*osrR%pNEB*V4jT)M8Nzfd;U^ zI!+kdjAWZAS!o+1Rth4`51;|z=_1WfpaJFRA~6Qj0Gm6C31VO@IY%t6uc$NY(+bdAO|&E$M_j`ny67BObkV;fQgF+p(%*df7*k5 z=B6x}3v=0FPI})Vf-yiv>BDpKofm68L)Vt11=A6?d#kA}@iawbq(?x=afed^naYTG z!(nEzk*b~tF_*rrS*eWc7QuuWwlHxnrG^_%Do#gPb_aB!lGwXyrSl96J4*s}^>|hA z9Pr09|C_9T{u@3KOM{jahvNKbG8Nj{a@!^6Q1VrN2czVfVxOqh8B%G4wM@u!2V85N z@dWHRmVN*>H4MY(Q?TkORQ4Ve0&J`$xu9_brVGS$0k%$5I|8#Bg+ckj&5EJ#So@!^ zZH!gfg3qvT9Vx{Spri}R5D|f)`3z@i-km?@8#rZM?uOSE9XV!wgd^@(X{mrs2$dsb zl9j55hpZWv%mKwXw6<(gx&``2h6lyfoZ83r;=&?+b+v1sG7UA8GnJEzDUV`ufmb{3 zi1UKk+J#v97GNa;dXG}`%pG||HwIog z@G)J`ReT>Hvkm9jBfsaQFI~3}jdn`oEY3zI%C28#O-Vy)C7Z!bdgQ1Qx>Ro>_#m-$ zbIfy>d>)@2n`5@;Zh{I$Ud6WAR^sqEW>N2~P&KyJFR4C=BX%VX8**BV02{ZK;NxQY zDyZ~`AD;gVG8)lOfvtdgOux1hPk7G%5#_WJu zw!eQ|aUK8*tLVX3iN=lHQORb|A{>a0t9mEdP&sk}4 zpLzu0ERA`VE|s%Q^>kYqY+JcsCrAg{!f-z=s1>Mf8NS9}dvQUZJRG$cmhOV9nF6RD z-jzK>wha}~qj``moQrU>$JK^aRvCYT!?~VXb_{pn;`g9IFkCsvRij;{>+l2W~=zdD%3Ez*2?))PO#4a?A>;p^9-;WBjTI?f=x~394doJjO zSWKXbI=>EcndcRk7!vaPx-!2Pyl~H@%KFJ|zZZE`0%QMH2^P!q``TD3#+&p8T7!M-!HR|l*AU~<^gjarjm!lJu;nh||QtZ_kvAg+;UX+Q`y0+*b3 z34nDJ0Chc(v=hi7Uy-@S#Ws)>YK6lF@<0$Y#W=CWrMAc*AtcQSkyg+UiKh*nbZC8; zL;hA(G9Krm!j&jEXw?mNWCqz=7?CBd4xWvV7{B$5b8!#q9rAY_9>M^e11(0LJ$84f z&6mF%>VU4`!kdp{&UVitQ-+(0$SFxiq$As?6LYo|HjIjv)3$1zr^Gu{fl80?FXP*= zC>t%Ug=)BTl}JZWJhvCh#C+bI58@VCZvk@5GH749few(kuFc`5X&HJJZ1Zr=&> ztt^3x8|%_W#b4vZ!zer9GoMw;y{q*_JQX?>J`Wj%f1`nN-xIt_!P$(G5%(S;a&Rr| zx1jt&I)*Hmwjq1c1qkidItp`Pw!syg+L6=C(wLp=MX~mi72+nNd+kOb*Z>Qfc~cMz z8R~kBV^pDl!v6XwA4s5AX=nK~DGEF#t>Y{tVLGz8#ONNi-b&Q*=GT72rqO#mBLQHc zSe$|X;!})Mp3u)t@o(dDkR9~AlMW%mAh;MVV;t$JW(WkCGJN1g5D*0o(JSxuz6B)b z2G)KWteYW7;5`Hkn0Zblkep#1mR@Z}Rp%6*i-rf6iTqFSj)1KkUgY<0mT0rFIXjdP z-Dt!4M+-cW0~%-Ts3Dm=;OFUmWILH!GZj%MuGVR^Xof02Zf_25MTkQ1fY7~I11P(_ zU;zvrL^BQM!~MzrT%ryF8|7^#FcaKka!TSRIkx*iw`TNMJX@3XALv+<0}T7}9kkdf z3^^PdbaF; znWtKz7FncH^8sm$T?>!ZxkzM-=UW_D6kx(){#h}eD5wYygbajC;0!1hI4o-nqQ(R4kX|#=4-=3j}iKlFpSK=XNe%-MWmN*)=*hCEU~5Nh_mcA>F76 z1neY{CI@v{aDBIA{i2SQZ3|a-bS_^7Uk?ocfrZXQLKx7WJ*J3mbHvV~Di|NOTwhx| z?iUR!=1;DZKpAqY&XhL8jCl%}fMn&AgMk9hF9wRt2MPuarVo%|P@yftltF)>tMG>& zALFJD=8x6_8e-^37%!O)PEX*L4ykN3h0u_q6`1^+6w>C^uIDYaTZ{=Rv2Qh$df=Fb z*n}j;d_IrBHd3Yts=wAjJwn1W(&p|Hh|nnU1UJ6KEkv|)B<0Z!COy=A%tPbN4d|(0 zW)!>1?TMFRJOvuFj(JDwIFRcas~w34#(b>i)L^VqPO5{joyee5!y=o{368C19fTpC zX@f`gFsz?dGH=F$WW^NVfCr3B3*Z;|=MQF@oS`aiQg#qNdlf>%L5DgNE3gCXm;hX^ z+`Rk(IJ*|iP+t#n@IJeD0Lb37s39Q&)t#W3^ z@(xqYDp=nbARyY!&V@@_SFT^RqIF?gQOeiaJX#DpPqVspfs3CkZ(F;pV|iO1zgXD1 za%D&B;-S% zOR%mdqY7gHWvnNe?vftjc01OS9uHl^x}N(7ILAC$=UTsslBaZwuBd4Hvnp5-lyND2D{lbxU6lc!!In9Opgh;YG|y*Z)07x={Ug(#(iTW zeqqXFuFALy!e_zgm@y{%u`@vjCk~?kJm}jp1N2Lh$;If?%~ZK%04t_%_c$yrSMvR1 zm=U9I$$(o);wDg5Zuqps`0kDNEb9yRns?~j12AiTgM{dm)C!%tU~T43{%lfYO>LbE zf^U>;BQHJD)z>yE6k$}HN`;oF4KxTW20E{8Vi(h~p^@#zv97wt5bKiriE-CK2zP7i zSAJ6N7R`mTN85z<44j;b8RK_%C;uL7;jJL%2Gom<%NPMKpW}@1xrpjz<1y=O{XL-X zH;`NQ?S?1z%nN(A_kvAkT-q;g-LR7y8fYON=Ru3t4y$h*K9qB%*Pg~>y{uxB^HgBz+GY_mc=YUhahC;))b!`m13ZGdK?$>DWV zl=<=WAF~eH`nPQdY_uymjR7Q-Vc4+od609x5}pr|7U9t~7av1-!v#C~2Z$P_sgKt5 z(S@D&#&+8#?oOD>%U1>!T|`n#`z~lruH7EqrqEnvqo0mNcEcEOooy$7$`K}7mq0c$ zNqv*MwOG4(!@#BtBO$#qGq$-myd_az7R}rOwT!g@F7H`I9yJYlql;qARCYYG8E#`X zunUB+(qp#g>b{lSSA(5O)DBlXz;riq7E6g)#&ewX!iBt#>@-BE6|zPNX}&%1SVe?OW7X!Buc13?9<*~>c~UK_ldH#B=`6)^^c41{vS$FvX_j!_fN zBo}m}-@1J9)-9>f_Jzh*?@e_#G)>*ndtqde zqF|+Ub-`r?R}{I5T|mUnvtP-IR}`&K91_HBG9-Z>Rn3NQ(34{m$E!hU2@+Z*Dq6|_ zM3A`;=g`*xKY>vi--iM3jDdZ+VL)~YhFK^LoRsVYOu6zU_(Rkd?+fCW|iS*l}|s;*JhvsD!qYUilz zT$PwP_X_uYn& zK#EIP<^ap=L*$)oB14fSl>s{2a}Qz&GW!7>0hP@jLI7O047hCeD8gg7_jMcro6P{f z&7MT~DZ)yl{t{ywm09t<%(^KzSJ~pKrpQ}SpS?he`zo`|@8i)y zihcyuHE*!_eYNpNn6;YUu8)u2u_!Qv%56fJjl6Sb$A1Y%-aMQt^XL?K)QD~6r;F%x z5kFl_r;F({b15&mWXW8y>{`i%zolDQuz6#=8^7noyDf0(X_*fTE&MS{^Qw5aH);1) zit}=WN(4WGh7drgL8wD$L}*5sgD@9iK0*t^0)&MKZ3yiMOAtB`&Olg)a2`SzLI@#( zumK^40P{oZ1yYrtu~`$mVAy8DUJoQcwv~!uvPX7%P>asBz+5NS0-(NJ3%toru)tCe z+D8+yxrCh_Wc&czR+ut{6p5`<$(GONC0jmq8rkyMOURbbF`ZeQu*riZA8hhq$p@P} zSn`!FB)lA0=E0J0Cb#4(hKsrXf7JASP)xY|&# zhW(ReimF*G)fQM^IxV$y1{+MLrM}fNkrg(yS|+ig##YN@=w(@?D%v?unHq$kz{_{f zBrd-YD3ZN7;N;-g*ICRB2W?Prc+N^UkFc#I1?VLu02A*Q>cymE93~*ciwMYYJE27O z6H4TO13x>Q_}Q6(pIt8eTuB?Gu5esj| zw9iApYoQ$9(R+9BGN7utLl6_hmd84yIiA-b0Epy7a;L{vL^DEXZHQ#(*Rj~jR@NWQ zMA2~hSr%Kxiv}295pz9@trjtdM8xMkn`-PH=Q!qQd?wO*FEeG`kF&2LB4!SI}j z5qmR>trfA3!SGx&_7)a9hsTE3nNk14V&{se^FoOiB zxb-ivrOnoObJX578IgAVHr6>Auw1#>laC%nrO~K&vRGHFJDTTNNtMovRM~R;lal#35#52+vk%D>o+4pm3 zOAb0k;unnKFM@Xv%HojfQ3zWU;y_Ory@fFhv)3#Lp!TtF6buIr;tmxwdiE|bnvSq9 z;SB_v?#&~4Q6MA<0L=J?gQ%4f%6i#@$;bhX`zeQphG2FY>lyA3M}xAG4fxj~{hM4w zMBL0r$s~~%iC%j*H%8oxmmgt+V37DMhd3JTv&aY|o$#xl$GZsG_fKnhs*~D&_b#=>~qj5Nxg=BPAG)@5JtKXZk7-0FEXFoh`{7o-ZhD$xbtWv z;{K<9%w`g<`S%#Ak^e;i8~==zqP0|;%ffV{*!OXa*jsslzk&iE!SY4Z!Pgi~1>H0i z+|6h%xF0C7N3gz;I?*7bIRQ&Jefth?)QJziYr1KmFv8lWTjSLLTZU;Y)itAQlYWo^ zX*9kGNTx5N-hf|ynR(XGfU!j!gwh_32P>jZV6exU+BaL`6Dj~W>?D}>IT+h?`WlPP z#ek;M->}&1@NAqa`fpk6g75_ZK(*_?W1SbW{q$mhw`Szu2bA6*%xgOv3B>qy>MuJ1 z;DDRAH}zOqmHiW!XSh2navuj z`dhrl&QK97HU7p62V8f00tfMhP+8yM6^=TP%%Q)FI>#!*m7ya2@2qpHg-8B_*PNgJ zlh>S|zQ=1mgp~hcoxN;7y_K3I|7*Oq|EAhvxI?E|Ag5tmQVro@LF(K_cbwKTfLgo7 zkiCOfwU^of-bV2I1h4Otyrxg_KK>@7i9bve|I>_S{$~IocLXjxXzu?u^vVbgHygiV z)QI6h1LFvL7HYLe;6Wl6zuWTg^Bl{^@AJ@Or4P6ezb~*N{EA`sJvIU7cLUbo2-^?$ zCP&!!*(Ch_fKA5lAe(~UAF`?VeUW+b`y)0DzdvRr_!YzVB{m)B-9G%>&t~BFC#)3y z8A{RmQ_G?`WziBWP`H?kFcF~;!B-ZYUKY)o7R{X*ordcoZ*&F@UWCkPQE011^S#mH zvgj0?6^!WD!ai3h$Bo2#01XdEik48Yy}_~s-F+Q!gnvJttq}a}#(F_<>&x}rr z%+&9KEw&5aeFW>&&G#a;{$UvXd_ds6?Yr1u)d4mbDWavED$w zGbUc?*oO!rbx?}uq-Y^N#22I-s3JtBM`lEPFyC&!m<{fTP7ei<)%T_LdPb8>Dcy$I zc5F8-o28K~T>VgrT|&!cZX_3m+_9cWX*kN00ipgFew5t=Q z--FP@$h&tiQt~J+2!tM^>)+<+(*MK99Y~TqB>t~7h^EfcKNLgrBR(`e3N{8;x9`%Kl?8& z3pdJQeCMGaH_0@>9aISYW*H@z0N8l+iW>3gpO>p%0IB$S4kI5aiA+F)tDa)y;L&fD zt40_hlk#{U!J(`AZS-U&4jyb#&`Oa^{SLs8(`x7<;Q1c7m6!^od61E)fae_)?#uK@ ze#8ZW2uSliD7IJ(i}k%ShFUQehu!x?iUBu|vr7?)B2K{?a<5$V1C;GvQMR1O6qGHW zm(8x^RngZU!{x+aPVxWvF3^t0GnRqRT^<)Xg@&t6}7F1{AG{*a8dw^V|RF3-ayZcqdW!90Sq=bzGk$~97e&il;K zqx-3OKubFEfAi5%Bzj!N(wwj`yfBolKSePdjgwSrF2ua{48^#ytZ*Hj3(-^Gp&0Hm zgztKeFzkV$l9Q)D3sihU!Q>zbgsXocR?Fw**kwqcfJwl*Nax)w3eVPLYM37;2$OP zAWqJWT@hb#$WuZD!1epg}1v}Twif-C2Rq%~X zH|?hMsLxW-U5N5^7obW*-EPuHc6WL7o~0g3cUEOM3$C5?*wP8CyQnf;)HQKf-z30D zIBo-ZZNE_OJlnz%S>Cx2PTf~5by>PI0Ly|J7gO8i3!0=GH5=0ZB!`<0=zpflPo&Bd z6g`^iRWu}4c+^rO2z<g)Oh1j@x~fGuFxB?OAG}Li0#2u@#=#BMuDS{a8IZ% zRHt99#CnFpS3%)?4{4@Provus7M3;vuc64^gVPS_Hz*!2K0B1;CVFi=h!@?gc*9L0 z4TZmjzvoI66$z#1S6-!9;_?5g@pxQ`e{>Ybt8kR#ap~w$Iew*dl*QT6D{=qII7V@ob?uUl)om7z zn=qaLScbUQwyI+plsjZX?q0mIb)DSM*kE0-taafTa${|^ys~YP+}KoOJF|5qT$;#D zwe_}jZOfK*u9cgbnyj76AZ&(g9||PPI?luyPOXbqwzVzCDNrj~&sx)}1Yp0ZtZpOS z5yBu}uxt$y0z+I`-g@>roHbOd?Q0e;S=E80wZR(OiZv@&EJKpohI%_0K$5yT06?l6 zY`9tp*OqV;9H2XkxA(wnGOQOHNZh($%Z?sciB<>Y?HeOxA6lzGB!{#5>LA2BLgoik zBU~9+>${bj+Ufwn6~SNM)<>S?m0Ez2TX_#;CdA&nTSm21P9mKH258grPb!_`SM@)fGDQTnr?tm!h+`e8<*E&-T33dNlKw=B7$mdECjRX*NjH z!2MTxdv>i$RvjujZc?RYTuTQi zcLYQ%^r!`9#Wa<1Ap)DpwW%vr=2w|U$Q7)H6sn~Ll_UuBRk;nagUM6aR47XJ`cY$`ENP@t&Go;CFtt;<1MWV6gr!%#TVjS@=D$SvAyRlf(6yon)tjkz_^j7 z*2PyX2L~EVZv0II3)qHWM{pvz5Hb-w2ssFO2n7g52*n7K5T+my%en-?hd?arGK30* zDuh`G)d)d^T7-Ip=GkCbvx$?y|FvXHAY~+j84D&X0G4qLg%-(*qXJg44M*r9DJqUO zz+2dHgqoYpfumhUd*BF_H+u$-P|bC?aD@7s(~YA`W*M0{0^-7zg=417+#VdWWPq{b z=#g0#JWDd5%eSHw*?^>zSq?l)DlE5vnAdp#rL(bofYJd-8lZG`_`oFQH6X)&k*Pg=T#v9t3^-d0yhKiiri7+qwI!|QxEBlFBA;c*s0)gAUwGQE z-sWRNMitDccAqpvB{#1Z`{W^`b<8L-^s-x_!n%)0DJm@$w3P~q)=xgX2`c-uOGWPpt zC*LPTkG07W)-G&h1=7d5_Cg{m95Rd+KTZCfQ08S++%u`9%c-q9skkeMgL4)!a8?qh zZWUE#HF4|K5S#97;^3?$4$e8mz*$H9n{%lfLq-J$q8USa*r?t>6l~RqQ9EAoC`$Lh zK-4j;_aq*G*SuKbfy`ljW8wk$o7*HFP$L;&O=aj8+%t0T;6T)c4Php@%omDF_^tzs z8Q3V|(oGJRzzf?dE}hs6^j?@I_5?NEC_b)B6Kur*gJy04Z zQ34QjP$H8AQ8JNJBJW`?Ly}QVV$vmm9zs8ekzR=Z2YL*}1WuM}vP=4M3V+!(n(~Bu5Ivz#JKmmQrf!8Uii>+$&`5ASUX9 zp5&NCgkD`+TN8AP*w%p(r73^TbvV}^)1 zd-H~#zOle%fYh$883U>96dD}V@Jcp(f~cLESPvx5zLw@@ZA!aK+2Kis%A{X zK_jiYCIu!-X{@iWcO(F=6}-L&N`$g&YOJs3*jh?cQ$w|(bOMF7>c$$O{etsA zQ_#@R#6?Y@I-?i*T|0ZYMh9YQgN-f`BQz}#RaYCZ_LKex&g<*ylc2f~0ibT6ADO<1+ZGpHNZ;&g>c3)VHCH{9UQrpv?nvT#&qiz7_Pi zLHsA^ev{-UYX3wa;w!|)YAGQ3Xs~BM+3HQX*Un!`s3H$TqOKr{91f@81oC=&dJp zbYC)dem!=AJr3pU;ZBFt!s$g)!SsT&3RV}aE9fc+74#HrE7)ETXBH^Iz}^M4vXy{c zpo;^$7+60Lyo!s{&88J1sAs^tkeYiQ$94g*%OsBK;#Cz6`erRvq{?8HmrlFS zlPi^)EMP^uT#@j3mP&BrrBaJjxyW5c4>H@P&6dgv5Fu3vv%prXMiyDs@k=Zcn7QT9 zP9VhDIg7hel6D3V;$&@_8tTNP4(^OMgC z3K1qCOhlNBFco1Mf)8OPLODVuf*(Oc2p|LzY7y!Y8WEZi<{->NXhB$jun3_Y0g%xJ zX8<4vR+`1rK>|obFDL}Oz`>(aj5bl?R0L^$S6!n;K2xzO;&FQqN^wb^2G>(mJZ0leBT} zqP+le-AEa3q6z?;napBIR6_a#KK2NH2?#h;AF3aMANKYJHheFgKEm1?jnhY2dlOFS zZnHdaFf<#k*<*9!bAjpmIIx$26Z{Ppn|~nOG6JQ9X8_(T;g{qZ2cVY)cb^s2m0Q{5 z5&b)?v(?fy5eU|u6D^Bb?_F3^=KEPGuQ{4E!5}9b-XD{En={BAJl)SA z`Uig;BbRf`m%)$huPI3uu|1cHDqn&s%_d=bTh*sRMV;+HCj1@ntZ&0_&J<#%XX^h8 zlhsTl`n{QGvE+d+g8l~pf)jWzis2c}1Ng#}2WO@8VjO_yb3`No4$J!66q8Fe;{5?T zRu{zK_aQQGG*U(6KX_z#l2 zS5r(ew5}ke7HzSRc2sS&nQEZn*Ti>*w4KJXDYxsLuoRBix}Ew8_#2C;fG|G`ta5#&Xmx#+82)H|nh6s79s|~+raDw1 ztbR9@BMIE9qRWtMoW0K|ChW1>pTqOJ)PCXG!Z&t(Hfg-k=WQZwl7*rZkRDN})^6O= zGpYfv_ICn|X>+ge#g#t_Jq+)U3&UHsM1T*N@Umk$rOin&P*an<4G7lMm@ae#fk{Ln z?138UQ>pvfKx6eWn-$RGfy};MV=J|?2Zd6%^$pPOB4=!s$L>*%rNN1(JifsLn8i)q zpOmFKhV&lo7NWjsx8gF=@H!ojpyMVICn7eZP~8SWn7n&Q*|!**pA&Dc3{(}PVNYqh z3{o7{2*Pul%TRt7`=%{`K->Zyce2EF8+XM1$rj-rY-~UYg*zw1)ePCQj1B;RK!3l4 zq>V%B#v{dIK_R$DXS8qI?iHIa?%C3xyba^XVNj>vvW3RCLO6?J$9C+7^W=O3(|#dk z3!`rCZ>1g07!unjcGhIw2zEk$&jzD8c?HdF&+#`v#ANum?t{z?ifxC;Bsrq{4{>6AMZUW)(CQEh<=606l$6<0!okOLT!92H&FuZ|NI~Yy<*E!yzmkZ3yPs%$MQ9r8dW}9mDj5BxvG4gDxa^~Rza$WzdUfICV{(`Hzg-t zZ7I*Q$az(MOMxKSs~5MkJPp*mrFsHSZMRg{`u*kQ<#ok^l%7`6JbT{i$_1*MWo98{ zBjh6FBNQTlk)Ju0d9odVaJH-9ep(!1qGp|8qGmI~MESWQM9l)C1k`LMv)HmEi%O(c z3Z0DA+C$`~)ds6iT##_l3%Pt_RY@qbGgksG;c^EjGp&ic`TG1=L8vfP6q*n!Zl6e; zOj*T}`yp{My+@cv3vD&6tN~hWgT&aZp=G$1mf<>Dck5LPbR?m*0L-wc0^pLU6`F>m z_}Sh$ndwWs@hMStNM9P88Y(0>5HxD}P|O=D0ui&6kfFP#PyzI1&;eUIMTt+TK=L8| z%-FP$wX;NqUf}YBq3J@s5u2SBi&)sJ=+4)`_FYZUUyIuGH9i(q zx~7bPgL$_3a`>Cj*T$8o6%_b6aS0lX`Z^7|e?BNU({HEGrl03I6MGEse7h(Hk9Yc@ zW^2`%CyN@0Pd$!X7y+^JcrRtk;(N(5j*jYw>#C@{bsT1@*(g(FFP-9&$I;EYu zf_DnXpH+K-I%i2xvG$s7Q&f{6#83-WW5aL_N{gMO zh3yirnMcEAH4T>v8cfYp_yt6@Rnq90W>9T?EUjU3LO{D>? zp~A$CY}2@ruJF@2w$#a0q=m_t=`&2+6jair5a_kza;9Ox3s2u1PB{<&_9kFDfy!B3 zXRH_F6JNn#O(SINkn00SMJ{j=iV6(mB_Q|$JH<*aJqdpjh#BA+!HO%N`|z~Lm?CYe zBd&t%mn~{0%km&(Bjh0DBIFgYtU?@%nB9Rn7hU^)O0gF~n&7#8i!4$@p|mvCTm zyNm-ogEG6AY++!}WTl3HR3uADH#^|7R7ne@P3#C$*z|7cfR9xvxR#DEtK{pJ5BQ`i zE3Rpv0-RT|`rfetjuwxrmU43cT8=Bg%vKy2+N9vK7~W*ntB{s(S!CM8+kngBB$V1} z`XP`7JK_WuYYy!+Fbd6Gz$oUq)*+yylYPLtGYkt*!hjwHVM(A)Hzz$ae$T=Sdqz^? zQBG&#U0nUb1W(`utU`#?3V;vP0;dHSqF?|5(-}lShC(YTgSa=&h1+xmSuh7Ru%nTw zPgpChk(jK|hUf>F8_~JgWzpB404k*nR_{1$2diodc*bYAI zfZ!T;EGjlzGYPQXc#3mmEe?aSf{Ez*zQ_fjH2aTZ6@HQig7}9&3WNL;pa{6u1MYhp z(UNF5qbX(ZcE|0SU_)KK1Bupd9@s=CtioKhA1WvHO_+9wS*+AF2I>H4L+1;2cPxT? znucm{qUn0|F6g%OLkLt;mm^{p5$1T$2HF6^FKVE+F4KIckrv844S8lh$sZljL*O-?uW!2T3WOAyhZCd?FcZP{i zWwwz&=4hKJn3Dv5;Q=`D-EKEW$;kkSvqg8&hQoN@m`#ddw4I--g=3^XxgJhpN5q}L z9&e+n@;jX|w%Gt+vhqF>``4(!Ldf95K#Zu2q`pqD78FWJN>u#<@IH0hl23QVzNEL0 z?_7Fe7i}jqb{amT=$KI~zRl*R3}3?#?_l+VO)*YjN}pj2Kf)Op-GbQ$`Z(wUm!H_T zZSR9?n}OYY>JnDYP9qMIltKYJHKr_?fY#{T)eAsN{%{s%3-g?Oe5#`3dvZDqi+(eg zX0N%I=Dr2UMQo>-T~0DrLyBX529Tz~8vuPQS$sQYFK`yPA%&S&EEU%kI;{)r3k%P- zZ;~9$W_Kvg49V3zx;10A$?zIOIQt63F&U~AvKYV&aX=dQ-GN=SRH#bAD0(tChlVZm zbX9`u9j?O!)Mpq%OI(dfs#a}5Re>#ZovO}Nr506ch5nMXNR`@E*J4#!3Pea%Izv^K ztI{%6>Qtpws(Xzpouf+YRQGwRdcNw4sLrS=ZBR4)sTbWo(9bD$Zy4r^T09DyCym^=HiZ^oo@-j)9q< z!wS1%?K!NXraXSGEO|4$74eSl5U#7@=dy|nKMZv%YP9&d*knPS0VKFJhyuU_6o1*- zK$%1+Kqx{eMwo;!1;L9@g5X0aMJPk4M3{vTK&U~eZ(uo%Y^v9RCeJUx5@^L%P#{%i zSX_L$b7RHJB=H8zBJqagA@PQsP2vp&!VgH#ApEcc6O#)#ApC%U1HumoI3WCR0rZ+# z+z@_bvW#M8$%5zuPFbOMl?}m1E^|Zhk;gI%uzJ$A65X+g$VST|@B+@4JY{v1x~TP)s}hXj{?2z!t-pS985-KZG+6hK++>2}4w0TzxrYA0fL_-_SlBa-dt)l{G@HLbIT+{5iJd`x2fR z_F0Nvg0At+*rOsp8#VVH;)QhlU_~@#di$7bELCjI3YAnFr4z z>k;@0jrl@l*Tl;X4GYVFVX^`(AKG^nj^x*K7O5ftfh zuF0%YX+C3=W*OC-x51fYgoo-6>GzM8=D|cmJjgsKFK>u_RGP|b;*~Fth|<8IiN&g@ zG!Jtr$B6#uXlaJwkd&7uGy(D(DvktKrqn`T=f$y8XKX%k+dRVvWfLv)?L^DKMy|qW znP-z*hFBHDa7@ZuCI`e}=@Qia+q~|-KzDqP3ve8iVV}tGc-8+Am)HEr%=V>36TD<* zJFNdSxd|xS5!iw9CNQ#<^p|)YDcb`)TPHR9c4N@-U9_>i_E`>kF$z#aSZ4BJcMxY} zfrQo`B3Tj*yAcfg-!hE*L&GFS8-_qB(cwe-VbR1R5H3**GrV93E&MER;SAzMkXk-Q z-wMk4EE;_)Df=^JaAMv@f7>yRXH~6UI*ZAnO6=@)owaLnypo)JzC$?`;dAeD;RAY? zwYx|hj(<=4GGPU$0MXv_@vZc%kWFK9uxtF z(Nhw%{2LJEhBP_3W&+3&pO&uatmnpP5b?q!uP0(1qyhjuB>NWFqLHUm z)V|nk;qMx?=W@lQ+LsOK`>FP2M(sV+18*C(=ihKQ^=^#nypbBCS>c~Fm}iO(qr2&3 zA^nnsIj761|4gcgIfn)z2~%KbC%m34hSyY@d`G0jw|9 z=?%#P|2r7$`kT_oez_m-+AsCTd|@9kyxx%Ve-A@k%z}TF!qd^|+4LcuCk6$dOu2}B zjsy_qE^sm5p(awVY0rXU=m-qza{RdDVWrd*a_S$^Vwz`4L7Py6E6ENfpLVpw&uSvZ zz#N~2gAa#nAyrtsbSvb!z@g78UFu+_CpX|p82e#lZh$g+g|?;O6Y9TW}3@D zKY|l2X|f|5HuV-_pgA+#@eGV=*^-e1$CC*82n7g*2t^1J5Q-5dB21dXa;M_x1yV6* zsM%XAPC(W=T1W%f4l=c!0o;HXYB&%>4F^eSS8$N6?N%HVTRY(&SXFEdfIbRln~Mlh z2O!Fc+1CH@nQcdyO`g%M9Pr6iHZb25aNCs9ZtDS`Ql;YB3dWmtX1DEt&st^2we1LV z*vh)q13p`o1J^1(VuM-d)bS-Afyq6*D!P~-SNJApfmvtQH8ATOdNtA}m~~Dt>oNs? zGC-7xS?7AkX)xv+Ncd+ucoDfWbtqCdKPCbzxnlFUsUh?!Z$)!fALdS zUH!lV>?`j+^sM#9XWn{Kz3IIV-xPu#Nip!~=`ul<+& z^pU53V;lb3t3R+^|IvfG_1+tf-mW}#(|^AtfAHKx57=(`?Q`$RzxvXhe^PJXyZ3tO z?jt|BUH;n5|Gi!M@aWLh%8NI>`4joWhe!S?eK_*>>(~b${rY|N-y`=OkzV=5hl}<< zf5(vY-TS`1SN_M5pZ$aV=bQVll<$204}WAY{`*&t*{;9xKl^R_-yivs^zd&V|E%>} zH{bMI_KR1Zy^X#5;45qXaMN?YwEp84FYT3n|D(e{k$(Q{AO9+S_4!9%wcYp2kN%&0 z!_~jOPP#+?(_89~_dNHo{GS(p@+*1phDZOX{`>8l9+mFmPsl{C}m_UcLFR>fPUc`ZKm8Uwh?#<;jnJ_?+_pUOf1& za_dJ2UsLb=_q`w5{_^E#e_(s_Uw{6U^~N`Tf1T}jPwpF%9)A7C+pQ0O;mDiv?|*ya z-=rVy{pdaEz!RVQrF6sd&wRsr&!IQJXx+E(^_$gCfAPD2S3dpfEC06M_t8)9m4`mM z<|zC6Ux%-;e&g-GeJJ1X{CmUf_y0ZchWzE54h&g;{mh+v)%Rcj^>3xWJn{3NvV9*7 zKBxTX+mCv@nCm;M#+WY1&I^KBirQ76#?|=Sb^~s?R zUQ|B#^{Zc3_C55s`;~WoaL+sJKkwghk9z2%8}CzoboVotymi~pA5%X6{;$7nz3bN_ zx^(NyZ(ePC;^rUyM!kFAXP>jZ{Ij9!*eiSPe#`d89e>&@z53qK7o=Z3ar67~2Or)4 z1?A^2zxrG0jgM~H!|waWcm84h^B?~FnDWEVe&HeIUq5;KF-8C86aSJd57T0@>D8@o zwpuJNEF60MFplvTkFGs}|Ni%n zbUdt1e(Dc&?A$#-?+b1Ha1%ZMLj3kaf1&G*-+qcecmG{S={=zj{&NOT_n(nx==$)! zL*MutjxDnrKX{Ao|7rK-zo+Xd?|l1@I9l#r{rX>Vj9-5LAO07|!HsiyIpTeHU;a9- zL+>_SMftV-@xJYJ9e-f&|I)Q(+tV}YIJo9R``b8r|NhZyRG#?WcWa{MD_CaKYKr~ z_tyK~<>eVV`UlGA@a?6S@%Hla=aDCPAmZ8?v(^V=JLO!1cQ?D`euJJ|GCFTd`4>?$g!<)#m=r1(%~)kZ3x_noYF zcsnkd{#{;pN8BedL_Y8JkdpR8s-}0*$=slrFX8o3@ zd;C8y@OJyG>vz=umS^t&7w^CKi@(R8>p%Jtm9u5)d($X=%Ui#Fmae@^x{vU2`P5Ut z;q^NE;BEZ57fWaH@~yvqF)#1#T#c9W(y243UN78vLo3zO`<G}9ge+kg@hxh*FdV1b_ZTAqx zTdvOH^$6WB@%|dT#=Vl>_rh@3QU0FGf2PuVLLZ)UJ(cV5^OL7jzTW%4F^{e-4;TKE z_ru6fqV$~Q=jYDm=?ee;SKe;_oIiouDb7B(j;;@Xeb)e$qhti_p2ZM zg^uy_w(g{I#((LWPw%t5v+yoTZyB1in4b5}9^Oy+4Zbz?28usi{`a5oez-pOPF}8q zcdh5|x#-{T(l~F~^@Rgej?k3m-Bez0tacu~-}2U(7gGPe@Vmb(p!ma%&rYCpmYX_W z;m<$&u^Ltlj(=wRg)<)9qAF?|~1`;NM}}WPW`(_rV%UKls44ZEv^MyB2h;KC^Yj z`n4U4Rxg=k@~~$Sz0jOWFAx!GaU02(v~?_AvO2@KTGYC_RUlv60SmjHE(ssj#7G{G zGPMTl0(JFnFs?_Hvk1P^3PbAZreknDQ?av6AqwnX>d*e9A`+_b?9>W_T2C@l;Wj>F zY@JNi#K~hG^;I{A;c{R%(1iu?u!FLI1(>h;gvw``k&WBKE1>(>v!ND$rs~yL4MRiI zE|WwNqwO|oq-4m_34E3;Vfxj`)@`K!XvdL9u+7KU5HsX9lTzh2sg*mq_{Ot~pmx{v z_HW+U+q0pgcfh%$H)`msjVggADTz9uO(#_Bgyq(4cd$8x*gDVYP5jLvKx8k$9nUS< z3b@x24oy6_q_M;sfeYlhCDkR~%>&^ro1^?xpdQnymhu*q1IWl;P{jsBx_ASWBj=Vh z;GK~9^sJp*5(whG{9?)6lKR>b?>2y>_amOpsDqC4W+2)2d!r=fLAs_uNpikk@0=*^ z1KO7E)s=WJ=I`3gf4O?x+!DkJUAVa=O-LY2nRsOkT;;hX{vd7`qIHxjwQk9IV4KJD zK$X&$N1#U31BdiwQfFj>`lMunJ~>%yVML5JR^2#_RVO+mh}{yY;JVri=h z+y#hC(%JD~?eI+M)7kNW9^siZq_g7zr6Mv(YsUvfb2X;5;{##{H>S1Y1N0SO!ANh% zqYAWO(NIp`hY}P$4+H0P=2BfR>OzZGN?mYmE-1+}i=XOjuElgQIui%SSyHOSBpIMV zkdh5X-s#K+{Z2g-#HV>G*-)~NU6~p*8P7%Jfi@URvCvpIU!0stN`sBNbcud3n(Jfb zLDSNy5JiC|V;mb@|FJTm8RJwkff}ml663S~Secw^O@aY2yn@DOpPo!;P+@S@;O#WF z(v*p)NzIs!N4)u=oM>>RG}m|p9<>u{Qj1PZt;uQ4M2ujQWEpL))0zpj1@;PQtw{|H zc4U&)KB*DkNqu^2B1TtzdTSy^S3_EBLgY63q#>;}p$`O^G^V#EqT?IWTNBaowChUW z7hfwnzA3#mF^R9VR;5nN^$FrDJ+oJx7{qXJpU!Tn6Mdhcy*^f5P_of=ew;NW5H!~L z;F!AL#>rMLYKH_hQF~%KGGMG+NKeBUL%|@uPG=r8JJNKY#ysGxnCD>-MJKIC3e}ym z%#TBK11pJVVv_cwxuAg z`?1>URO?}|qf9C_EqMfpYeyBqrY*IxP|D+VI-(O>pp=S?^BFc$LQul!`_w$}&6s)6 z*gM`1C}m)cw*#sd6AJCNK6WN46&WuRq90HblM){7lG9leqq%Cwbjc}XLXD7^8ON)M zvCpE(KDD_Jak4&1$z;4q-e45fp`Fs0iRgF|Go&vQgS%3n)|wD8kI~ief2m2zcQQ_& zKyOWC@_(sG%6BquCU`q)()fR=$th<-J8R11|5B4v9l}9l!D>otO=`u;OAMBeJ%mrW zxoFdi<^p13I&-NJ!z(}%wA8ww$&WX&q|hoUl^KUtp&5nhGA^xhq9rAz@5foTg0z;&1+I%=+!r`lrh#Vm5+-4aBW1}Th8&8lF1Ir$n4F-D3^ zI9YBAJ8+{a$L4~}KUOYHC(eX+zGyCkXPZ5|i!Nh6$R^Qsu4!1S~i zy&TPDaJ-W8NFwk~>02C!z^g~AP#$Ai>vZNJzC>e{Pg6ZauhYbmIbsDym2?U zcBu_cWuHagAAN?rsnV2%7`+B5l%6~qjnRv&(B)~$LyRkf-I1m|i1tg!vzOlO}PYLCRFP20FKpUw)W49jF7hy`hP32i z$n_0Po|?4e5imA|CfSgtOz>K?mPt3HCllgdQzm#jO}^>Lgp@3hiAg!6C6i!4Our`S zke*D8Nz0@i(vpeMB_{1Kng_b-V{w7TVfr_S#xgh#N!@-L^Dvm0hURg4@__dtKD3Ah zm^yw>V?{U@9^;o}ylKottcTQUY0Jd0{z#B0X&GCFaMxsPq^aW#p}r|qNKY<7(iuR{ z2T1okZM_0mR*?%G)0RuXm>>l$MEYD~^=oK-J}C!f94Sn__!B_2 zA)_YZLriL})0hV>xo9nec1+3x&G)hDF>YhgM<)1ksa%|v{PhM8Zw`dtiQgPc#w1np-IE+WQ{ zH~&&gC%(k-M4_~OLvtCzz4T-fB;7E|WK5r&#+neP26-5Sc2Y%>=(XIOXF>j}>F2R84dsCS`J#_&B9G_VLd!EL+aDglJ3(te5oNtAh(k;Nm}Di)L1DM8HemL=m;8O z7{Ez+Ai`XIX_YN}1a2iz_5iWt;(x-y|E3pJ;YT@z}>1RXJ6O$@y)BJn9c_4jiV z~(co0#MG#2dMBG6@6)A#9*TB(>HFa!IDPQ))5} z)m0;EVyK2C<&o6u$u&vN<5YW{w1d!EhQVc09!b4^N_mXa>+q&1G8r?aoYqW4Yt@hG z_fyD(sGL(7zXp@Q0J}(Pt)%gLO06}{{A&OK8BFb@Jd);Lnmx_&o80Ru^%!SDA%X$D zZV1Ga@<*N%O_=$^o=Cf1m}qvg?j4LY9gA; z;A)>dljJT*$z+@v#Z;C@7p6{ID6u(hC08UlkCf?moS_vU2?JWo(8y1!$SGu!((mJB zV%UirQ#=j^J%<9D^}y+Ihi`zCEl0cLm?>qBMrc|6qX=4aG>!-6CRZbcIR#S+rWI7e z(FmY|t$zEgf}muFBXo!Clrp9zdl@0;UGVu%AjI(b&OM9}0x_Jt7m!Oxaxzk6_!&_q zt5&ZnmvBELK5{i;t5BsX@+6|E@G;^Fs8Wq8)vCbm1C+K?vg8y4WE*Z3RA8(de{u$( zi4i;qc`U;PkBa1g3ZAB!EaMmMED&L_k?(Q)0&+CvU>4cAfV}bni8}*W#BeYIj9-hz z|4u%DxA#iz4okPYGVF#A=Rql!6>@iaSjes4Bf-nJey`-^Hwi@8CRwB~puF?fRvZM3 zFnq$}`P=FFcS|>;~YtB_GbmEtzmwX_0Nf?7xMu-SdyIQi64#Nuc&+gza7~1J)g$ z5_9#3q#1GMYgw8r#d8nAarZuH=>$uB0=ckwSc(<*9|XQVCB?x5xOT@#NCBeyV^VBl z=OnhDq9e*s{-1!&u0JkyPPPnpP0_!BCwvz1-YLpR=Tvw{d_wBbZ_{j=s=?u>=Fm$tr{At+XfDm| zcle$9bS+cM@@M#6n#b?fvUQ)9(A2)wIaP#o8Zs) z7ih))LVuAqQJ<+z(k5$D{1g1e{)zrcdYLv=^ZF-i)3g$8x_^pZuKBbX{;7Vif0|b6 zFVQRf)BQgG3~i=X<}cOC^-BLtf0@7BU*WIRDzr+y%3q~bX@0+7o26-5weHsfTF^gB ztI=w;I;~!xr8Q`ceobrgSNj86v#x2g{Xu_?zgC;0&DG}V)&4qvy}v=5?{Cyvv{pUf zZ}K<$XZz>)=lbXQ=j%ajfxksts4eoh`WI+zdX3iZU+7|f&V z(3WavXv_3E?M(ktZMpvpt<%3uTcOu$XZg?6R{ED~tNfkXYP~^Qqn+(v;Xlj2Qd_H? zqc>{nv~#udwDbL|v@We%Z_?KLS8E~v8ZE3vw5Z;!ZP0qOnEz~Tqkpac9DTO7N!zSl z;9uuISG!Q#qR;W4r)~A0@9*+=YrX#U`dqC~+ooOQ4{6)Aer-UXr|r;oYP+WX}2){PX8|d#oGTc?ek2#mFex;7npV%^Y7MfXWAW1yOU{OWcp(5E~b5nX0XPrai>`d*Eo?{~6}LhH3kl|Ju?2{~vGP0Uy^<=l|xFoh>S>m9&y2m$fZR zRT4g`cD5JD&+Bm@G%PJjafM@i@477yP1`4cn$y`8(?q`1PEQFOytjDks;N&pQ z4C??IEHg{9%xbx-9P1?p7UF2eyap_;d*15*{ZiF?RgEgqOWM8L;w#za!roFab zu?%GQ&$8}N6d#=#hsnqOX}e0vQp<86zE<< zo9(2uJy)D9Kqi@rt5u__tzdbhzpz%?<;MMrtab>Plhe@XIx`a3P`@F^2Dw%IhCsGz z0YtRhYFl92^31Q?<5wOv5;bkkrkghP5g;3bCYiGb6^-&tz<}SjzzP+=1+X3p#0o3x zvdNZNt52(2-tv2uEi+MnUleDIjsxu(ef0FEhuKy#9|=>Nj_Jvn*i3@Ws&mbGQ09w< z>YjuZ;3S( zt;Yt2tR#A92jgnS&Z3R09bDbc9oGTJ!ekX}@68)(L7{iud^t8qtG3Qp!I*s0d^v^k z5NinoS^@2VZGauuvzDFs-Nn{1my1=x^zbf9MuBl-{IJ!8d(}0Bd$qNlpuu$@R0HPz zfY1%>dtjDD*A~c<3DdZ4oK=6ViQqzT{h9OY&s+%1!>&5487o1UCqAl-s0ixAK7zCB zMH37In%dK3$4)daM6^_|#$d)cv`2(f5yLc|_IVM~x)3o^y#_NK2y5FTI#LmCa_g&Y z3lW~`<@D9|J>q(7H;mMoA&2)hWJt>qH`bmxe~}fcJ1;V?woB|xEt<|V7ewchl`o~< z715TEEtS%H1Kzurtekyt_e6{(nXwFoDJQXe$;z9)?2YgxWG%yr@V+?Jlyl`Z00Lt`$lnZb`)r#J&|jGWKoc zKx}abs(?P%jgL?jV9W6$gPp01Y!e$4gOMWiiRm*vXq?8^^{k`?Uarr$yuwF;x_nFj3 z)8AW}ok%UBGGi#ZuBy7R8YQ2gl9wwJVv>qX1@5g-YQ+@d5IrF+XltS_p+uO;g7hGx zJnQhKMOrM-OvsQH8JoO~H;yJ}5)&W{()2`anl_sN%AEmqxh)&zPe@3obK9QDjmU+Y zVRL$Nx-i$Ts;Q;WT4OSmc;VI8GdS3JI5ar8buKZKvA^pc97|U|Z6-clifo;;4V0#B zuMj7bP9sbSIMZ)wE5XZ`{_=EiU??_`W7&7Bt^Iz@ipu2_B{n=P_XG~CdZR;$z|~_~ zHj*vd!m+8TvD4RxJ328pc_MMmH45Z**p)7Kk_<<;k%4YnOPbQgwxQ{x)nTOtLtgDI zt{c;h`}>*n3N|$pjo$7ym|A-=)LPL_m`F2pqX$WD zqoqQ{g63DYp`>iP*bZ}w_~s1OF04SVxW2Rz5yXzgK&m$npKov0wIXoXoVrsJ*C8!O z7OMp!#Sx$B3(|wIS`l)vu-fg*uv(hLYdm}+F_xH_oaju?Rf*h)uUThLgmlzxmq!K5 zN)kR$@Wl@?iSHkl!}1B*|B1d3k#o@{_!D z<4{`CHn?kMbUbmGtW-GDWpvC=4Wl%ML^CDU%dyGnvEd`rv56!$IO9bi$qyy&njM8j z#Y2hV>DbAJ7c7x|T5<&0St#$o?07se?dh{B8H`-hqY1gRBY;6*SNDijj43PR0gX9S)J-*q5(*6an8qKop)aKg5?oW zQ~OjlukK?EC~ylVzY0^1&VBg4(ZWrQBA8k*jVETG7flg|=^(sQ3&drixmpo|i~M_? z@CN3B%LVEvywK~$Pb*T?fKD7_YZMq2L{gDiB+*GQQfw9nBVN-hAHXj78!5~nn0MlI zMUqWvTZYyan5-HelAB>U6)p6FCFKlrCHKc>rbkbOda}msGv92>`No-!mt%>>F&G=0 z8i{2`cIHcmHU5=rj_^<@9C8n0YD^68pBzpz3H4A*Fzg*1htJsDXyT-mufzI5U~5zU zpq0;&*fi*utFuZvYI^cce2%2k4U{)HJ_qZoR;xOPCZ|sK!t#*b0<)q9P)cG(54W{+ zl+UE`4b?rTrh02jTXV(LLPI@zYkNm?G1&lGk+a?&Y;RhNfaM7eC6Y%b`-T$}Gov%7 z_4d||_QDlyt9Jy$9eM}wP0@-FW>?o9Y zlsGU}M;T2`VKjjpG6qz&wzlHg+T8BSi~ziMgu_NtDA*j%%k5)$g`3*w+0o+74d{X? zB6zno1-ad$MiU4-q}MtsHHUb`%bh<=h$d0X*7jfLhT!K!w%0* zO-)YEBzqE5Gb5c7!-ui)7#bZz%(h^YKAH^m7)`CgU{k^J;R4T4Gb%wQxjcumlP+z6 zE7aW4er;UZ5^Qe2<&U+|Wz_^je0xqAuvizS+oXFWHUTS5`9rhQh&yBTk$VDcZ_DYi zQjiEkkE5MEHbalvyxat5e(legGc-9dmzbV8 zG8yXOc2qZVJ)Sr=Iy^Jt8UkYwX2K?u?3Bg-^T@!xiP7UDGwig(I(c6|G@SrZa1i^- zDVof4iItPfX>IM$=X0^K*@S0mHdBPs#00JHD~5?{B5^X)rYCLWOyw?n_bFLA)i`G@u%bAZG z#hjIL-OpJWXY$ydRdBtMv(=of;cP9}*KvJ4*Ee!~6W43FUd#1*u5aaf6W3d~-pciM zu5ai1^<3-ZdNl+JJ(eGZ1?$$$->wAL!{yvK4^9A1zD*v~?`q?QprThs%9ETw6LpyLXd+H{J?+;VSHfYe%1=YzNzF`+k@v?}u+u zKYZoiA!VbBxjldaKoKAS*Z`;kR0B2x>HrOZEr3Qq5YP+=0m6VbKnGwOUcv$|LZV*}pYrB+uR=BQHDPZ0}mr}@z0^N$2 z`PO$SMXY#zx8h?Z8@ga^y>vr2EUf!Cb}6N-tg1`#v+}BLrHrlG)TLk-y{TJS#VV`2 zlnS=Grc0@0Yc_W&tJ&JxE@cf{SKFQimhJ|^Q>VwR<$5r#saa` z3*roZHY|vj<7ZQpi+dTdPNk#2N%3OHMV#W5Y@bsZ;Po*cEf)7#G02gQp^8_teX250 zTpufrmWbCd$sLHOQ)mOG)Gb8hgg3|MWC)Da8EYSC*H;aPvPN1 z{?QikcGeqK27L7~U(`omMwxgA>upv0+t5lWah8#Ti*r;UBxkrVZ?3bF8`m*#CLDN7 z5)*fd2Gd;z9@8|ok{U{qT10Qg4RFM%dLL!|?M@^jMFJ`*5v2S%N;&G2o$M3O+W7!? zgO_7R`4Za;#HOMm#a7P1G*rhgGxR0Wb7dp@#MdaYn<9h5O(PwVQ{tP3?HU_v;{GrXZ_olIL`ty7P9eVvnduopltG1lnDduhjy9r zbyOfMD^P-}|2=slahgpfNc^X=T}$j1|5>`lOT^D9-2yPR*kf{tU1X=^Or=SBni~9W zYT*}ATfZ1-xqMU^m-tVXI}=lsPfGkY*V9-Ozhg5?RrkKcVGto zH}h>oa$a$X1&VQ~6ZOhDH{cR4Q!%~bjscH20~g6`6lPmP6AzF?ly`Y+qy{wcT13_m zxhNai5D!yiA4RqYlI$T!l)V(iA-qxx1cA~#s`{u$ybvW@RvJS*hGY#STbxbS1^G23 zTe7?ik##BYq}soZMoB3}E|)!$ZngKQ=~lz1{%m6TkQRea86^gOnmvkurywVWf_)@i zuxFMREFZFBkgh{s<=M0f#IuyvDw?E|*|a2D{Gv)&QG8ML9g-FO%Vp__FR8xu@GlTw zQRS?Uw)9@73>4JI3J9luRZWlC0(;CBh_9>t*E8`ANb*rE6r_TL)beGeJ>tAtrN0|x zsU*)L+w=QsRpEQ8l&2m+!0K#lpZJN2WdNRQvUTx_Ur=4vE^p-2fLHtjD(*#o0g7Bm zNrUwn@rz^qenK1TGC4+6afomitB+BqC|P-+dP^Rt4!+Npyt`?|PJL){I*~a9mpgR* z(xpp$e*RlX8Y>0;iJjK3qP+Dj^!E$<{pUOXP31T5K6JRR|A68+jIHOy@oR0pX@k}p zG@7>tw>A|WJk-DEQ0IPWiFoip=l>@?wJQRb8=H+w6wK_LRxHW z3@&U?v4KExr)CTsDYv!qJ7wpB3I}D8u`R)VJ~=sEaD-}*c`Zai zt-eXjVKbM^AI$7D&|$Q@C>)ekBMv3vj!)Sf8mHym*CY8N1%qP=6a0hOWTI#CIywPq zW$ZkMd#S0D?!n~90Udg?gN(`qx@&+ex z1~`{Ma>o<-%l4>6xk0~?W5 z1}3MDLAIqA%8jnW}ekqT8BP-EtE=T$J%Z-(lV)hVv#TcGEPrDmXcDL*le^asr`f z7KF+1a$_Pkm*A5Va$FW#^NWV!k<(L&q<4HaInz0IGIkmqb!rCJXcA?habtv9VUiqA zR1VL!mL@#GrSc_5F;lTA-=CSUMyM^=hTyiQws5hv>6SI<9!U(Hz_>$58@N27w)WQM zyxj3`ga}>W+0@eEOph_Vf*pisxTOWp_Fy>Q8a#Ff7@-a@tX!GViFb(P(X&11$@q2x z7X`tSr#^tdPfK&SImo3Otb!KUWe{ zZrUp2dt}Y65$86uW4tLC4s~3UKL&nZM^m_BG-=J3Wv3Q$V*8gHWT$~f%htg^mZe5Z zT1He5tTY|`t{IjrOJ@MDTtoJ*Vc^TjB-yY>``ELm*gEQ#O^`lu<|h)T3Edj_Jvs$M zLG#KzPFPsZDsbY)C+8B~Bco%(MuISb)on5nnqTRY`xh20Fh()^PC2avJ7*jiOemRs zl)rXjcD!!_y)}U~<}ijJ8tur)XnGM}x1t}n$^5DLV>3e|NX0rhlFYp#sylhhIE2QW zU~JLiGi}H@ThccHM%w6bfQCU}h!)Xp0XGimWi2~rI2!eMBGjWzOrCU4Av7^eU%TWY zb_i&}A??lIV*T9e9GLBx%dva&-{BjtAHp4HM3+S2}J(U~ukf zZwT~1IdLU+yD>C52An(u_T99{#Nv<~k@%6gkV$m7i%t%^$-upDJT`qohIJ+nV+F*5 z<-tMYP~xa{6bU~0k;y!ZP_m8^iscl-I-Wzmke@kv98A`(*wBftS<_5RyW?;kpC&m- zju1fR;Ppt zv*qok)^nyi+`xIqP{MsXdR@-dh?^P(9X>fb<4w+jD?0(%X<9ijCUrWcFcO4yxSS4s zJ$c=+saSk;484^|=2<0Ao`$H2YwIz}wr^#L%BlcR72fT)rnVYUTMPESr84^)zX>-Z=F@iGjmgv47cqGxNNJ#+)I zY#7yYz{`nXmrNEt=|$zGZyFEOW~(2tOGNn&pWYg8r047Hutdn?VB(sS6}fX zYu(=J1V)irPsXOL44t6Brn^yb!aVfr!S9WeLsEW<56w)EA-W?rHiI8$a%9vb zNB*)Y?Hk3pi0t%(Aj)Vg3>Of22AAz$oQ`h*V?dn0(Fw8`I1eG*Cf)8d1yL2Wnc-lh z-!+?!4sf- z#M$}ic-lBwYkz(YDODA;+JfeuPCF4}nvQ9f3#6@0uN>K|0ul?2BmZpy4HMiEpPZSQ z9ABM|nJz?bylqqlYvBou$4<+MZ*5EhF%xT|wJ>4m1>%XsL|{~|i`WX#Rwql6x<)7H zBnVT;>QFfXO8dsf(CcIUQ#g8}gB& z*I(?f@o)7v`CH2J{k{Hu#)p{m^Q_!e;i~vDtN04@|AzVRQ~eLB{%2JGS5^PlRsY|r zs#`7e7Wp)HJ}dY!1cmXh(Ulw3Lq}_B0oQS~R=3~u;1E8&oH!ND3%)#ylVEoTAF zHp-i@kSpH|c@GjQcSxafzJ;#EI)hwo<}O@|4Rh8?(&en31kBksk}+pHxOyFTU(eN@ zT;0XhPOf%wwVSIw+_Rgjd$_unt9_h=)^FhIjXZBZX9u`?kgGRw^$=%=IXlYPF|OXq z)!R6`owEpMgPg@U8{%q$t0q^Eb9IEPqg=g{t0%ZR#?^7IPH;BK*$ihVIlG&)dpLU; zs{V4oD*^Wb?gu;ocpcykfQJB&03HQA26!Cs1mmuEGM@iIxIYf~4CC(4F<$U2e!qa< zF9QAo{(p)0FF_EVv#$dF3P*u|jo+^UzQK6jH}RVSJP$YzxB&Pz;5&f70elzmJ;3(? zKLGp?@FM{A*G~X{3-~+0-vfRI_&MMgfPVli0+x^m34sg1uL1uI_!q{D{}u3WaQ`RZ zw}9UP{tNKmfL{Xs2XF~6uX6p2ik4A%$*b`DYL%D10l#kqyb11ip%vZ?_n#r|qxgLb z;H`ki0B-}l9q>5d9e}flkGSr0DtA4BU)0r&db;mL*gI9%1;$+8p+WdA#QOmJ{v7Z@ zxIdzD|I=`P6!0;?#{usLd;;)Ez!w33sq%s^sl4nfaQ~Ic%fE)-ZvvhJEFiBGU=gqc z_!j)m1HOZFe~8~7seIK>@cT2sK{OwJehK&|z*o?G|AJou_*cMhRGwGAPqHK@4ydf! zcm@|3CJrjf#7zoYojf#uKT{?SD{NxJ(fI{9kHJ}e>wV1a{wdyW!<%~h{6E4O!6$-p;bb{Jkohc#@g+?{WKgME-t|joR;bp1Bv_oC5~Iz>W5@X56Ktx5d>F1Dt#Wcf*+GFkI9#{kJAgD^kEeaFsh$Gd;=%9F27xybk(S& z)d4DFARQU~<52ve#-#dPmUo|?hreH`4F7My?7ruI_8R2Qs(-{j$mai9-L5mk0VoBO z0agJj0T5U=)&bT7HUO#s{eUBYn*p}~?f?t`qJTJH7%&C63os2x0%ieofK!0efENK? z40s9PrGR;c#~FIOf*$wM<5l!{H9cNKkJr-U_4Ig<9&e<_o9OW{J>E=@x6tFQ^mrRR z-cFBq(BmvU&e7vZ_AaKr8#DDi?7eB{`?Aibvd&}grTFh>A7IS*b3mLadk^9atpxY_ z6~9u3-c@jnQ=wF1bSZ0adZ4VsIf1fXQ8p;(tSV&_`b4Qwl+8*lx$5XqPmczAY@x?i zMQK!m^uW15qtc9VqqI-}?wqtLZJjutcegV|>%iTiZ8#6uPDk>d9i2Fm&%3S@NAmgC zLp{Pyrnq-?;vBD_vlGYhgCnBnfDYYD3hB_j6oTVxng3vyvW}G<>{bG-{H88tJzI5C zx3Ym%9O_awvdTlF4L5fx z^=#v@E@ca=x}{6m$~N8Fr8KhY+q#q>tGT^PX=0mi?^c>w?Hyf8h}GTEt+cTENS6|3 z4Fg?DE88;At+cVNgI!8HYaHxWI#@8;rEFtO(QaisYxZ?1J6I^zrCi5a_7t#Q1?URR z2dxrr;3%A@;P4MxB`|{&PnU8%V|iW5PTZR9Qg$&7)$U|Es@=s5RG^zVin^2@#*4a@ z-OP!kdl@uQs0PFi9AR)>JGKoG65I!k6*vd`^@rI-_7UWEkv)xRniAht&0C_kJcV;5 z2B}k33MhP-9jm(lsrZjVC^gcJgRtuUZWe9EL0H4bSafeq|FDL)uc{57V9`GN?XT2^ zPiEi#T5b3gi|(_-zNR*OnniE0-lAbTCrhyCE#jMM!+Th?SNh)~o|A8T?6(EA;j=8d zo8GFF^U?j!dx1?{sl|==E4V@&)PaKiNWF8sHd-lu zjDvV3x<;OkuMvMI--_iM&Xnbwz94?8mY}}^xPTwi_b8eP$rfcqQ3J}Dq6KhYiYe@R z9Lar{MLNYlsr{Ww*c#2HG(@6>&zO0@h{17-El@=+%K3n!Nl zdWhWB@O9`1IlJ#JrbUb4|KF%^|FnwyFR2ahL;hvRAK4h1rm$|A4b+a%AfZJfa6SdK z8~19@0O)`?>PU%KYUcRf$m*1MwYG0Hn_qn%o{QpsEjGR=UPJdQ92jnF$WH1xq;ioh zVA!E@4{3JgW}i<**NZo4=Vs5R2G)y*Ay=|~Q9P>Q-Xex-BRjt+9z*BnAxo$?X*Oq` zoIM}eu_)fI_3vPj>%`+)|8;b{2`wuM+hu2krCf=|#JjXd06xqn@osGoTK+v6T0Xia zCEiD0lQ7Ct(y=Nf-cJss<8(qo=M03dG2 z;p0{gpO86xigG~Tep>6lUV+fTXEk%St_UTljUJeryRalar}_Q|oiQmsuQeR&pJW(d zU)0Py=7#j>R`C~_ITtN9Pd+*OJl_6NGf&~|G-`}kU)K7!EBO5inkMRfGIlrIU)9VP zA>vwEvYt6hT6LQZR7Skb3;%mq%^<=b3d>y$gK8d1! zLo-iOc7T^4<^Gp)NC7>E3O=XNUCd}D;w)(9JnpCTzl^CELzQ9?txr{0()!P!Un?UU z#kVwbZL#9$((E352L~F#~Xg(}P(HeaFJ5VZ&2aiXg(~T(RwLu)GYo(Gw)+w9FaFN@$VXSXS8WCx=#E~ zs}{f2`awCMx^69lB%)yy;EZm*IQC-ce7SDk6T3$`U!mJWBz8ZO9{1|@D2cs>#;?b~ z`2BN|Fe4=YOF42uz+&Y7lN`Ul!uX9mz{CUkK9GI$56}dAt!}=SRVj^H|Ld5#C|+m1 zqK+7fG$Q&z%Pfl5lXpKT#K?n8JgDz`5T8HDE=1nQ#2fX7e`i$%TiCugGHw2itPZzM zAJQBCgT)?VBun-tJ@zK_@56d^>|wTqarB68o@~^gh|MjDH_LdBu%(oERFAz`2EPTt zOXl3UD)q_Oiz)tFb@TL+c}jZRvm_ovLXRTBx9MBd*jrd+r+8fN->F28EQ)vN{cmL~ zdSpqQl`bq@=XAMrJ;sK`lX}C;)KsThiwXEnz2PZVld_Oro{GjNp@|Q(g#lf>&%)!1 z6d?*pZ}GHVT{loyAFCUvt&i0Lhdra`BIxMb*l@H*d|a<$oh0>DKnQ7_-4EC>DB??c zjrba=*_t4Py5)Q@>+u5dnTm2MV zzIF_<$C>!9ZoY#x+>d+Yiqh~J)eC&n@PK;nz2_sl#P{@u*Q$$W#rO4w*Qt0r+rNu> zF`p6iBfa7ExODqwMt;b(2s)?OZaY`X53Atc>vDPSA6D`5Q~9!|rpjI2e~uYZYSN$U z4G*c&eDeuZyEf7;exdibQx$w9^@gk9vI;UWiv26S;bFCt)dEFcM7PN0Pf)7X@`vw= zF-%!c?ss>H|Ii-+NWrLD@mrl{Rb)FHz=&Q*j7IBdImTk}I~|JwM#KNmXh2#ePBi1J zoz^3nW{lQ~mm5Wx6ni4?WLU-w^If=#{BFRX0p0_zR~hDe;d~$9DJJeU_JMOS|4w!u zYsjk&T0@Gl&KdphXKYbCVDx@~Dfpp6q{M5D{y&%K%Woiu5UP)l-a#KlhQ(QfTJuAU znzK0aVJ6NQL?eBKMW1H-KFl;q5#=sL_p4U-AFDebj6B0qv1c%ysTnV_CsC1s53ybT z*oRp38O%Pz{3tU&#*&Lf^1$OE>G5&tp<$JJ*r03n$W}aJV93_W?mq_&V(HSHV;Hge zGnfKTGUX#690LjnLoJ|u2*f;uu&7H&x{*+d?8-Ib&y4<0$ZD25apm)$bUXCjvXTD` zWB($14_5z+?7b?9%)L(~nYr_fL=~S>IiBxVop@R``ZjYZn}>|e7jTK+5jYPa*uanz zz4U&Amd-umBSs?|a*3zuhl^+E$DN9Pl8KKSPXl~+pyBEDlg6v&KPj=#rwsE`Y<38{ zJn?D6{4|@rAUM8LB>h6XQsZYU0LVDE$o9bhmyx6Oz#201Qhb1vrWBH$;v_Hed zmyz~o7>e~-CcbW%pJR3Oac$gbKFj9dBucZ%oIIXlIIl`}k3hWUAxgv_5)EE?t) zP%;;sONRMHI60i(GR(h#(~bE}MZj~&;~m5rD87pkqTYMn`(}Fip3(4WdbyuozHc;q zhFCrs(B|cE}K3qMN9k;>Yx*L=2xL#NY*WMoE88jeAx-dg&6S{4BZO0yh%= zJh|TrH`4tOxgUcY$$psJZ-e_sM#C4#{dUmYpo0zbWZa;o_1qJ*U_Obahxbnnpl!V0 zBYjUjIeQ_xChk~_8%uFloX6eb7e+t$Z7K1OcDsY31r<|^Hbw)_!CT5N;~Vi$M#E=S ze2Dn8Sgs=M0_6j8Nd5(;h4^RVW@Y|M?D=Ss_*eN^O8kcEhiaiV{acavr zUg4mR{x_;K-1Dh)~uueRSDzA&iXk&qu;qwk!8Ianh zoYc08FHvgMl-jDC(qc7r^!_z4;@0}uR(w-~9+EPqsQ6a#bqC0$O7m;%2_j~mL;{<0 z(hQ3frCFQfwMG1pyy_^MgSpuZY!N>}DYvA=-#L6$Xr&tQQ-=??89@k>lgJKv_wr`( zGe`f;ikE_FXa=sv?Di1zrmv4WYOoCc$oL!tYM9Kgkv`r zU7$4r)v1SuN%ig4e&iVFs$k?BSPZ_wBHv_-v2U`-b8IR09MEz~E)9zk{Vt*K7uoYb zzXJ4~Lx{76ETFqfN_yIn0yExL!Z5 zyu*xL^mf?mxVzO9zfZli`4#Tw9n2n4T*0`KRb zC`(8-JQFAhL@##ikwqq6!yEoaMZ~lF7I9Ssttwv28@`L2UYpJ79+?w@UdJ20m(J;F z%IVa(*gY~Q1in5eCp(aGx+k5}8+gO_Rb*i0v`2A#17l8AzKNAnRj|+1Hqa`n%T?3} zDAMV*pTIqc(r7**F7P5g z$-#@jC=4wt=oh$o2l8v7{FWgO;DIml7-@(JFZGFZ)|@iei?36e+bE4?$e}(Z zp5rL!bKF7>^&*8L)n|~yBDax4droQ%;>VO)2c@<)rv*|24dUH{V=*l{ECY4D{d`8LU6EwQUhzmuaVvwB(ozYnT_J#D4FZXE7PC9 zgUn5CK>^y8T6F#CT?`K41eh!o+#N8Lgec*Os zfd@Wl_^B!p!IF42{0K)h(#Cz!Jh>>h?emQnKpoz1amNWI z7oqXjV)SM_p0atp8ISkd?B0yW2W*b7?ST@0(B}2p`$zbI=#m`X^p3I;H#^Kb=z0gS zVQEXyiP8a1`DlqUbvR})s z%sq^ay||4-9&o?yne*_s`>8`N9Ad!`F)nWAU^7(sQB@2AX0p2 z7&^hk$DO@DV5}2$__$LNg`aTN?ENCef)ba~3m~pP?X2Dl8p&z?kkR!Ix}l-r+Dt-; zeiw%bad}H)&4@9)t1mW$az9)0ZIletLxE6*l*VX;Jo{L(F>xv}G&_?}ymWeltu?nj z3exem%6Qkhh@s&c#vd)0Ds$OxXHIgdxLTZakH=0y2}38Gx;Z;B1bGT5S~xy4qLeNd zkF~%1J!D6dq{YcnoRZOrU|r>gzK^^z)yQ`is0LKlsRlHaLh+sl=ln(?H@py>;HnR; zh<4--_6q25gSsHJDLM*(Tc>Wk{hat}4mzL5m~hg-0Ks~Zxh=ie7#Jy0M2l>ZZwJF} zvcy!A7Z!ydKNtjlx^C#A0ZQg zC`&+|Yf}rfZT}gD*}|e&2SlY|xO*>H?*V#;HZ*u*mVD9jT%YlTVl;$kwchtwAsd#5 zKv5ck^;++%t>BGU2wtqx5yzHb`=RkhvVR?o*^^N8si^QTiWX zf0~3F|1`-u4+CjHE6?d=QmP(Yahg2YGdT{~CToVh@O(V}rzv1#PEqfWgT;|_*a2I>WQ3)Q6rxG) zjKXtOQ(bQG_DM6GsX{%Prq%+%;Ldi|+sJt9D$;49#WvzL-NA^*^aLY$W?nFoZ{`Oh z1!h4o;xb+GVQDvlej}nDo-O$`w)}Dxo`S4kMh6(_`by)Nm-?ilu8fj288-4qt4E6^ zAv{BwZjr9E`snRxEnAcgmR5|gT6y!+Aap}tF0b8kZ&7HY&nDq9YfGDLU11!_cAIB%_xo>!0);gi7e_I~Ao6mp^j6lIt$-m}Ncaq)HyZ4I(zmCYHL@RtG%Oc2{Hl!K%9K`LrE%o&$= zO~yt3E0feG$nz@ccBZx56%1tt8YSY*9cWbKwadd-W@70&y}ZYA2XNUHh9xCkca^eT zVRT<92`X;Q6_UPETUZ$4@?u^gE7||_$L+=MN<%LlZCWfH?=#{Gg^l}v0#4sP1aH;{aZ2uO+_8IPs1`oW@7504k$OLZ)9O{hcoD+ zH#txA7F>Xo@iW6)$F=efFU80mk$SkfsjZBBuP^}gaBEZh>Z=6y5f;*0gRN~oim|+- z^ww~DvrKlmzx5H+ptb33$a$G2%xlsZXs>WPdMwnEcex^4zps3+aRp_zwpLrGhw0l% ztF7)L`%tjDb8VPwCf7!|b|=@y zxHiGHDXvX(ZH8-eTsy_JJzReg*Y>(zq=N-cWKjhu9{=9Igs1MWo3DYp9#4nA zalU~${h|3FbNk!pTUefd$9xAX@L!K-nZI*>C-eHdrMq{&NAdR|Jylt=kKJ%1U_amh zpdWA(;1J+2;0WL-;AX(BfI9$#fEZv1kN_M9i~>#o#sQOny8ubREZ`*IG~n(Rvm5Tg z?@L&F2Wj|SQ@#u0s36yNK?oIcs=FYF%2d7!(x^-e>;jXV>8@SMdguc7>{2!;%#puK z*@z8!;VxQW`K0p-I|M=^A2N)Ik-Ef1&ZlpZdq zBbG5he@YJz^n6MWkfG8eU#k3so?}p>(xVU>ie(Jw-IN|hC<_!Hhe4OBDs%{+K!CWnG*tqsJ+AMC&f(7|&o3^OehaLtU4gwItyNt&Zbg7m?u zDYss+dqr-&xw+vu&?WX*8Bqq91B-h_ubuu+kpAAPOUM8W9IH+TNH4NZb*fPgP%Z~4 zmxH1|lgnmVr-N25Moyh-wVT9E(1A*ILJH#0vN|2isnZdvlaa2|EmWr(0xj~6vWLwy<7|Nu-Rn}%$ z>VD>=`x&QrmhNZAd68Jmraw&TpCJ${)jyk50iI5OjM8@^{h%^-ku|XiF`h}kS*AZB z(|0XP-+5k4=A=K7oBkA~?@XsZN9ntfev2}9k%ieQaWa#Bt4#ltOy9FCefN2BdJzTy z>^?u0oBrLDzKhb2qJ8GUp$*LEA%hNO9!Htn2<<#N~qilX`H`6N^<>OB0bHB`|K<0Bl^0^LojG+B%MLrK$`4le8r{KJJZEijf zEX(J0G9M4+Gl}}V5&2wXJC!#gk23ZqJXfm^_v=d)KCtxN7&+$Sz@>0(q6<^`h4;N1n^2xL-A%NhgqHq^Aj&8Z1r|oKQEb{=uqB{ z3|Fyt$jr~m%+E6Mcs6sZQQv{gi{>lOLn&EK=9|&H7g?8%)8uoq2=ho(Jb@EmDhnYA zV=ul)7bb9M@l2Q0WI(mWGkLVYUSYC(vc@z_mZ6E!tT||y%-CyY?ZbIu_3Z8 z(qVQ4=|MWvNg1=HGyMy|QrT^PW! zf*A^sI>(_404h@?wV1S&-MVn0b9M?>$rG;e(NnlF-ak9jCTaexD)4RTgspwV6#}+N zjpdRVXYmu9X-0!hEa!3$Y+i(=nj@{oXXpQap15QQ9YeUsI&->jn6}32ubM`>0_9hW zVevJuxpQa^hMMx1<%!)xJ2VLs_a)mV&U9WNT%n~2R?_nPg-*YJ4K$7CbLQbHp5Tem zxdUBXB7La1u&IOotmMX8*IFEHVoY(S!p^A1xqBWAE;84kI3fQ)*LsMIDrc)I0ILD( zmg$?EcTcO^a{fn7AP!fD~;G&wym^{kvy`M=COzIV;KK(7^lyWNSjC_ zZtrGPDanDXDWvpE(NP5a{m9nur6~Wf^{Ztj`_T0_7al#>(|Kg~VBdiwyAR#md1FQ9 zu!#~RWnGyB(@MBKgITo;`c1R3;mdTpy9Y@-gH-#FRREFIl+l*og7LacC)-KJ6YPl@c-*vaQ0Fi%zaPOC6I(SO-Tjw$;_2$R^jfB4 z$X3#S&9M@K8kj3+*3hB;r`=YzgsogKoYljjlO`SP;F{Xx&atHxJ5W+`)O!t{vgpQE=PwR{=qRiekuwydziI$3 zH9#(GC@a*BaN+JE{dxSXtQ=4QSPfVUSO-`S*Z`;kYy#BQv9fwZg@u|@NSmk(*HeH7 zfvCy+Gd7VL4uf&a7D8=!LIwp-2&%&$=e~Fr;5@SsC&^x5?jqWZDn8nbvf>yvqiPB1 zF4js&cd=edx{Hlc(p~KElkQ^fC*8%)0^ny>hJw?<1rDe!k);OMU+!wy8uj+CQbl)_ zQYUrp)=7o7QYCMsNc6zEG;Iax8#0vH5UCV>@|#K({!)GIe)7kD06Rffoe4$02h7!H zW3C7n{U)D%FaohB9(9SE8rcWMO+H*wM!JW|YV{GylXU-DIm?WZC@f(p?A@TSe%*l2 zZm&`b&^}QlVP8TTaM#D&(Y4|Zb6unMgj5+Eh1F{4qm4k=t^iHCY5pZrHc5>IqJ|h~ z=!m+b?yBKD2gHP6BMnkZYVUe>Rtz@m5CdnUo~TC*UKWfH5pB4RBDh4XWcQdMqlRJXVrZG)&% z->ntZBkn;|sqQv6sz1Te2NAha^zs@mg$V1~`~hsw5jbGj7W^ZI z8u~rzmi^comm6OAo8l{U@inQ;=3sME5k6Yp^4OKMwwJ^EicN%LjVAfg@+#q=BOLaw zEHv@n!v<&pm!CO{v3SG zS{}JnL)8l4P;oifi(lLn0}6n`fKui!1FQm60@eVmU5%mRxF6`%DR(v4;UHP;a9|h? z-$BO!uq(rLkn|46k=@~JSiZyg03jS?mfnywO8sZa#{HI>G#n7qK0@k3k{ASODuu;Y z2+a~?RtlEJz-!tP(!y=mRvM|b1%r`4mKwK;v;7K121-&#GdlPxv7@onHsO$uDot9O zY;AEi*{DHePFHlB;#281HV6m+yHCvrSA?z`!^6P&hm$$5rjf8EBH+o;BXGblhNdt- zRwVaD<{^`I6krV-e2DIiN|;T_9b_IX6B(&J45nsY3B`pbI%<|kABJCt%i2pa+y`g zWhpvt>^rc#^AJCLWcR^?yL%j6yKn2;eaK_|3?A;gZMTyA)2%G&T5exfCiI|NDwmY| zRhxfOyfR7^)Suc|CY{U+Z+ez7W-P;4jv;E{Wc`Y?wk^wVc{f;s3AQb~KZNCE9i(Tu zC@V6%Dtl=;6X^wtyo`BcOPt!~^D<1d6&Yt+oy?J1ogmLMYp&fo;HupSwoq((^9#m< z=_b;;sSTZK(uPh0PBr7VS)Uo7Iz^Au#_;g4c}hM{>*S=zX$=m*X$Yl2Cn$94ykJJM z|2X(%q#jf5GfAf?6k5Yx(a2Gf8iqPOXx}!Vpm6RM`MlLOL4LL7L7T`_VVsB(z4mI= z6zss-6eh!g9XMHU4z*@^WzEq3Z1Lc*619a^^4TEhiNo|@2XQN{cBQlRc2dM?Hy=*Z zgB?!1%kt=r<>5x#(+f)Sl6a=XKax*96DEU_iFBParc@v9y&56i>j3>+z#&U;Mz7< zkH)oLoCTA$aP0=JNs~s}O&lhTv?H#=w9CYCsp9m`J2_rar;*wH-S-Ikb zD6w-rHYBiFv;ohm`3*1|;=o^ce#55fn$4=i>9}rwLo20Ha6Q|(3(yJZ0(1j*1NH#= z0Q&$p0uBHU0uCKzJ8#DCF}8XQ_WvcI26ib$Sc6Mxfi_^HM`Mn%E-cU-HhK)^gpD2t zb5+oBtGkkpTRjNt#nKJJU+pDA0P9IF7@b(y^74Ire!2A-;Lxn9dM`g zuqtH)Cj%O*8Nj`O5%nV0{>=kgl{%uqCZbk5pjWx8)F-Ogxe>Z3icsCy`fH8@QY7G1 zw!ndd(XB8nZW?6Q@GwguZUo1(PgHlQBV07n+Qgi?(SWZY2zZhCl%|WUnBh^P;!&#M z;n(pfGw>*PG>K+>gG%Uz2j9>saJWjrZVk*<-SES!9bO#^CN~QyqbISoM5sYUt3v1w z%4CDGgN|5v#F>(X>2)$X(T#b<^+?>2jtdnh6nB^CToG3_RmAN=T&@@E#)BFXhS3>{ zyoaoF<58{RQKR9pS;wQ+*n5%HIq<0GeK>7&;<3fG?;_jk#-q`515OC@@My}1N%F!1 z9IrMP-gJ?Lym+(}9TIyN-++dW>t`F;6SG5(CHZDpZ(Q_2(*0bOhK@Mfs3P3C6gP6; zU1DF{LEk&i;@)$dlhXyKN8GRoen8xDHtvLq2>9eJ(K|mIcUkZGV!zcy$)N%=lg{Uh zh6+W0yfEU77u06 z^QuzMq9{n+SNbr{p6FJb(|~=@zg5vQxVpS~$h~>UL;VBm>8%WpLN$uk)?yb~n~sy; zX2ZP5+8xKy+8mFNa~1~HVX+rt@>Q(27J(R>y(9EeQQ@Pxy!%h zyAK>W)VKSv;yQR}_sxSx`u6Y6m##zoM>>zd8j3URnE5{-D3_P*iWFtZWpS!nL;wFI z<+bVSD-oQM%1T~FYb-BL^Wi%i6>7?`EcU+bRvk^Wtcg>C=ZnlMaonB#o-BJ(3$G{hc|} zT~2ggo9GLMh;|}+uc?K^E!#lILHu$hf!ER$B;w6#!sc*Wdzu(*>j)PtZ|XmUf`bVj z@G{y+j?k}xhRaZJ75V-Gf1U0Ix57GQb!W*r1{?RPO7|I5116%0ic@jD0SC7}tg{>{ zcj$=24_QHVHFvw#6oP_NYq_VMs}1s$1NJH#IURH~aZiYQS`edx6zoEmE-BLOjLXHP)v6#gC!Bx z)&bZC*bdkMxE`1$#{uC0~i+PWB#YmzL( zQH3PSoHkkJ1X;$2EYm@r!RmB?$TBA`V-RuENEC*uYyw%P5?Q9RYEWTnHE6T{8Bsx& zT_Uo~q1AvaV`+lSaMS?<_B)crC6@Ck|YZr6>6(!19A7RzVa8Y};(B6|t5d7oQN6YXHardVAc@}XtGPr)OK1u8GIXIq>!8gj(OF-wy1jT_p;!wnI`s2Rp`#zM|SAswN2a^{Ppk@C2wioF|TRu!~=<)4#LL3&Uj^Uoo>a&;Dz+cD`+ z1R4DEWZt)2yJ)u(K^89{n$Qhe%i#;7vbSIRn>#X%Wmm}Cg^vd87IJ5sW$@bRL{~IR z9D~LHiJ`9te~XK%$cD&9b7L^F-dryqbTw!sfDnt&*a&TR%UF+@&2;0DlThDopIGQy zx>x`5C#@A3sfzL~Jx6}G-nHxN%(E8)6@&Xb58bf)P59{o?g)Q zVwKEV?8@YPEu0Ng*dcI|auOkNe)zVBJKRZ`7a2OXxlp;wxgi6cCTZM9jI2!-DgBWy z_#ldun8peXYg90BnA~j;Z?Xsq`3BjPT+?BC z8|*QyLT6d+M(s)R2kDV#n-N3nP7K4ghs$d9L&xK3S1j$Sgg=c%4?Jv6nX4acp zVHmy@mq@tXGh}+b194lCk~`bg@W2ITJlmT>uu~?7BpG=N!mkY$+F;SlYGu4O<46W% zR4^>foKY$8ii^&8wl;OZa!IzWV6F@0ZEFv=dF({x@NH^`^*E!c9T#9A*<>Yb2Y|_j z05H4|kR8tOk|yqf0mwpIIs^L~*mFaK_Li_KGfpv^$*5Tq%p!(Y-c!vvL6KJiJ$;>$ zT`di303}@etOS>0Lam4X*u#DVwVa9JXwatA^-4Qbzz5BnGP z+y;_mqlhJO&2auuY+D*ywfGlKJvv$4!zpJlWUcwDlJoNli{b?rdllmXXG_DcDGyA!J`-HI|fsOPgUz zO8Yv6B%)Qu{e^yB=JUUjm8%tM#Ureu3>xO0k23#fa7v0B(Qc2S<*E6{?SnkXZOL=n zHBx-5fK*>Ninv1>3sK9+UWmF%nhdE#3~;Yk;|F^jJYhg&9e%*V4sf=fvkhcTgkg8I ziL+|XYB-ZNMOYmNKan+X1`)5VoHcSLH$SYIvk(U>i}pTkWL5+=MKYTp*3DTDXS+G; z6jzg6o#X0huD+P7FXieP z#`(RtaQ-T6*j@{OZ4mYKfCtI8hx!&+0(lC*?+1Jk?vDas6(s)?c>gpkfqV?Vp9R1= zi1C;B{Sv}p4@8A6ko>Q)ZFKahIrB>L!uPQ^GPeH#)~_B@OWNk#YoSV_nHTbX*S zq-6X2+hKeJ9@ovkgFMuo_pv7#JIl_IXD8I}vI4amUqM9IVf}dUqam%59ymUQQ~T%tf++=u;4C;q&XS|h zl6nkqE8uo`m)uU?wF7Y04#*fW@{N(RdKk{?Vd*?h&g0}PxD(ETJEe1+oa53tMb0Vd zOp-H6&Ncs!wl{&3qd4#WyLx)2XZF5#wYp}tEA1)meMtyuccn!VLIX&M!_4j+JEL7# zX_q~OHxmBX|8@U3$AR(*Jv9Nr~|!F$+B zz7d}jUDw6Sbxm;D!XL3TyAF30cMNwNcN6Xw+^x7MZWI^8C2&bx3YW%><0f#o<0f&Za8tNDa5K0$+&u11 z+!@@Pac{xB4fl53g2KC7ynDrahj92L_FGs%&u3s8;2JL-1i%42j8y%Ap~sA*%L?$%l3OhG4d= z-alxB)%yKIMvdAqJc!AMjl)Amt=e?eAmZ}PR}H}?89p#*Y*RG{hKzc(<)D~+s699Y z{bSvsK}LCdG8V-x$hsMK0MyqPNW)L2}=4*za-fKBBh~bCr zM}{EA+YuSW@Iz~42+q59#)5rDPOEelc5(mQ*}oC2F;FX$4rlas|eHOu@W7j#F<_d zq0Ea=(i|^|mFo!Q&K;MDP%gBE6*@wNGqWlJ3X+=RtD-qxalx5GUc|1Op~k&BXP~6I zLsI7qmiQk6Rs@jr0TnLe{Hj=y^KO;CVfN)Hl&tSj!(D2jAZf*lmZBD1&uZ9G@#C?Q zCFdd4z(M&EJn0fr!M2I>Fh__9G`hCV%kLv38r|VMs#+dbnaB>41x3M4K?yfYUC9)D>TlZqBTo9bt_89obM7Y z=Vy@P!SoCp7EI47hw&sC2q*1u(hrYw1~n^8Ycv%zRyD>N>J%iu2s#^MTVgfOoh~7* zt72Q6FGA5AtKr~FN=!j4I$vg{K_^%|=K_5Z`9!xkkUOWhWB}|E@i$5Jv-sM+!&eoF zU`XO?ssLG9tY&13^K~VCrp5U!;(ew`h}IgHxWgmE+)`&e&!rNE!)S~1O_go|;w()) zR^@z4g-e5^QgtD=A##(c6aGB~r*Uqqxk;K>BguXniRV*1%xP%#N}S)9Hj=awA_Vk;{5+<@kUjpdIeatG8sZg>3-1!BwXJE~}eZK_xaly!fs(zK#PAblM6us>G9 zuPUcNnv1ylU9NJy?0#ujoL`XG1@|u$G$ri|I!0#s{#d!B0^Qd)B?mUrta50aW9yvn zDPbo2p3>Zs>n;Gieo^soOH|s+iuwWEt6$0II4yac{2QDhj9V8lKwo98v_~j_9&i|^0ed<04`u<&^Gzo2A2nxpkq$DpF&B{rS z^I!TTEhoLsFZBsiqYyNNuj-S-a&pUZ_HqR#|z+U34O$QFSOMP!oc^LEq*Sciw#+&+`*4D*9_!vPYmCx4mj^O z!{nADxdBPgL&oad9$QJ^!)^i}HbpHm18wGT)Fg{vk<#W$O&|2`{|!Ald_a#BZgqc! z@-N0}845pco)clM1qV4Fj2If$&L_;_5hX#n8P1+C^$3|4;4|3lC3taC#EgwDI!~K( zOLMW>;h0a~lJDo1t*>zl%(b63TYZ_urAWVkKnf)Cw%3mQytx&M{cP+)c|4S)b@hn7 z7imY*n!c{by|3`7a8edAK?=zz|0VM?IAPeA&FYLu(Ji6+s%Lk!~L))CM1fUsdJ-ZZ-ZEdB%$1t2e!O`b~Ky&NodVosJ%B`E8YX zqUD=#5X;B4e9`%qsmBQ3PqE1qL%3w$qhc~B{(<>9Z^)I=mk1>!ty#s1kn8-hywlQE zL50o*2`ZB>%O0;xOvss$6k=_uIbIk`WSsAr!%3x8P2iM%31dWfQVD$WUp8BQkHSg8 zc(n3WDd%Hqij*r%QqF#pBxUR_wR~HR6q0skB;WZfGRf!G%2l`4I6szKt5yYV!R!)2 z>sAHTI)5WU)vJQ)oWGZ#^^#}yD=c}&w#4e3SIj3e=k!pP8L4v|@~tD^Wr}s`r@{HT z+`dt67aIujg51hzaDGAj2I6m8m0c5-n25jm()dlzzZ1WS_~BLYo1I@u{F+PSH)EIy zvRC47Srvb)bB~YswU@@<>fGzYk^%ASR>iNvOcU|9UK+p3xu5t|#NW0m{yGde5x@S@ z`0Ft01RpK&mpRm_pK9lQ62I}%_|?wC#IGiP)2j5>WBZBt&6mbsj~OV)Yl+{oD*guN zF^RwZ()b%N6UE$>_?kys`0pvtChSEKzxC4io1Bjle-rVS`Lv0@+4+RTZ@)DDX6Fgw z%l=Krs`7-LCnbL8rSZegQ^XGwziU{<`-?Q-a~qTfvU4UI); zT}@czZIPMTEwT?Qk4$e(r2jcGz17)>tXQBWw!2e>h3~lRSl#RjRn;_5dy%o4b7#!C zvxxXX6Cn{kcy*p&C?-;}uQ4%J;q7<0L0T>-`k^kGBQUMaRa*k;P;oV;5-J(MX8q*Y zP43UlX8eqascn%~`vHBN>R5sB1`yz~p<+Wph3NUFP&``#LNIlmy2<;!*^6;=m0Oe> zCH>`s+=z60oqi8HS3kRp18H}q%Pv^lpB$f<9J3S1xc5!WnA2y>>9fA+*)zDaz9hd> zv+cMJlmE#xW|F`=&*09gd2@Q&96Mux&xg@_Gafe+33F`BoQs>ub~D)#MAcUBE!iAkvUyH)Z*LOs<{;93 z?^67XdntZ~OYt+jQ4x@K(>Cjksd3Qqcwt@tb zHX|Wxw-(CeA;K4t2ST`)V$%`()E8awk4khOL=E{~g{R#8hU5HB&6KQuSG3c*-i|lk zDp<3DD}|iZs%y(MW!b$pO=9R#C9ckAO-H?ixp5gYj1PqsHQ~?b!YPUz-hVK2| z>;`vSuD0FA;Ro)On(^r1)|87*8F{U1QjLQ9y4-zP8o9txy|eRrTjjva+q$hTw##zR zAYzjN!r3|DeQ3w)>jU`I(Sg?`N4=d{NK;Qc5cr;+o?y0wVAnhPtLPoI$(`2(BVCww<6U5Sb z0XVS_U~RI^&9)h~%^KU>Vx!S*>OBCnUW|%^XEI4`$Ts(ZXUbXyztuLQwuvtHsBOh; zGbuc1BD)_CO(0W8e1FO|rvyR;AKD$ZHEUaQwmEN`cWPENMEY;mQvC%Lx)1bHXkz0| zAob>ZxL2h5?}y(Fi{Iu4RfyR-%RoYYp0ER-~YJhDxrt$k); zU)-oX%?$G`Oery-)b@71T6gi?F^z(|6@)_fVq~13cep?Abbs!5e;#mu-sS$h+x>aa z{duqZ^FH_IVfW_|q)H_AsC)L9QhW9SobUGuhglnXOHF%?UEs2I>^1nrTJ?L8<0^l{ zUZWQMwkx!l6#*+^R_y2^X5ApF;yG8kKzg(DIv=x*p6i6z1JL{)kt_;m9`vi_vEc^u zeAe%p@YP%|04d7=rsP+60Ta*m;RP)KOCkRaaG3{=qpW4)9v3)|XXAqB&mk)bIL9&cln${RvVnf5b2tbB`jHq! z4f123KbHuc&!ls?Bqj++2b?!Qq@XW&s32k91^5#hE-<5o>B4jo_Y|MYq)WIj7xJxi zDK;*VQY3O&#xS+OG9#dLvlw$vb7-z%B;O1+0l^fY)E!BB)c1u zJq^j;hGbtuvR_mV#sKImJimz-@ZmLCc(xy}IdD68eH(9k5N}5auQdm+Eq4+Gc^+Oz zK3-?R+X0Uk;&m6{^%UckmEcvB;#HR6m6zl7R@?>Byz*TvZ9*6VrxmOdKet-^y!G$H z&)*<^|3)FH+PO*mU7J6Ee??gQ-8JH0xkdavwcp3zTZcV_6bOH#j2`Kv7l+r;Y))L| zOss84w=H_@YEieV+j$8z7~TV|g*QOM;3XjZgXc`B1hMjrbb&Z$J`VXit;yy#gF zXw!AC0=E|`c@h6g$ZQ=K3Y_^w4!5vd0#ZDOTXLK`69o^;m9yZ~*goRQn-jTQ$#veM z6U)~YOE8=|3!Lrki&CP(Oxi!6q(Rv8N!mnkK3Seg2j-I%&Rx27h5)P&SF2X_+0)5N z7|IfrkCq@HaPCHIC7J>Es6=U^kajC74#kj=CCc@w=ogd}brSPF_`*b2!Fi_}HBpu* zl1Av>aKC#)qQVW-w>j^^JfZZ$Dn!(YDqTQC)Er46od@Me3W}JTBVE{sL@HUDs5npR z<+_`$TjH8@(&~i8k@V8_h_DmY5@~&+jGnlTPD$_vPD{^ofg2?(NZ3YX+~_=bDLC&} ziIU|+9=Tj1n=X^cW=PI-C2mS=I-l5_*nIwp;q_`h8D30pNN-H!qCA3OV5+p_%OZCk z-uf7}X;h*n5z<#4Q;7|U4d)XZ6C2Mzkq9Tk6t5;xbN*bN$uS2EM%$bZtHidtSM!jD zIlqE5jUcgt=zK(iRRO}`I&$3RJnoic+wdlaHIlD&KB`EwCb3P#IHgG86E(W5wZof5 z>!l2iG=08N>SlwkuMKjzk;5k#u;!Cnie^NFba2~wy2YV-@vm+W|8S%D*EBtaf23Lb zNXrZO*KQa8x*g(Q-zxsmHnIMAtX=#YI>bNTDgKRJ-%=2(0Zpu-ETyooF-*!~nXs>w zQjYm#J+Hcq--cDSG@oqr3cW!WvB`N-B^so*_+OuBq#o-N4I;@ZhpDaZmmG6tKG{s9 zdO};Ar&Xdk(R{wnO0=Ap1|dD+lPXbBXB7TGUeZn7pQ3y>_Xw5SExqEusShf*Pq~#< zq2F(h^9-rb1KABo^w9r$pn4G;-&RCpH_*UL<@(#iSk4bzkSYgZVJ70HvI^F z9DGKkpo!jju^*J^o1ahiv$v7xPxPNpH0HCD2Jf4W+o;3Nk-2`i>z&W4M3cUt@Alm^bCeRU(j88d$cNDl@8A*cSr|s6|c?tg1*!) zCmrH-ir2;722H5+3Hlhj8+4#*swH5OHeEBH+|Fi(+`Pm2ZGCeqyBPY>N*{J#YQwoFY1H${Zs&Js z8v0WA@D|03)dl-ql_>K9b;HKsw3{OxcD=Oy3U)knzG3qHeU<2zJpaJU^AEi|zoQcC zr6T@VqIMKW)bHx3?arU*s2yxxxX+f+QM;Tam1s=tNOU~GJI~+74d2VYls4W{qBZ+o zUQ~(gZkLq(Mm8zDSJx%6I2i2 z%YTH>?TAwCGI8sEix^qiGl)RsiG@bLUD-Z@p{yM`tJAobrIv zfzjmD65p{latJ6TS$ z_uy74RFr_&b3iYI2ZVD-Rq16(U-+mHoZuDrUiPE%N<3cZ^t zf^MwU*~r5}q8E)2R3hZH`v| zM{UT&*jTw1udLI86+|jET8x4W1px)XNg$J*w%KF*`fUrCL+X%Pzo}+>o2sc<_khaFyBhLx z;+yLiju;l~>tSmXM}ZoS0yP|=mZZYLIytJBqk1`NlA|V$%ZNzQHg>hSOwYaUgZMX(pBd!_O zg4=;>#kJ!)a9y}=TraL~w|V8By#pK#4yn?8YU3tltlPrqXc|lpSMl{3NDP7oBWKV6 zsbqq!!(&Vjf|(;;;Q%5OqeuX63c5a@GNJ2(bEtF>NsLuGge1nVN&5ntw9nS0eL+py z7t*ACIhwRD7b1jwl~*|ggM5C~pi!s_s)hi<6|NH?T+zBAHe-vc1qfGCEkL-^^#X(| zTQ5MkawI*Ks$#$zC||$R6}zbfa_V&_-inhC`AjG( zu5)9x34DlGf&QFeinhy=h{l^4QO;3{y*T1?jy1=9OCyMs*dpx=&zeoOcv&byH! zk^Rlt>@CS&w!6swYI*umcd}A*sK!{Rc`*}HPCQ5>FUzonmW-EYVzx6DugJtg zPAXoRiRCzHcEi~IJ`vxNVGDaazCHtpZ9;a!Zl~~m*~1G-9;7x)04>^3Ora#xBV!k8NFBLzla4L{g9$8LB(+Ik$*uc$5Me_)*PQ_*^ zOe!DoQn6Y0!uLoj;Lg044(n64EFspHq*8G46NOk9lFHLwDj^np%}_{gW~G-+rEn#c z92RDzQgm@DIV`nE<#S#tIRMC@LnM_KmQyKSNhOzM6RDI)Dom%m+Kts_SUwHcVP*5H z8uJw0${MQWs7z+%t$#yu_=cB5E{i7G8aaG(IR_1haO*6O^$t0dU7Evp)bKWP_)a#5 zKT<6>xH;sp@F9oqdO75=?r|G&W;q89jBs6&Ke;zVqjj%Ab3w5LB3M5JSD1O0%%o1R`I(woc|26KFk@6Uf9kTAdfIwLZ)H{Vj<&Y0 z{@lb$_2kXE+hm#*IcML5-j9T5AlIF|>B(6MOmi}oIyQB9>dw^6P<$4fX!24}znqrc z@!4E?(ujL(vrM^&DmgS7pJ!)`iF~fUPcs|NhOTGVQ}59RN5?1T24+(6T$U@@S5bIS z5?y&U6=+A^F%SR!Ecbb_$a`fylh9jO{krP0NtHZ&5*=<(vhRP0b!dA58Rr+xuJtSpN2o z_Kq&k^c5#P?VXw}o5Q{iwEj9U(dy0i(bw$lKwq&FOIQK7g3-Zbms0$`?vQ@3f=l2W zl|k|QdV<-vjZP)@x5V%346-picH>NZn$x~+?nf7~Ka>#iZP6SQmC7zcdwM!Bxix!W z?&PG@8QPC+-6YG>t}lNY9`MPdr`Ty`=_%@xtR?aLd*MOjt#RDfLlP9VcZF%*5+hr$ zzhIJeJnG3CRz^2b@|K=H$BOExywYK4zw4hC z?e(nYrbo*-E0ucl+I4NYJ62u<6v3XhYv6d9F5Y8^*9zJ$y66;Y^YzOO$NL2C1OX%V zkzFIPU>c-gshLf$AMcHHSiMDax6z^uqD9#)vH`QtRy%FA z%T`y|q20FHV=K*@FX#&wdf}>29?=2=qy^|t-lCBh8iQe`?Z5=M3p)qp$r(Er$icjHobNFUr18=C?s}-NGkP zkV7zInwu9sC(~a95b3m8KJkEQamQ5$uRc=e*+eekw+vT-tHM>|dU5@@D{+IkeYj!V z0o)VQjxD&W>+-YL=#O!AS~!1R*4?s`ehZw%|;lcv%&sNE!!hR-Wo^964(|; z$YR$63T;4Xt`RQiCIPwxn@z)RF^%AMv4;@a5l5RYr!{Wms@%3D_7L*glZaOGI|dQ0 z6m$$BS}E)tM6^=WIfQ7XxJz^lOS*;-t(0~TB3dcy9zwKI-ZO}3rJ`pD(Mn~n=onV@ z4uK(G*C#rL)qSF4xV~R>3^(+Pj^W0gqGPyer|1}NMtd==!n=ly8dcMj@9FxjmMTGw z92^9%Z3IR4P@(o$r`7&gb>xn0q~37u zS6C(3ruTkKpMg4oB>0K~?(~YfQyJlx!Y{@)ps`kRhFc}^hZU)l<0C3PaNkSOyhV28 zhx63J;ENeH-oq$t1wnW(ww!&A(-K~DbPzEDN|VHh=49AhkK`cpd0dH>RYta9WBz-z z_F=RE0Yap~h&HlO9%(e#t*+M^hb;CiTNHLg`H{kLj#x$HLkCR*b){!ix^4bN4xUx% zc2vXa*bH7Me`%3YeqKd}lxSjU#iSB8Qq%p9mXK+ydNI}_J2GsjwyKw7VIJ)(3gyV8 z72lVz;`?JIv0*gE(pSX~aA+eLh#!;+$SlQ*7t!MSnu;6>#I{Jn+`I+(KzvuMf}Pct zdu0KQy4YLwm2j*QNx|?AbEL94UKwjkO$Ye*hw{fAL=II~Xxu zQTHJdc}2ZbE8<)w;LL9=(okMN!V+D;@9x}ki5Ip z;wPPdQrmQkiXL(PkBS_T?qSPSw;NSB|E5|VRL}9#RE)5$%?ym(llP;S0k%l-nFCod?X}h=C*~$D;f7 zx()nc{gU`FNpE%2cu3NSUMq6S_nDDv&DeFkdY>q74ettj&Uv%dd@|k^1qEV8nxy{nFBAI~FZQ!Kb~~{@?ZqzOnY4`ZWUScvtSGY- zO2I|J%*!p~{2J9nv0JSBUW^r^5o*$%K5x3B(_-|Zn&ZW!_(diBfqPV)IZ+bzXNC zsfjw{rA(6ypN+&_6g{Rzvjq8W^j1`y4&7>KCFy9Ci!Yjys6x4kJMaZf7>aF*9(MlJ ztfT23IxLsJX>w_?&ML=NDP!KBn~Zs4Lp9_4fH&vry>1d?gDAt25tGn|*mD&d<1#p$>m$mH<_Vm1La1HRIh>;oo^xSg}%t z70&;WDy)=LM9D6jN<{|MCerx1_Z}*of8jk;kjTG!iD+f3Y+-(B>aFW_7ZoPMxOulP z-Ah7u`?7_(*B9?4op<=$_N3LZ+;sTZ_|kn8N9$vit}0GAgJw{?k2=umSJ`Yo;!F1v zUF%=1t%HwoMe5*V%h`Uy7w;$AC%kO6T2?mOPx;b2Nk{8tU6k!JzPNAzhF7XS>^$d7 z?;?7QJne>+Qf5#r{w!KMTgc{lFPkkZRc$+8l8##|ca^Qa%XWT)yKHjNx>;`942W(` zNIKkB(a6*TjHp}7IL^m<(fI>kxJCyXMiseU(7M(xz4Hv0QJhte3M>5(b-*;G^ z<()Exnbe`EH9*jQXrD zxtE;enQ{I?(n`n3u0gJgjGgOZOoOlKU;EODbh5>tj>QV^Unpe4@KYas=%>CCrhm~w z=V!h{g$Ch7{TnYT#m_i@FU4<^$G*}{?|J>$GWm@a&@d^R=;{7K68nWux(nL7KD3{x zi2~Ha|IH_r@E?*&v!8jyH@%L{Q!tN^&)?Ou&vZ~3|8z21?xYTt8zaJwfE0U4;9^T+ z{>izG0coU|!N<9sPyC2*1VpQZ%(xCMt3y?m=1y=LzXc@tMPFbaFT}thThHNtkC%+I#Z=E~1s)HzljoM( z<;@iVNYkYWtSx@4D_g$d_^cKe7R^r0W6@zHll+NO(49@pv3Y@T9=b&>M3OWb-!N&d z*)u%6FDq%!SxNSdU*$?hqOWt2kts|@&LC}+Vz_k3o>(t6TdLKFTxoY|_HgRdiMjC* z!Xmw0Fq<kQnUY`%7K_Me@*hQw=<(@hf)6l_JawD4h^K@sJ}zaz=qt} zu1@gN-3KoK#$>xy9Cl=oNf^h#Rz^n;UT1roHY3JSS6=~-3)m_(;|l0J!5Wu(Ay|e( z8BcEP>LE8I=~hQ~M_<0%7$WI31;2@)p3XHvH=~S%Z3{QnjT2*Y;{^0|du`}IO60HL zuDW`WL`!doAdwYFb8;8D>PhE(+D(+v8C`N-OJZ>+1++TLz?l z0H`|qIy=$-t(_dOqR#_G- z7p14_it5UWDl2z|-8pv^)3dU=pmnxQZN<{e*Wx;t-?=zcf)omXjwnBga?(aod_rc2 z){|9hTU%{U<*8AFc3i?|4f}!iEVpFiMwMfmUHqUerG<6oPTRb~HV3lmQOoRRzM$iqP>t=sZilwF)5O>b+0^r?zX)~J=04cpkb+v?L$C8 zHu3QcfF`2CH-~vp2&sJ++O8thr16vi#2j!{s|K7w&1OBsHPc4>>=UAQwO=%az}?!$ zFuGO>FJxYYmW>ah=L>1`LfUt3{>2Mv>q6QO`3+_}(t$L@tQPRlbnwyBO{eurk7M+! ztmhs*Ez_Y3LWCX7N#`78*w{8`jt2!unp<)c)0#tKoLx|?A?IrDS|S6IjOHx~4@jO$ z=R-;X@%3S@EeDeK;uFMLO6M=0KgZQWOJaIKn~(nzWF^;=E*39IcRZfCSUUEe0QIohHf=??7)0rbZ4Qm(rg-Ocn?B@?hLM%Nw1*|})-w&UEXmq-)! zpMzw3_1_Qo{HmG7A*|TcUQT7Fm&&COg`m5s)VVL{Y6y4k3(XEqPE5--*2?yI?(E=v zI-Q!4Q16Yy@9zD3drCp}^X(AKa(EwK=2i zuI~z@xeP97*)i6}{)Wa=Nvw6AsN@+^r;-zs*Qclmj#8QybhcnL=~Wlcmc0Ekq}PR` zdJh_E)Fd>{Q!@p6OLqBmg?xMYb&1JycC9sHqI}iyez7q<%V%wN?M~t)(1X%Zc2?)( zlvO4J$29+dMo_TLItaL;>Z0o1;qAKeH13T~Jg$_=V-ZfKW;JC#myW1x8 zSH5^vfctf?SQWBrvsdsBkfr9jC8NqXc7t^F6|6eGc51eG)u}rh%K{=^cSZ$+azFc- zcR=qAyu)i!Rxgv5BHAtT@Gkx>J^%v7i-<*2S@_WY}YCor^lwiLV!vL zLh0&V@9gUA49eED?EHdufHpaln&F+f=RnLma@>X@0eO;gw!h|*O7lV7wDnml= z?A;1Qd{@3ahwLcpcz&$90T-G{-8pe;Oo#CJ*m&z`yTo|9zoV<8uQw#O>zwnkbRskP zV^jMG@^^H%b+)lD55$4vuC_Lt>$A-BIqT``DbTaV<;JRcHO_i1x>#RZ-7oTWNVeW| zo|-(}&&;&D3!nKmNcqe3eXe144qwQI{9)LLSYU>ogw=-|`h)0mZM%kf%@AkxyH>C)JO4o@nAAi{!TzIwBzOdb^_=$S@1}9 z*}**>Z-9(x@9jPI-$ll_{ekgnm-n4xtt};$ertO@QLkFFJ%=GI$87_G((r5bhmiNQ zd9$T8awJXf>8X_+yp8H@!89OS#pk^rLCNlWGiRqr>98; zJl~r8OB3{F(S{jfAlHl#sWDgdPy(sQ;M#%JlSY)Tx#GS+A(7GIj?J_;mz4VQW)#ZT z!YaHvdSkhRe{Smb6o!Ss;2e{qWqePL?vy$##COvDCgjE^r^n+iq^FF>IyLJePxxGU zz)1H;s-|f4B(Gpn>e++MNC%gMTqNbFPRkOMSNXxo$<&GXWCTo{#@Xnva-RDEb4}WA z7>b_~Zf%CYaO&jr+*v5s8C=EZgM5;)FO`C?g&~lU+J&yIh3Vv_XXvB6VX1sS-;MZW z@x-Yl?An4#BqY$@pB5SE+4=s(9YS z?0#^SAeN|3m#xS;$+S`PuBYbg_}G|ymMrnS?~iU^7UGzbJ`9|KR*FyF89zIl$2-uy zNdpdL%%2nPe77Y^lKMWEwOt1W^vj&J6EdGVxKBRSI?4bxO|#KmZ80qvN}V~l&*g?c zxG(qA{K>3%D2HR{<0qKFAp(@|*RiRcuolcTDn{#jG_mH8q!e zN-N{(Ib)uC><(td%N<~73K*xfCodPj#`ggY6>MLr6mMnup_{0y^yRxfbv9>g22DSR z{?k)I!Kne99V=WO*4-K3CGfApsZ+X12o6~0c9^e_NrnfV9V^$!ul$OliqeXTigguR zD;p|WK!7!9O8t+h$}cGY7gg{}s^WK4#p5Ql`uV`V@qb!5VGVL{Ocb z1F`;gJ6D6j0vZhFQtE>TQ$2QGudVus$K`%Oh6Q%n0We_$c3{vB?6U*IcHn>=IAjM7 z+kqo?;95Iyy&X7atK+u1(N;Iv>SjA|iygSt4vg3;W~;azNZ5ff8(BnP+*Y^Qf!poC zNjorQt2=BpW2;$P&Dnu@0gVOTVh7%42kx>1K*a*@z`?s8045fIdp`h7EC5SS0GL<+ zm{Z_kRI;`)huGg8M1%e-rm-{QeE@Z*hNz`+M9!;2h%q6Tkll_kWdL zG;Rm}g~NZv{U`3faK9wVtNbpQR1)qU+`YJW;O@iSk9(JC=e(QW_uwAHy%+b8X@}m= z?<2Sm;68}^5bjajhY?HuifNa9gyWCmK8E`^?i08taOZI6aZlntiF+3JY0`Vn1V+c- ziCuJC{z`F9HK_F?*LhSr0MTGReg%{K(h|n<1fl4C9mY?JL zCvfA!%gQ)$lVKLsnKu*kV{-i!m2->S@Q;v37$m9fm9Kfj)bL_6q8|p;){K8Yf z*3NKPc}5O*yagpGh@lD~g{r(88RQ9kxv&njjXHrZCq?(m3BEpgw?28dJ}G}M!k+T? z;jMc=UeO2e8a{+q@)#a}u;c%VT6o*`E7a~QaeHw?xc#`Ra0hW$mb z2^YnU;*z)&?gVZEH;Frio5r2S-HAJkdo%8>xVPgL6y81J-7DUG;=NP62gG}qc<&MK zLGd0E?_u#C5$}WIJu2RZ#d{nyiQ4@!rN&aq=#Q`!x?-ZB2njC0Ky=$mFeTtZ1GR~Q zb%F{k66*vdE;MknVT6qu@ia7WD;wL$dyNL{4&XIWhhm9fome7RXKaV>(`bdV%V?KG zJH*5C0Ncl1BD_`D9`N;us;1d1q*=Z`!4g{iVw=E^4T7Kw>=Jf<8)7Z&qd=*Zt3p=} zfG5n^GXS12cQ5t|27qG@qWw9fjN*L*;0W{f4}c@gA07apQE(OL(F4k;I5+@?u<+0T z7{a2f2fz>(A07ZhSaOXr)*l%#HmK6b00_deYX?9OmS3lg&DSd*WEY>La_R#L0DGT-#iFBaKkNPonYfFVx3^qo5VW7<~NCT zg7B?kouKAcu}-ihItZ(2ZB(oi)QyOBf~}*2SSQ#P6YB)^@jVzS|J|#vB11I=kt159lJI#F z7WRGcQR7fPFQOY5>GBZ^@vxyfy;x64_PIa+(-R)|Fa)$OsCX3amGDSobG#9@m9Vx| zz^xi#_{V|_kQ`iq#HW;i1D??^xo63Z4SXr}ZE%^SZwD5aFVMS0%dY|jLwOJM1R-GX z!gXQznj<~1{(n!UCl}Ah^3x}u=eVhuR^FHaoR>bOL#HHEqYz&Ph4>QBg8p85IzBB& z-&g57;&%w-0vO(8CVh%T7XjkI%ls%oksb(Ff5?@QCYXXV;PBF?v|Wb9krqIB(9`o& zenCytc@Oo1t~SPIBife%G#BYp0IU|BzgO`Y;$mCfP}s%P6|gF9e+IDJaKBne1G4zP zN^m=i&d>GB1fKN^b=yoMciU3+t8>bL@cO0t0!~+2aV9-;0K}Y-ifipw0oF)WOHLB^ zKJyD)3Rxs`qj%}cT#B|kkCLtYg0E{n3u*ct>={ zp&dqiCZjXk3>MXl%qk+ZgK$gF#I{G~1T>N3qkTrad;%1FScEm>PwW0GVyp{mdE>me!S(<|Av&Fg!81?KbLKld<`k; zw9ZXMV|yyw!}oE#{9Y&R*us7aic} zPt6Dh2lnfveqgrzp>qDhZ269A`6C7VEb?|=bZ-W%S!Az@9(R5ST{tfQ9qZ#{{39Lv z$2#_R6{iyW@FE1;k;77EjR?FaTV}7c|97RdKVK>Bzv$Bbi(5y7uwi2$#VgZ)>0ExP zbNLhH{8zS23qH3@;K+_sYhIb|^~n>w!zWKbneO#bCW=xZ?S%oGe&CB> zw1wa@0cQ=m!4=Mre09mEq}G4rbB8DA$G*tpl9=-oeMj^vP;il}B;bGhA`v5c05DwS zfTW}Wow9i-?dqQ?2XX$vw*V}^W@NMTk6^wwXGUtAS2(C4dW8()0=tvwf3A!DbBYKK z6^!~nOB=w#@y}@jFNs;5P;AR0!w}e3z^Fg>EoRF3+7j^>(l_2I?Wz*Im^!S}bN-9a z5#8Z7IKOmbIIl{W;Mbf53j;uUjNa_rZSfEc757;6Ex%Bak13OvcCQurxUQTkf51?` zC18FjBy)0F%fIWE^B-P;<+Cg7qv4l@BPteh9<&y6l75=tL)I`Kut)hV`A^-QAGYYu z8Rroz{R9+_76(Ncd9WI~&KmT^8}rJq*ur#W779=Fn;Qjz4;j{{pR?aW1E*^@RvEyTH9!4);Hy$ z$cjQ&Yy~R3+xd*;jyW1%TjABC{_ODK`;rxTM#-zImccJOWqK!l*8RS1;r)Kgq9J7T zS6^dm_jzfs5|SbE_oYr_Hv*D&%X6di9ZNdgvozTooj=mWWi0%zrN_eE&IPYL8>BM` z@*1MU>zwafk?V};QRfF%_zNp?%!pp^{G}DSURw4>nVSfJQCh(T-3lI{l-%(X zxx@LXm2Gb0y!ii3lM>rQo1|w6UjO3^OwK=8;rOSO^N&_oTce`My<$bKmDDwOS1eLU z>c1)dX1nvxJkEVkel$A202+Z;!nz{%oFw$GTpIpWr6QkU)Ea4Y{>@^3NHSrW)(AXZ zl6f!1BkrqK`m+FLGqHN-Za?YV?H5uGnW)|CkAO|hjMO{t@Vj*VHNu3ykR2c2M*=dT zlotOmDbo$>UnIqM`_rFO3)@~^ifwfslq4VYmmFlocOLRfvm(aB{`9Y5t%ala`_rFS zr(cZaFHtLx_#-dyb#Uj>AM!`Oz#Gbs9d{n{N4}`k(#Tfl!xUsI53(gdr@Id%ihdIJ z)ATOtQqZ}AetnFA;}!KhosKT&XF?uMT4BlWaQF)a=WP&a?XXH|d*xZOE(1`HX+|W%OV^>nA97 zS~}$C{psmU`i?py=8Jq)`O$HB!5?8p#-zpPe1VItzVofVCzj4LG4?xO^tbwAzVsag zo`b)SDY8!F%l`D&q3rtxBl&VNzrK>pZ>&z{>oOPm%0=mX13{MaRUW<0K(B-D_*&nX#sY?CgR{W?e*Lt@xBIr&a{*a#^{y&Tsq^cScYlDqzmok5Bfh#Iq%FD5 zS-4qPHov*$88g;hUzf8j@=dxVe8Qs}qHmD5;MoUmy+;*r$X^VuhO|gJyj!&!(a`7H@sKn3+ zd`|AwC#B8t(r6eCq(fmt+bN7~j$MOhV;n-$Fn0MQxQ2;QtcKusNifOQL4hn3l&)2> z9Z)5)avWi0x1FWgei)GBza!Chc)3Gb(+XpfH@QLok*|_0IC<~dc1cuMeAIL%51EGM z)#7ae$v?Ra$>%iSoLa`@>(ePYwNdks$N^_sPJ_+ypq%D7cO1$wH1!sl2x8wX(1`t% z2I`NG5&Dg?vz7-EgPbDOdUSGXP88jjG5K8u8fU$8`NG)$6as%&HVd}dU315-L5Ry6 zuqb7>EOlntEcTVV!)-gt1f?HNy4$viRQMEIVmqp`_g{P=FshSqZJ+qHnTZfglK`DS zV!y7njLNl7y<9H>^zz_K!9g#sXImm${8pW;pvEswL@N;x?pc3Wz9F0G z5@b5vV*UXe4E=pr4DsOj0{`w3pm$qWJCn=~47v-@yRE;wU_~3_2z3SqyrW}f&wXW! zQDek`Zg&Ie?&%Qo5q;e&wjw%uySszgr|`fTuaC*h`frtDrG86N}IOW zi1y{%KDY}sTcK6rS$`1I4>j88gN8p_SbV?|1C*>lsJGizE6jzVR>g28qDA1Zg<^ui z@H3SPAOg0_`9(pTtA&-SY8|c`w;s0%7shSD)#0|`8gWgyW?TzyN4u)(;I~tim50#z z$v5{J{20EyNG)Mc-D?2NHG_MR?)oqU;r?2=?yo=3{SD;n*ml8Q)USaX4PWy$$aUU$WOXHSizcqyoRv@k}`)yh@ z_>|#`J zVD`YQ`Z7vF8d3q6U~p=cMv5Mnh+bTOsrtv|Z+P4P)Ogjp(uZbuT{iEm;?VB@mt}3e zY%1PxbE%3?`DLSDqQu~J%vIViuiHlfWz5Pj()(H?j#hc_OaHB~rT4--LRa(!ZC@x9 zM13KLp3GO9S%IrWz>%3J+t(_;NSVGM3mIM@H=5GaLFv=fFTu8Nahv)Ur&eRz>-bce zG^b_wvlYd1M_V+I4zxvmX`l97__KiD-KI6kn4p`MhZ$&{2O~7wDj*i!jL6t9hHV$B zJX^X9Ezr?+O0>(sZe5<7Rcve_@BTGdXN_9`*5M(e!7~d2iGWp@hTJTaax%4=QjG6| zrs6SPtNz^=)Z5<{1UjRmqOpS|pzMvE`_RGZYRk!9mGl0tc0nn*a0&|`U?2gfPH=lfH~niDkQ)h(GLX?!VzCpAp_>9NWQOt zL##5}s<5pp+p4y$4Ps!)3fmS+Ms>CyJ)j2LYO_ImSbSf1*j6VH2&>z+dTi@T+uCDW zd+pqP2({^xR!vQzY<4T(_8qF$DqCpv*)=sa6%P>NhW4mhyK12|kV7zk)eo>gBv)L& zx37Qat}9e+&W45ED!+b{5Y+5ZwfW(N-Byvr-|_$ixY@J@hE#1)-NK+`EgQCZ#qdkw z%5jyrb-4AojkwLY8eA=IE3UCgl{BmM8`uOlatrDCCLeM>;(Rwl!p56tuo@{eiU$~u zj1s-A%V!x5-ZI(P^_9yf+NzL^U4Nx)>;|f2W7l3M8@s`3+1L%q@=3bkk|O@j^u|nl3qzw%%*P(RIJX{=$F%wkBrrtY>*l#vR`XFC%ZZ0< z-vPuILy{?c7syZc#Wy1#jEC76h}R+a+%F&d%VqB8zH73X`)znZPPm!(%A+FO!EBFY zzEfmDyMz+t3NhlnJ3v`P4sy&b%Q4yOgv>?E(h48Pp`5@0uHGmm%7KAn`GRv(WGlcR z=Vl5NSXCg%nB3Y3a$7uGAi9IQ8m7KbXdzz(0S!yf+udw$mz~mR{-J#10D-3@xBQnf z61eD0MYiEjlTYw+`N)d)Og5j8$e(XoRqF%t%=$$S$}sq=KH6X7tbJ6|B$ch9UT`&3qXQW#GiwpiSBA1>K$FBwhL{do zS~)s}(!rVI$wn4l$TTiwoQAl%u;?_#eHWITrnq&1)=c}NS(w6=(D0gf(ryE8;}1sy z7V-78OoW@OT3OI-WkP20jWU)%GIR5m4B3xn>ru~mrPOhDnNa60wRdDA?OYS-E&uJM zK{j1ik9+&d=}dB$p7gh7gLbXXnU|l%HRpgV1Ab@gR4u>iyww$ci7J~$g?m%eH)3gAs}=XULk04Z zPBh}%`g(F%Acg4Lc@+g!MF4!)SE-84P|hLS2oq$l@`UZk1a_dA%Quap zxMA&tbzDf>gjqxk5QmuCqIqILsV!QNE@%_8MQzdCbguUF>TctB&hql^1t1Q37|4EX zTyrC>$As(@^&D1Ps730Lz+7keI`!WY69V~j_B^i&XK$Du13C}to;y;rD{P}~N;}u4 zbh*W#jb|xy=8dK%D+n$8K0vZ9zfMsN=5trO|FeN%TXvrUJfGMJf^ko?h;FqvX@ zW?JqoUOofi&O#-b%7gcSYPlvpgAJKn{Uq*jDRz3em5RGYCm^u`qi99Wr~CsmGx4*p z+jl$R3NIW@&d;D;FsD<+@NZ{Fe|J^|6W-&_p4|A@X(@yhjkRV+e*v(4d7;@mdXZ4r zsZ%;v3yr#Vl&bW}HBPket5(UeAM8e4w+D7^{qb%9o-cyQt4UZ6+aod2t zR^XD6P<2{WuMiEAp;ZMfWXM^4E=r!7Kv&-^rmGL`E4j38V2nmpPROL&d-7J-xsXN+ zp>$7gM_*C)Lbmz|?(ceI9XMZPtS5KSh?a)r(knZd*X6CcHR4E9wd$IK6 zpE`AQ>TKD`DJUzZP+maibY|XVI!6~_^?89V|8kGf^6Kg;h&Rt>+&2A%$&&5=4@EI zf?u1}8_NMgb2LAy`s6g~IZ~E^IX}v1u*fIS9XsWhpfOPk5>61f=S82%FX}L3&`ImI z7FzCrIXXl?j9W|@7J}K%n4^oPulmPj@bGkXauf3jRN;okp+mM$Oim@@lQ((4H@kD( zEKhn+KF^|#l%GA&sksF~G4xI$Sivg$iFwgJn+=L;>n!>@o;bpuKc$PBBhTdaa~>~w z`%T)vdDXTD0rarIl%{o&PD?MImfYv0*JTZz`%`Bo=57v2@byCEqR(&2k@G>VawFAt zBBeEUMAPg<%2n9Ww&gK2ek$bl*~!#ch_j=2?Bh-!gH>QwAEFZ+pGlmht5WHA2DzZS zth*$Lq+NDxbK(*`onp7!>*{tNGfR@aOj+$J{*+zXk?Y!mN4;;&TJ~{tuk>)XMzi%2 zjUe={q;f@Z`C3gMlzV4^x%y87)6)gZM_R^I%J2n^l1E`Pcvd!kR$EI5d)oV{+1nvQ-?{UM z)~O;LjIHSwUc8)MHY8^(mDN9U_5W0=&=XpPnE4b|2DCa;(0@F5W5tJ6#k0ypSQ5(d z*|}EUAy$)ZwTJ`@B5SoucS&SfePZNF#90HjHDs&(wi>q8Rft4v>xgY#Yg;#n z(Ca2U?`GS&#m*bCeJR^IVcX-jHDOz~+1Bm0H5odpLMK#coMqcd+dgII&DqwxZJoBQ zJ8kQXZJo8Pdr1Y|BeH3>NcOLg7voxr!3!YJ-$07ecLJ(?9_Gi@wJza)bm^ogJ^yP8-~#Q2sMg%uAD|O&z0LW2#0iDlbGkqZx-`h11NVbmo41i`~L3Bk6oXMti zLFS2g0iwl|pgg-`Mb31(tIl}dnHD@Gr!$A9w2q?nCM z9N+q!^A>r8CFiXz(Rg2nKT!N9q;Xf#G0AeBNZ9&~h4mD<7Ky|=5Ok%x6Ce+@52Go^ zKJfv6)LHt}ul+!}8)@8dtxc{m#Y5h&(p^jOZj!vqeayR>1oqb$t>^MOf)|J&Q0s2V zVz}OXwD@hHEH`ttI97_0?8s)HrohhD%0sHCR?4_x5m*Sd($_Nj97iIbl`sghb+tUC zq+VVEPpcry)-}D(xl@Wz`Decrl@?zx--E&O%3|`$;`)_|d?q1s$fU?##}GXu2lhMX zbQ;l}Sj=iUN=8eEc3KNN1*(Vj^Q2w$ZmDi;%TnD4g|TW(!P3xiONA$_^sajd(mc{4 z1pW-qj7j5`qg3GYs^x@4z=&4MI0sj7^#)&D>h=XM5e;|alDt9!OW?SQ1-br3mEKM8 zm61KHA!B(6bHAj9_ripY>4D;@S6`)UIWd1SRMaem!|-{nNUQ^pXQv0!gNZ7mFz)e*`m{;s||FO$qIqGyK^xrsdY$&j*sQ$_Zxj@-QBpK9G8%g?I$ ztlRW&kt)1Rs&GP@{*+YfwAAArHr|X>>udl@<3tc8p2)D`4gZm9DnT*@+cTJSsV#Qp zL8SkY((v30#Jgyxd{;%T^3hmO?*V~ckv@Psc-$fd-lX4;64ZkNrQ%J#S+abK6yvQ@ zg11Ro-Y)sxCB;}!0sOmxJ-njsQ9&cR4Lu*Q>)X_V1>EZg!k}IpltSp&_o$TYDy{VM z68acax7fNDwVx|t;mu_Y*d5FMD-yjeRvVu!NH=<62631!#*eecSTB1)BH! zoO@?9vQ3=-+fV<}=iGDV+;h)8`#tAbeh<}X$zt0$I8-O(z@TLX)H_7-l}0%vbHn|y z%rq97AFJ|=h=;wHT=qhOg-PJ1jB6f5@Rs z)N(9^Cew`3kh)b=#ePH2+huy*K5BUL_D!hau*fZT->d@^%rO`)zvUO~=Z=>{#p7kT z0SR+MchcHS2n8gNX5VdyuEsFzmnV$97TuQ#4X5N3b&!DLUNBOJkQg^)qFppZo^H6FOhMbO zCsWjspu2=D7&mi%1s;b+bVa>M%kaJ#p8OT{7RW)m#hX|LK4#QWGCNt7ta2|I7pGrf zN;=5|J-A0^70ek~o|6aW+-HsKmRxqr)Ah#SVM8K5Wn^#4WpDB#xP5_9gTVWzjZfmF zWOHaYvCcaPKn9(%PrdXKHTo^1ypFyh^m!wDq+VS}9Z4pV34VV;fW}!GMU^GzK4&2F zu5YB#(-7$;VghfgmxErpC-llK0^M+gGFF1EM_71c(ztW(pODY2 z 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%0DS2IiFFG_nIkGK(RX`!X;#S<= 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 H_wRoI*g^$# literal 207083 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 LUn{46}rMBYlM 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%0DrRvii;4_#leu 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

K%pT9V|q$+ypb1zdWJu+UX>k%q}?AG*t;Nq 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%0Dr`+i+e4|{Db2T4$1 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%0D7g>|D4>uryrHirySoZ(4 z&6v8sAVt0*k@FyR6_qAc+!C%h9W?KBBhxJDyTrp6kDY6bF$;`vaK(YT88D?)_UwZ~ z{qy_n9|Tr_BN$*S%8g@z2wfJQQ7AsNvKvxi5dm4ZGr+;WleN+fD|)jkMk#rx0YS<_+U0O{a`xe^+(NJ*Bx-jRl}`6f)@0@m|z@_|os$Pbb_Je`!YA1gIQh20k5YH>Vn8A?WfZ9KdV5hm%aN zSRZAz^6R@LQyot?lD9l_$B=9Mob9mHM+DN5gmy39^Um;rWhdzt23uPp=SA_m44fbY zK{BM{G^L#s*}xqg_`PJFJ(HshaszjOhK=nJrDl%36w?X^8t4a|`al~(2M9`ACMZw7>eU*to14t?1asa>IV@sK)#C>J z$`u{9r-1>fxC?c%Vm;?pTTD#I>M1Mk(7tNZy5Ri2lB=z7{#6}Ln;wgg(_+kI_aU8A7LJGf^ zbNdQ=yBB-7!rd#~3hOyIkKW&1bg#6P>If{D>7|d`?gv{Yb|xb$(x% zBrag1o88sXY{gR*BH>aNw4QyQN&3$6Z9XoeLt7k-BKpdeb;D4rg;j_GHQWPq z#2N)%G5!T&TU$d7VZwx>5|s7{vv-uTfrSnQXn^@Uynt9Uh*Tn3H~1^dSY~8Mre^su zw-~i8IE7@TkO|9}8&SiqU?hUz9cB9W6#G1>6F91W75P^9u*`7o#uVt^W9Axy)K!(K&ocr+n`D?%$xfheD|CjM^?b72!!`ySj1f)J}- zlY)=NW!aEdOq=C5_)eK+wnDKC%DIatfJaUBWsz9djrL12%d6S%w3dO}o44E3anGw&7EB5X(rI8mwRcEOuok6L{$gsVM4KeYf>x1qDX7013*@y6H{M6jgMO5 zQ2jpIMMuwL$Wss4_NQe``JiQ9~ z6)x;KH?I}9ymt!ncbyZ@UwuoH36QsT{cKW+wkbuakU`ob0+lxV!Y)ghk5Ckn!JLpesyX+ojKuG;#%Kl+80vLyZJRvHg?+O z@9qgB9CoKETl92OnU}v9gbP zkMj_Yfz!}*66FDYJ=15AmSrcGP+rCJdHaF2)q@%rEU)kwy?4P*`EEBfTCiUa^zj3# zaxhm9@{=+u_9^4Nfy=hsWg>}lVs{D3#zdUKC8JbO@;24jP?Cvw^0t{3DSe;BuL={~ zWuN|9krCKPwSR|3iMBmo)Y)|$yd0`=zDKMob7z_cpM+kVYsC`3wjLHA!ZdO5tB`wb zO@xzpknX4TB4X z3x)L0qI8kvy)u7y(~?3#9qT|t0igbG1DSc4IXGLh`8YcK-^BkH^#4yZ`UmG=Ywl*| b=F8^pZKbLRkMO^^F#pW$-wa}e{Wty(FQ7^n diff --git a/spine-starling/spine-starling-example/src/goblins-mesh.json b/spine-starling/spine-starling-example/src/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-starling/spine-starling-example/src/goblins-mesh.json +++ b/spine-starling/spine-starling-example/src/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-starling/spine-starling-example/src/raptor.json b/spine-starling/spine-starling-example/src/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-starling/spine-starling-example/src/raptor.json +++ b/spine-starling/spine-starling-example/src/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-starling/spine-starling-example/src/spine/examples/Main.as b/spine-starling/spine-starling-example/src/spine/examples/Main.as index b285720a8..7184b430b 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/Main.as +++ b/spine-starling/spine-starling-example/src/spine/examples/Main.as @@ -40,11 +40,12 @@ public class Main extends Sprite { public function Main () { var example:Class; - // example = SpineboyExample; + example = SpineboyExample; // example = GoblinsExample; // example = RaptorExample; - example = TankExample; + // example = TankExample; // example = VineExample; + // example = StretchymanExample; _starling = new Starling(example, stage); _starling.enableErrorChecking = true; diff --git a/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as b/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as index 196d55cd9..a4874a1bc 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as @@ -29,6 +29,7 @@ *****************************************************************************/ package spine.examples { + import spine.animation.TrackEntry; import spine.animation.AnimationStateData; import spine.*; import spine.atlas.Atlas; @@ -71,17 +72,23 @@ public class SpineboyExample extends Sprite { skeleton.x = 400; skeleton.y = 560; - skeleton.state.onStart.add(function (trackIndex:int) : void { - trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex)); + skeleton.state.onStart.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " start: " + entry.animation.name); }); - skeleton.state.onEnd.add(function (trackIndex:int) : void { - trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex)); + skeleton.state.onInterrupt.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " interrupt: " + entry.animation.name); }); - skeleton.state.onComplete.add(function (trackIndex:int, count:int) : void { - trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count); + skeleton.state.onEnd.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " end: " + entry.animation.name); }); - skeleton.state.onEvent.add(function (trackIndex:int, event:Event) : void { - trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", " + skeleton.state.onComplete.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " complete: " + entry.animation.name); + }); + skeleton.state.onDispose.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " dispose: " + entry.animation.name); + }); + skeleton.state.onEvent.add(function (entry:TrackEntry, event:Event) : void { + trace(entry.trackIndex + " event: " + entry.animation.name + ", " + event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue); }); diff --git a/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as b/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as new file mode 100644 index 000000000..eb145575a --- /dev/null +++ b/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as @@ -0,0 +1,98 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +package spine.examples { +import spine.*; +import spine.animation.AnimationStateData; +import spine.animation.TrackEntry; +import spine.atlas.Atlas; +import spine.attachments.AtlasAttachmentLoader; +import spine.attachments.AttachmentLoader; +import spine.starling.SkeletonAnimation; +import spine.starling.StarlingTextureLoader; + +import starling.core.Starling; +import starling.display.Sprite; + +public class StretchymanExample extends Sprite { + [Embed(source = "/stretchyman.json", mimeType = "application/octet-stream")] + static public const StretchymanJson:Class; + + [Embed(source = "/stretchyman.atlas", mimeType = "application/octet-stream")] + static public const StretchymanAtlas:Class; + + [Embed(source = "/stretchyman.png")] + static public const StretchymanAtlasTexture:Class; + + private var skeleton:SkeletonAnimation; + + public function StretchymanExample () { + var spineAtlas:Atlas = new Atlas(new StretchymanAtlas(), new StarlingTextureLoader(new StretchymanAtlasTexture())); + var attachmentLoader:AttachmentLoader = new AtlasAttachmentLoader(spineAtlas); + var json:SkeletonJson = new SkeletonJson(attachmentLoader); + json.scale = 0.4; + var skeletonData:SkeletonData = json.readSkeletonData(new StretchymanJson()); + + var stateData:AnimationStateData = new AnimationStateData(skeletonData); + + skeleton = new SkeletonAnimation(skeletonData, stateData); + skeleton.x = 100; + skeleton.y = 560; + + skeleton.state.timeScale = 0.1; + + skeleton.state.onStart.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " start: " + entry.animation.name); + }); + skeleton.state.onInterrupt.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " interrupt: " + entry.animation.name); + }); + skeleton.state.onEnd.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " end: " + entry.animation.name); + }); + skeleton.state.onComplete.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " complete: " + entry.animation.name); + }); + skeleton.state.onDispose.add(function (entry:TrackEntry) : void { + trace(entry.trackIndex + " dispose: " + entry.animation.name); + }); + skeleton.state.onEvent.add(function (entry:TrackEntry, event:Event) : void { + trace(entry.trackIndex + " event: " + entry.animation.name + ", " + + event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue); + }); + + skeleton.skeleton.setToSetupPose(); + skeleton.state.setAnimationByName(0, "sneak", true); + + addChild(skeleton); + Starling.juggler.add(skeleton); + } +} +} diff --git a/spine-starling/spine-starling-example/src/spineboy.json b/spine-starling/spine-starling-example/src/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-starling/spine-starling-example/src/spineboy.json +++ b/spine-starling/spine-starling-example/src/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-starling/spine-starling-example/src/stretchyman.atlas b/spine-starling/spine-starling-example/src/stretchyman.atlas new file mode 100644 index 000000000..b9072157f --- /dev/null +++ b/spine-starling/spine-starling-example/src/stretchyman.atlas @@ -0,0 +1,41 @@ + +stretchyman.png +size: 1024,256 +format: RGBA8888 +filter: Linear,Linear +repeat: none +back arm + rotate: true + xy: 679, 173 + size: 72, 202 + orig: 72, 202 + offset: 0, 0 + index: -1 +back leg + rotate: true + xy: 2, 2 + size: 100, 318 + orig: 100, 318 + offset: 0, 0 + index: -1 +body + rotate: true + xy: 2, 104 + size: 141, 452 + orig: 141, 452 + offset: 0, 0 + index: -1 +front arm + rotate: true + xy: 456, 100 + size: 145, 221 + orig: 145, 221 + offset: 0, 0 + index: -1 +head + rotate: true + xy: 322, 15 + size: 87, 102 + orig: 87, 102 + offset: 0, 0 + index: -1 diff --git a/spine-starling/spine-starling-example/src/stretchyman.json b/spine-starling/spine-starling-example/src/stretchyman.json new file mode 100644 index 000000000..1f852d0f2 --- /dev/null +++ b/spine-starling/spine-starling-example/src/stretchyman.json @@ -0,0 +1,773 @@ +{ +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, + { "name": "spine 1", "parent": "hip", "length": 34.66, "rotation": 86.68, "x": -4.48, "y": 12.66 }, + { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, + { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, + { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, + { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, + { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, + { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, + { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, + { + "name": "back foot 1", + "parent": "hip", + "length": 33.23, + "rotation": -6.55, + "x": -34, + "y": -279.68, + "transform": "onlyTranslation" + }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, + { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, + { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, + { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, + { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, + { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, + { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, + { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, + { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, + { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, + { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, + { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, + { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, + { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, + { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, + { + "name": "front foot 1", + "parent": "hip", + "length": 26.29, + "rotation": -10.97, + "x": -77.04, + "y": -285.03, + "transform": "onlyTranslation" + }, + { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, + { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, + { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, + { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, + { + "name": "front leg 4", + "parent": "front leg 1", + "length": 37.2, + "rotation": -10.01, + "x": 111.39, + "y": -5.27, + "color": "abe323ff" + }, + { + "name": "front leg 5", + "parent": "front leg 1", + "length": 37.2, + "rotation": -28.39, + "x": 147.76, + "y": -14.98, + "color": "abe323ff" + }, + { + "name": "front leg 6", + "parent": "front leg 1", + "length": 37.2, + "rotation": -24.33, + "x": 182.41, + "y": -27.57, + "color": "abe323ff" + }, + { + "name": "front leg 7", + "parent": "front leg 1", + "length": 37.2, + "rotation": -22.99, + "x": 216.43, + "y": -42.55, + "color": "abe323ff" + }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, + { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, + { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, + { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, + { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } +], +"slots": [ + { "name": "back arm", "bone": "root", "attachment": "back arm" }, + { "name": "back leg", "bone": "root", "attachment": "back leg" }, + { "name": "body", "bone": "root", "attachment": "body" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "front arm", "bone": "root", "attachment": "front arm" }, + { "name": "back leg path", "bone": "hip", "attachment": "back leg path" }, + { "name": "front leg path", "bone": "hip", "attachment": "front leg path" } +], +"ik": [ + { + "name": "back leg IK", + "order": 0, + "bones": [ "back leg IK 1", "back leg IK 2" ], + "target": "back leg IK target", + "bendPositive": false + }, + { + "name": "front leg IK", + "order": 1, + "bones": [ "front leg IK 1", "front leg IK 2" ], + "target": "front leg IK target", + "bendPositive": false + } +], +"transform": [ + { + "name": "back foot position", + "order": 4, + "bones": [ "back foot 1" ], + "target": "back leg 8", + "rotation": 108.8, + "x": 41.2, + "y": -0.02, + "scaleX": 4.0E-4, + "scaleY": -3.0E-4, + "shearY": 0.1, + "rotateMix": 0, + "scaleMix": 0 + }, + { + "name": "front foot position", + "order": 5, + "bones": [ "front foot 1" ], + "target": "front leg 8", + "rotation": 101.55, + "x": 38.92, + "y": -0.02, + "scaleX": 4.0E-4, + "scaleY": -2.0E-4, + "shearY": 0.1, + "rotateMix": 0, + "scaleMix": 0 + } +], +"path": [ + { + "name": "back leg path", + "order": 2, + "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], + "target": "back leg path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + }, + { + "name": "front leg path", + "order": 3, + "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], + "target": "front leg path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + } +], +"skins": { + "default": { + "back arm": { + "back arm": { + "type": "mesh", + "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], + "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], + "hull": 26, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], + "width": 72, + "height": 202 + } + }, + "back leg": { + "back leg": { + "type": "mesh", + "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], + "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], + "width": 100, + "height": 318 + } + }, + "back leg path": { + "back leg path": { + "type": "path", + "lengths": [ 137.82, 291.73, 641.11 ], + "vertexCount": 9, + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] + } + }, + "body": { + "body": { + "type": "mesh", + "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], + "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], + "hull": 60, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], + "width": 141, + "height": 452 + } + }, + "front arm": { + "front arm": { + "type": "mesh", + "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], + "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], + "hull": 38, + "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], + "width": 145, + "height": 221 + } + }, + "front leg path": { + "front leg path": { + "type": "path", + "lengths": [ 140.43, 297.34, 652.04 ], + "vertexCount": 9, + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] + } + }, + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], + "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], + "width": 87, + "height": 102 + } + } + } +}, +"animations": { + "sneak": { + "bones": { + "hip": { + "rotate": [ + { "time": 0, "angle": 30.27, "curve": "stepped" }, + { "time": 0.1666, "angle": 30.27 }, + { "time": 0.3333, "angle": -31.29 }, + { "time": 0.5333, "angle": -44.75 }, + { "time": 0.7333, "angle": -25.49 }, + { "time": 0.8999, "angle": -9.45 }, + { "time": 1.0666, "angle": 30.27 }, + { "time": 1.2333, "angle": -10.1 }, + { "time": 1.6333, "angle": -41.47 }, + { "time": 1.7999, "angle": 30.27 } + ], + "translate": [ + { "time": 0, "x": -57.43, "y": -40.92 }, + { + "time": 0.1666, + "x": -16.15, + "y": -96.56, + "curve": [ 0.245, 0, 0.637, 0.55 ] + }, + { + "time": 0.2666, + "x": 85.99, + "y": -143.07, + "curve": [ 0.381, 0.54, 0.742, 1 ] + }, + { "time": 0.3333, "x": 145.44, "y": -159.27 }, + { "time": 0.4333, "x": 344.29, "y": -134.94 }, + { "time": 0.5333, "x": 543.13, "y": -81.1 }, + { "time": 0.7333, "x": 569.68, "y": -62.13 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, + { + "time": 1.0666, + "x": 653.14, + "y": -96.6, + "curve": [ 0.381, 0.54, 0.742, 1 ] + }, + { "time": 1.1333, "x": 710.16, "y": -143.1 }, + { "time": 1.2333, "x": 795.7, "y": -159.3 }, + { "time": 1.3333, "x": 986.94, "y": -153.35 }, + { "time": 1.4333, "x": 1178.19, "y": -111.88 }, + { "time": 1.6333, "x": 1195.1, "y": -62.1 }, + { "time": 1.7999, "x": 1246.53, "y": -40.92 } + ] + }, + "front leg IK target": { + "translate": [ + { "time": 0, "x": -50.42, "y": 44.61 }, + { "time": 0.1666, "x": -50.42, "y": 46.55 }, + { "time": 0.3333, "x": -50.42, "y": 47 }, + { + "time": 0.5333, + "x": -26.42, + "y": 50.21, + "curve": [ 0.532, 0, 0.75, 1 ] + }, + { "time": 0.7333, "x": 566.43, "y": 107.27 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, + { "time": 1.0666, "x": 1235.47, "y": 15.8 }, + { "time": 1.2333, "x": 1235.47, "y": 0.97 }, + { "time": 1.5666, "x": 1230.15, "y": 3.76 }, + { "time": 1.7, "x": 1244, "y": 26.76 }, + { "time": 1.7999, "x": 1253.53, "y": 44.61 } + ] + }, + "front foot 1": { + "rotate": [ + { "time": 0, "angle": -48.38, "curve": "stepped" }, + { "time": 0.3333, "angle": -48.38 }, + { "time": 0.6999, "angle": -121.34 }, + { "time": 0.8, "angle": -80.19 }, + { "time": 0.8999, "angle": 45.59 }, + { "time": 1.0666, "angle": 2.1 }, + { "time": 1.2333, "angle": 4.65 }, + { "time": 1.5666, "angle": 5.66 }, + { "time": 1.7999, "angle": -48.38 } + ], + "scale": [ + { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6, "x": 1, "y": 1 }, + { "time": 0.6333, "x": 0.954, "y": 1 }, + { "time": 0.7666, "x": 0.82, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, + { "time": 1.0666, "x": 0.851, "y": 1 }, + { "time": 1.3666, "x": 1, "y": 1 } + ] + }, + "front foot 3": { + "rotate": [ + { "time": 0, "angle": 36.32 }, + { "time": 0.3333, "angle": 28.46 }, + { "time": 0.5, "angle": 34.84 }, + { "time": 0.5333, "angle": 30.32 }, + { "time": 0.5666, "angle": 61.67 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, + { "time": 1.0666, "angle": -7.21 }, + { "time": 1.2333, "angle": -11.34 }, + { "time": 1.5666, "angle": -11.23 }, + { "time": 1.7999, "angle": 36.32 } + ] + }, + "back leg IK target": { + "translate": [ + { "time": 0, "x": 516.79, "y": 86.68 }, + { "time": 0.1666, "x": 523.71, "y": 16.63 }, + { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, + { "time": 1.0666, "x": 554.24, "y": 44.45 }, + { "time": 1.1333, "x": 555.44, "y": 44.74 }, + { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, + { "time": 1.4333, "x": 556.6, "y": 46.19 }, + { "time": 1.5, "x": 746.96, "y": 74.82 }, + { "time": 1.6333, "x": 1127.68, "y": 103.61 }, + { "time": 1.7999, "x": 1820.75, "y": 86.68 } + ] + }, + "back foot 1": { + "rotate": [ + { "time": 0, "angle": 74.17 }, + { "time": 0.1666, "angle": -17.01 }, + { "time": 0.3333, "angle": 5.05 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, + { "time": 1.6333, "angle": -92.52 }, + { "time": 1.7999, "angle": 74.17 } + ], + "scale": [ + { "time": 0, "x": 0.824, "y": 1 }, + { "time": 0.1666, "x": 0.754, "y": 1 }, + { "time": 0.3333, "x": 0.589, "y": 1 }, + { "time": 0.5666, "x": 0.909, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, + { "time": 1.5, "x": 0.844, "y": 1 }, + { "time": 1.7999, "x": 0.824, "y": 1 } + ] + }, + "back foot 2": { + "rotate": [ + { "time": 0, "angle": 8.13 }, + { "time": 0.1666, "angle": -3.21 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, + { "time": 1.4333, "angle": 46.68 }, + { "time": 1.5333, "angle": -15.6 }, + { "time": 1.6333, "angle": -11.91 }, + { "time": 1.7999, "angle": 8.13 } + ], + "scale": [ + { "time": 0, "x": 1, "y": 1 }, + { "time": 0.1666, "x": 0.835, "y": 1 }, + { "time": 0.3333, "x": 1, "y": 1 } + ] + }, + "front arm 1": { + "rotate": [ + { "time": 0, "angle": -39.71 }, + { "time": 0.1666, "angle": -37.29 }, + { "time": 0.3333, "angle": 30.66 }, + { + "time": 0.8999, + "angle": -53.28, + "curve": [ 0.708, 0.01, 0.75, 1 ] + }, + { "time": 1.2333, "angle": 36 }, + { "time": 1.7999, "angle": -39.71 } + ] + }, + "neck 1": { + "rotate": [ + { "time": 0, "angle": 21.95, "curve": "stepped" }, + { "time": 0.1666, "angle": 21.95 }, + { "time": 0.2666, "angle": 30.6 }, + { "time": 0.3333, "angle": 36.37 }, + { "time": 0.7333, "angle": 33.6 }, + { "time": 1.1666, "angle": 23.95 }, + { "time": 1.2333, "angle": 36.37 }, + { "time": 1.6333, "angle": 41.16 }, + { "time": 1.7999, "angle": 21.95 } + ] + }, + "neck 2": { + "rotate": [ + { "time": 0, "angle": -22.93 }, + { "time": 0.1666, "angle": -23.95 }, + { "time": 0.2666, "angle": 8.84 }, + { "time": 0.3333, "angle": 30.71 }, + { "time": 0.7333, "angle": -3.36 }, + { "time": 0.8999, "angle": -17.57 }, + { "time": 1.1666, "angle": 2.19 }, + { "time": 1.2333, "angle": 15.25 }, + { "time": 1.6333, "angle": 4.41 }, + { "time": 1.7999, "angle": -22.93 } + ] + }, + "head": { + "rotate": [ + { "time": 0, "angle": -22.93 }, + { "time": 0.1666, "angle": -13.03 }, + { "time": 0.2666, "angle": 2.64 }, + { "time": 0.3333, "angle": 13.1 }, + { "time": 0.5, "angle": 13.1 }, + { "time": 0.7333, "angle": -18.9 }, + { "time": 0.8999, "angle": -41.77 }, + { "time": 1.1666, "angle": -4 }, + { "time": 1.2333, "angle": -2.35 }, + { "time": 1.6333, "angle": -22.89 }, + { "time": 1.7999, "angle": -22.93 } + ] + }, + "back arm 1": { + "rotate": [ + { "time": 0, "angle": -17.23 }, + { "time": 0.1666, "angle": -18.65 }, + { "time": 0.3333, "angle": 324.98 }, + { "time": 0.5666, "angle": -6.41 }, + { "time": 0.8999, "angle": -14.83 }, + { "time": 1.0666, "angle": -16.9 }, + { "time": 1.2333, "angle": 1.49 }, + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } + ], + "translate": [ + { "time": 0, "x": -14.25, "y": -6.6 } + ] + }, + "back leg IK 1": { + "scale": [ + { "time": 0, "x": 2.186, "y": 1 }, + { "time": 0.1666, "x": 2.228, "y": 1 }, + { "time": 0.3333, "x": 1.532, "y": 1 }, + { "time": 0.4333, "x": 0.946, "y": 1 }, + { "time": 0.5333, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.0666, "x": 1, "y": 1 }, + { "time": 1.1333, "x": 0.892, "y": 1 }, + { "time": 1.2333, "x": 0.956, "y": 1 }, + { "time": 1.4333, "x": 2.315, "y": 1 }, + { "time": 1.6333, "x": 0.774, "y": 1 }, + { "time": 1.7999, "x": 2.186, "y": 1 } + ] + }, + "front leg 1": { + "scale": [ + { "time": 0, "x": 1, "y": 1.117 } + ] + }, + "back leg 1": { + "scale": [ + { "time": 0, "x": 1, "y": 1.038 } + ] + }, + "front leg IK 1": { + "scale": [ + { "time": 0, "x": 1, "y": 1 }, + { "time": 0.2666, "x": 0.858, "y": 1 }, + { "time": 0.3333, "x": 0.972, "y": 1 }, + { + "time": 0.5333, + "x": 2.356, + "y": 1, + "curve": [ 0.532, 0, 0.75, 1 ] + }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, + { "time": 1.0666, "x": 2.002, "y": 1 }, + { "time": 1.2333, "x": 1.495, "y": 1 }, + { + "time": 1.2999, + "x": 1.047, + "y": 1, + "curve": [ 0.339, 0.58, 0.764, 1 ] + }, + { "time": 1.4333, "x": 0.779, "y": 0.762 }, + { "time": 1.7999, "x": 1, "y": 1 } + ] + }, + "front leg IK 2": { + "scale": [ + { "time": 0, "x": 1, "y": 1 } + ] + }, + "front arm 3": { + "rotate": [ + { "time": 0, "angle": 0 }, + { "time": 0.1666, "angle": 17.37 }, + { "time": 0.3333, "angle": 31.94 }, + { + "time": 0.8999, + "angle": 4.76, + "curve": [ 0.708, 0.01, 0.75, 1 ] + }, + { "time": 1.2333, "angle": 39.96 }, + { "time": 1.7999, "angle": 0 } + ] + }, + "spine 2": { + "rotate": [ + { "time": 0, "angle": -3.49 }, + { "time": 0.2666, "angle": -11.57 }, + { "time": 0.3333, "angle": -9.02 }, + { "time": 0.5, "angle": -2.65 }, + { "time": 0.7333, "angle": -5.78 }, + { "time": 1.1666, "angle": -11.57 }, + { "time": 1.2333, "angle": -6.69 }, + { "time": 1.6333, "angle": -2.5 }, + { "time": 1.7999, "angle": -3.49 } + ] + }, + "spine 3": { + "rotate": [ + { "time": 0, "angle": -20.41 }, + { "time": 0.2666, "angle": -11.57 }, + { "time": 0.3333, "angle": -9.02 }, + { "time": 0.5, "angle": -2.65 }, + { "time": 0.7333, "angle": -10.53 }, + { "time": 0.8999, "angle": -16.16 }, + { "time": 1.1666, "angle": -11.57 }, + { "time": 1.2333, "angle": -9.02 }, + { "time": 1.6333, "angle": -7.26 }, + { "time": 1.7999, "angle": -20.41 } + ] + }, + "back arm 3": { + "rotate": [ + { "time": 0, "angle": 26.23 }, + { "time": 0.1666, "angle": 53.14 }, + { "time": 0.3333, "angle": 116.25 }, + { "time": 0.5666, "angle": 35.72 }, + { "time": 0.8999, "angle": 39.32 }, + { "time": 1.0666, "angle": 41.19 }, + { "time": 1.2333, "angle": 78.09 }, + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } + ] + }, + "back foot 3": { + "rotate": [ + { "time": 0, "angle": 11.35 }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, + { "time": 1.4333, "angle": 25.48 }, + { "time": 1.5333, "angle": -30.51 }, + { "time": 1.6333, "angle": -20.54 }, + { "time": 1.7999, "angle": 11.35 } + ], + "scale": [ + { "time": 0, "x": 1, "y": 1 }, + { "time": 0.1666, "x": 0.835, "y": 1 }, + { "time": 0.3333, "x": 1, "y": 1 } + ] + }, + "spine 1": { + "rotate": [ + { "time": 0, "angle": 10.81 }, + { "time": 0.2666, "angle": -28.69 }, + { "time": 0.3333, "angle": -24.32 }, + { "time": 0.5, "angle": -13.37 }, + { "time": 0.7333, "angle": 21.61 }, + { "time": 0.8999, "angle": 46.61 }, + { "time": 1.1666, "angle": -28.69 }, + { "time": 1.2333, "angle": -43.33 }, + { "time": 1.6333, "angle": 24.89 }, + { "time": 1.7999, "angle": 10.81 } + ] + }, + "spine 4": { + "rotate": [ + { "time": 0, "angle": 0 }, + { "time": 0.2666, "angle": -2.8 }, + { "time": 0.3333, "angle": -0.82 }, + { "time": 0.5, "angle": 4.13 }, + { "time": 0.7333, "angle": -3.74 }, + { "time": 0.8999, "angle": -9.37 }, + { "time": 1.1666, "angle": -9.02 }, + { "time": 1.2333, "angle": -0.82 }, + { "time": 1.6333, "angle": 3.81 }, + { "time": 1.7999, "angle": 0 } + ] + }, + "front foot 2": { + "rotate": [ + { "time": 0, "angle": 0 }, + { "time": 0.2666, "angle": -1.24 }, + { "time": 0.3333, "angle": -0.2 }, + { "time": 0.5, "angle": 22.72 }, + { "time": 0.5333, "angle": 26.87 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, + { "time": 1.0666, "angle": -18.17 }, + { "time": 1.2333, "angle": -2.64 }, + { "time": 1.5666, "angle": -5.84 }, + { "time": 1.7999, "angle": 0 } + ] + }, + "belly": { + "translate": [ + { "time": 0, "x": 3.65, "y": -3.77 }, + { "time": 0.2666, "x": 13.82, "y": -3.82 }, + { "time": 0.6333, "x": -4.11, "y": -3.89 }, + { "time": 0.7666, "x": 10.21, "y": -2.91 }, + { "time": 0.8666, "x": 10.3, "y": -7.38 }, + { "time": 1.1, "x": -0.44, "y": -1.45 }, + { "time": 1.2333, "x": 12.37, "y": 2.32 }, + { "time": 1.3666, "x": 11.51, "y": 5.52 }, + { "time": 1.7999, "x": 0, "y": 0 } + ] + }, + "butt": { + "translate": [ + { "time": 0, "x": 0, "y": 0 }, + { "time": 0.7666, "x": 9.88, "y": -25.41 }, + { "time": 0.8333, "x": 15.89, "y": -41.88 }, + { "time": 1.2333, "x": -12.49, "y": -32.99 }, + { "time": 1.7999, "x": 0, "y": 0 } + ] + } + }, + "deform": { + "default": { + "back leg": { + "back leg": [ + { "time": 0.3 }, + { + "time": 0.3333, + "offset": 68, + "vertices": [ -1.72897, 2.75445, -1.52529, 2.94189, 0.0625, 3.6552, 0.01776, 3.65397, 0, 0, 0, 0, 0, 0, 0.0625, 3.6552, 0.01776, 3.65397, 0.90136, 3.54112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.98724, -1.57397, -0.03338, -2.08873, -0.0108, -2.08799, -0.51434, -2.02362, 0.98724, -1.57397, 0.87167, -1.68002, -0.03338, -2.08873, -0.0108, -2.08799 ] + }, + { "time": 0.4666, "curve": "stepped" }, + { "time": 1.3333 }, + { + "time": 1.4333, + "offset": 110, + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + }, + { "time": 1.5 } + ] + }, + "back leg path": { + "back leg path": [ + { "time": 1.4333 }, + { + "time": 1.5, + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] + }, + { + "time": 1.5666, + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] + }, + { "time": 1.6666 } + ] + }, + "body": { + "body": [ + { "time": 0 }, + { + "time": 0.3333, + "offset": 164, + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + }, + { + "time": 0.5333, + "offset": 164, + "vertices": [ -0.01886, 0.04627, 0.01467, 0.04768, 0, 0, 1.88449, 1.43737, 2.369, -0.07907, 1.46056, -1.33222, -0.75053, -3.73339, -2.82319, -2.55492, -3.80252, -0.19385, 2.81923, -1.5031, -0.33162, -6.7565, -4.28408, -5.23484, -6.6292, -1.34549, 3.83378, -1.12044, 0.51381, -8.79961, -4.81917, -7.38011, -8.40039, -2.66888, 3.83378, -1.12044, 0.51381, -8.79961, -4.81917, -7.38011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.27845, 0.35211, 0.43846, 0.09625 ] + }, + { + "time": 0.6333, + "offset": 170, + "vertices": [ -2.09907, 0.0496, -1.943, 1.46153, 1.74966, 0.25744, 0.37649, -3.44555, -2.34342, -2.73068, -3.66285, -0.53692, 0, 0, 0, 0, 0, 0, 0, 0, 1.91689, -0.56022, 0.2569, -4.3998, -2.40958, -3.69005, -4.2002, -1.33444, 1.91689, -0.56022, 0.2569, -4.3998, -2.40958, -3.69005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.66468, 1.2535, 0.05176, 1.41789 ] + }, + { "time": 0.7333 }, + { + "time": 0.7666, + "offset": 264, + "vertices": [ -2.27499, -1.60417, -2.23925, -1.6137, -2.2196, -1.74293, -1.80918, 2.86346, -1.11117, 2.36199, -1.14221, 2.359, 2.63101, 1.41101, 2.63215, 1.41741, -0.81469, 8.46568, 9.4562, 1.07873, 9.45622, 1.08001, -1.00012, 6.23983, 6.96737, 1.29986, 6.9674, 1.30218, -0.68823, 4.24005, 4.7344, 0.89532, 4.73448, 0.89593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.05484, 2.78092, 0.01666, 2.78222, 3.10775, -0.05572, 3.10798, -0.05426, -1.17971, 2.87597, -0.99005, 3.55937, 3.97198, 1.27319, 3.97207, 1.27423, -2.74237, 3.14401 ] + }, + { "time": 0.8333, "curve": "stepped" }, + { "time": 1.0666 }, + { + "time": 1.3333, + "offset": 142, + "vertices": [ 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.0227, -1.7984, 0.00683, -4.47886, -0.46118, -4.45536, -0.27441, -4.47041 ] + }, + { "time": 1.4333 } + ] + }, + "front leg path": { + "front leg path": [ + { "time": 0.5666 }, + { + "time": 0.6333, + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + }, + { + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] + }, + { "time": 0.8 } + ] + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-starling/spine-starling-example/src/stretchyman.png b/spine-starling/spine-starling-example/src/stretchyman.png new file mode 100644 index 0000000000000000000000000000000000000000..106a42a6785820bc494fa37f281cd401634402b2 GIT binary patch literal 134187 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 {yQy@zOBPO5fZ| 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 JRmzxz{4Yy5xR(F` literal 0 HcmV?d00001 diff --git a/spine-starling/spine-starling-example/src/tank.json b/spine-starling/spine-starling-example/src/tank.json index cab50642b..b483fe274 100644 --- a/spine-starling/spine-starling-example/src/tank.json +++ b/spine-starling/spine-starling-example/src/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-starling/spine-starling-example/src/vine.json b/spine-starling/spine-starling-example/src/vine.json index 6fc78dc14..f4f48a1a2 100644 --- a/spine-starling/spine-starling-example/src/vine.json +++ b/spine-starling/spine-starling-example/src/vine.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "OTxn8PebJnSmjY8665bH7m360tk", "spine": "3.4.02", "width": 227.32, "height": 841.06, "images": "./images/" }, +"skeleton": { + "hash": "Lb8yfqsfTuFiRtjhPw5ZzTEPxik", + "spine": "3.5.03-beta", + "width": 227.32, + "height": 841.06, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "vine1", "parent": "root", "length": 74, "rotation": 90, "x": 339.09, "y": -467.15, "color": "f700ffff" }, @@ -27,6 +34,7 @@ "path": [ { "name": "vine-path", + "order": 0, "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], "target": "vine-path", "rotateMode": "chainScale" @@ -39,7 +47,7 @@ "type": "mesh", "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15384, 1, 0.1923, 1, 0.23076, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38461, 1, 0.42307, 1, 0.46153, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65384, 1, 0.6923, 1, 0.73076, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88461, 1, 0.92307, 1, 0.96153, 1, 1, 0.5, 1, 0, 1, 0, 0.96153, 0, 0.92307, 0, 0.88461, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73076, 0, 0.6923, 0, 0.65384, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46153, 0, 0.42307, 0, 0.38461, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23076, 0, 0.1923, 0, 0.15384, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15384, 0.5, 0.1923, 0.5, 0.23076, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38461, 0.5, 0.42307, 0.5, 0.46153, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65384, 0.5, 0.6923, 0.5, 0.73076, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88461, 0.5, 0.92307, 0.5, 0.96153 ], "triangles": [ 55, 0, 1, 56, 1, 2, 55, 1, 56, 56, 2, 3, 54, 55, 56, 57, 56, 3, 57, 3, 4, 53, 54, 57, 58, 57, 4, 53, 57, 58, 58, 4, 5, 52, 53, 58, 59, 58, 5, 54, 56, 57, 52, 58, 59, 59, 5, 6, 51, 52, 59, 60, 59, 6, 51, 59, 60, 60, 6, 7, 50, 51, 60, 61, 60, 7, 50, 60, 61, 61, 7, 8, 49, 50, 61, 62, 61, 8, 49, 61, 62, 62, 8, 9, 48, 49, 62, 63, 62, 9, 48, 62, 63, 63, 9, 10, 47, 48, 63, 64, 63, 10, 47, 63, 64, 64, 10, 11, 46, 47, 64, 65, 64, 11, 46, 64, 65, 65, 11, 12, 45, 46, 65, 66, 65, 12, 45, 65, 66, 66, 12, 13, 44, 45, 66, 67, 66, 13, 44, 66, 67, 67, 13, 14, 43, 44, 67, 68, 67, 14, 43, 67, 68, 68, 14, 15, 42, 43, 68, 69, 68, 15, 42, 68, 69, 69, 15, 16, 41, 42, 69, 70, 69, 16, 41, 69, 70, 70, 16, 17, 40, 41, 70, 71, 70, 17, 40, 70, 71, 71, 17, 18, 39, 40, 71, 72, 71, 18, 39, 71, 72, 72, 18, 19, 38, 39, 72, 73, 72, 19, 38, 72, 73, 73, 19, 20, 37, 38, 73, 74, 73, 20, 37, 73, 74, 74, 20, 21, 36, 37, 74, 75, 74, 21, 36, 74, 75, 75, 21, 22, 35, 36, 75, 76, 75, 22, 35, 75, 76, 76, 22, 23, 34, 35, 76, 77, 76, 23, 34, 76, 77, 77, 23, 24, 33, 77, 78, 78, 24, 25, 32, 33, 78, 79, 78, 25, 32, 78, 79, 33, 34, 77, 78, 77, 24, 31, 32, 79, 80, 79, 26, 31, 79, 80, 80, 26, 27, 30, 31, 80, 29, 80, 27, 30, 80, 29, 29, 27, 28, 79, 25, 26 ], - "vertices": [ 4, 10, 294, 33.89, 3.2E-4, 11, 220, 33.89, 0.01648, 12, 146, 33.89, 0.21526, 13, 72, 33.89, 0.76791, 3, 11, 220, -0.1, 0.00752, 12, 146, -0.1, 0.16869, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.2E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21526, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00195, 11, 183, -34.09999, 0.04739, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61714, 5, 9, 294, -34.09999, 2.4E-4, 10, 220, -34.09999, 0.01163, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.35531, 5, 9, 257, -34.09999, 0.00195, 10, 183, -34.09999, 0.04663, 11, 109, -34.09999, 0.31166, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.4E-4, 9, 220, -34.09999, 0.01163, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48685, 12, -1.99, -34.09999, 0.31174, 13, -75.99, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00195, 9, 183, -34.09999, 0.04663, 10, 109, -34.09999, 0.31166, 11, 35, -34.09999, 0.48685, 12, -38.99, -34.09999, 0.14101, 13, -112.99, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.4E-4, 8, 220, -34.09999, 0.01163, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48685, 11, -1.99, -34.09999, 0.31166, 12, -75.99, -34.09999, 0.04663, 13, -149.99, -34.09999, 0.00195, 7, 7, 257, -34.09999, 0.00195, 8, 183, -34.09999, 0.04663, 9, 109, -34.09999, 0.31166, 10, 35, -34.09999, 0.48685, 11, -38.99, -34.09999, 0.14101, 12, -112.99, -34.09999, 0.01163, 13, -186.99, -34.09999, 2.4E-4, 7, 6, 294, -34.09999, 2.4E-4, 7, 220, -34.09999, 0.01163, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48685, 10, -1.99, -34.09999, 0.31166, 11, -75.99, -34.09999, 0.04663, 12, -149.99, -34.09999, 0.00195, 7, 6, 257, -34.09999, 0.00195, 7, 183, -34.09999, 0.04663, 8, 109, -34.09999, 0.31166, 9, 35, -34.09999, 0.48685, 10, -38.99, -34.09999, 0.14101, 11, -112.99, -34.09999, 0.01163, 12, -186.99, -34.09999, 2.4E-4, 7, 5, 294, -34.09999, 2.4E-4, 6, 220, -34.09999, 0.01163, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48685, 9, -1.99, -34.09999, 0.31166, 10, -75.99, -34.09999, 0.04663, 11, -149.99, -34.09999, 0.00195, 7, 5, 257, -34.09999, 0.00195, 6, 183, -34.09999, 0.04663, 7, 109, -34.09999, 0.31166, 8, 35, -34.09999, 0.48685, 9, -38.99, -34.09999, 0.14101, 10, -112.99, -34.09999, 0.01163, 11, -186.99, -34.09999, 2.4E-4, 7, 4, 294, -34.09999, 2.4E-4, 5, 220, -34.09999, 0.01163, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48685, 8, -1.99, -34.09999, 0.31166, 9, -75.99, -34.09999, 0.04663, 10, -149.99, -34.09999, 0.00195, 7, 4, 257, -34.09999, 0.00195, 5, 183, -34.09999, 0.04663, 6, 109, -34.09999, 0.31166, 7, 35, -34.09999, 0.48685, 8, -38.99, -34.09999, 0.14101, 9, -112.99, -34.09999, 0.01163, 10, -186.99, -34.09999, 2.4E-4, 7, 3, 294, -34.09999, 2.4E-4, 4, 220, -34.09999, 0.01163, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48685, 7, -1.99, -34.09999, 0.31166, 8, -75.99, -34.09999, 0.04663, 9, -149.99, -34.09999, 0.00195, 7, 3, 257, -34.09999, 0.00195, 4, 183, -34.09999, 0.04663, 5, 109, -34.09999, 0.31166, 6, 35, -34.09999, 0.48685, 7, -38.99, -34.09999, 0.14101, 8, -112.99, -34.09999, 0.01163, 9, -186.99, -34.09999, 2.4E-4, 7, 2, 294, -34.09999, 2.4E-4, 3, 220, -34.09999, 0.01163, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48685, 6, -1.99, -34.09999, 0.31166, 7, -75.99, -34.09999, 0.04663, 8, -149.99, -34.09999, 0.00195, 7, 2, 257, -34.09999, 0.00195, 3, 183, -34.09999, 0.04663, 4, 109, -34.09999, 0.31166, 5, 35, -34.09999, 0.48685, 6, -38.99, -34.09999, 0.14101, 7, -112.99, -34.09999, 0.01163, 8, -186.99, -34.09999, 2.4E-4, 7, 1, 294, -34.09999, 2.4E-4, 2, 220, -34.09999, 0.01163, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48685, 5, -1.99, -34.09999, 0.31166, 6, -75.99, -34.09999, 0.04663, 7, -149.99, -34.09999, 0.00195, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31166, 4, 35, -34.09999, 0.48685, 5, -38.99, -34.09999, 0.14101, 6, -112.99, -34.09999, 0.01163, 7, -186.99, -34.09999, 2.4E-4, 6, 1, 220, -34.09999, 0.01033, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48685, 4, -1.99, -34.09999, 0.31166, 5, -75.99, -34.09999, 0.04663, 6, -149.99, -34.09999, 0.00195, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48685, 4, -38.99, -34.09999, 0.14101, 5, -112.99, -34.09999, 0.01163, 6, -186.99, -34.09999, 2.4E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51233, 3, -1.99, -34.09999, 0.31166, 4, -75.99, -34.09999, 0.04663, 5, -149.99, -34.09999, 0.00195, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54594, 3, -38.99, -34.09999, 0.14101, 4, -112.99, -34.09999, 0.01163, 5, -186.99, -34.09999, 2.4E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39738, 3, -75.99, -34.09999, 0.04663, 4, -149.99, -34.09999, 0.00195, 4, 1, 35, -34.09999, 0.77978, 2, -38.99, -34.09999, 0.20825, 3, -112.99, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.4E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.99, -34.09999, 0.10696, 3, -149.99, -34.09999, 0.00271, 3, 1, -1.99, -0.1, 0.9264, 2, -75.99, -0.1, 0.07272, 3, -149.99, -0.1, 8.6E-4, 3, 1, -1.99, 33.89, 0.89032, 2, -75.99, 33.89, 0.10696, 3, -149.99, 33.89, 0.00271, 4, 1, 35, 33.89, 0.77978, 2, -38.99, 33.89, 0.20825, 3, -112.99, 33.89, 0.01171, 4, -186.99, 33.89, 2.4E-4, 4, 1, 72, 33.89, 0.55403, 2, -1.99, 33.89, 0.39738, 3, -75.99, 33.89, 0.04663, 4, -149.99, 33.89, 0.00195, 5, 1, 109, 33.89, 0.30116, 2, 35, 33.89, 0.54594, 3, -38.99, 33.89, 0.14101, 4, -112.99, 33.89, 0.01163, 5, -186.99, 33.89, 2.4E-4, 5, 1, 146, 33.89, 0.1274, 2, 72, 33.89, 0.51233, 3, -1.99, 33.89, 0.31166, 4, -75.99, 33.89, 0.04663, 5, -149.99, 33.89, 0.00195, 6, 1, 183, 33.89, 0.04058, 2, 109, 33.89, 0.31966, 3, 35, 33.89, 0.48685, 4, -38.99, 33.89, 0.14101, 5, -112.99, 33.89, 0.01163, 6, -186.99, 33.89, 2.4E-4, 6, 1, 220, 33.89, 0.01033, 2, 146, 33.89, 0.14256, 3, 72, 33.89, 0.48685, 4, -1.99, 33.89, 0.31166, 5, -75.99, 33.89, 0.04663, 6, -149.99, 33.89, 0.00195, 7, 1, 257, 33.89, 0.0017, 2, 183, 33.89, 0.04687, 3, 109, 33.89, 0.31166, 4, 35, 33.89, 0.48685, 5, -38.99, 33.89, 0.14101, 6, -112.99, 33.89, 0.01163, 7, -186.99, 33.89, 2.4E-4, 7, 1, 294, 33.89, 2.4E-4, 2, 220, 33.89, 0.01163, 3, 146, 33.89, 0.14101, 4, 72, 33.89, 0.48685, 5, -1.99, 33.89, 0.31166, 6, -75.99, 33.89, 0.04663, 7, -149.99, 33.89, 0.00195, 7, 2, 257, 33.89, 0.00195, 3, 183, 33.89, 0.04663, 4, 109, 33.89, 0.31166, 5, 35, 33.89, 0.48685, 6, -38.99, 33.89, 0.14101, 7, -112.99, 33.89, 0.01163, 8, -186.99, 33.89, 2.4E-4, 7, 2, 294, 33.89, 2.4E-4, 3, 220, 33.89, 0.01163, 4, 146, 33.89, 0.14101, 5, 72, 33.89, 0.48685, 6, -1.99, 33.89, 0.31166, 7, -75.99, 33.89, 0.04663, 8, -149.99, 33.89, 0.00195, 7, 3, 257, 33.89, 0.00195, 4, 183, 33.89, 0.04663, 5, 109, 33.89, 0.31166, 6, 35, 33.89, 0.48685, 7, -38.99, 33.89, 0.14101, 8, -112.99, 33.89, 0.01163, 9, -186.99, 33.89, 2.4E-4, 7, 3, 294, 33.89, 2.4E-4, 4, 220, 33.89, 0.01163, 5, 146, 33.89, 0.14101, 6, 72, 33.89, 0.48685, 7, -1.99, 33.89, 0.31166, 8, -75.99, 33.89, 0.04663, 9, -149.99, 33.89, 0.00195, 7, 4, 257, 33.89, 0.00195, 5, 183, 33.89, 0.04663, 6, 109, 33.89, 0.31166, 7, 35, 33.89, 0.48685, 8, -38.99, 33.89, 0.14101, 9, -112.99, 33.89, 0.01163, 10, -186.99, 33.89, 2.4E-4, 7, 4, 294, 33.89, 2.4E-4, 5, 220, 33.89, 0.01163, 6, 146, 33.89, 0.14101, 7, 72, 33.89, 0.48685, 8, -1.99, 33.89, 0.31166, 9, -75.99, 33.89, 0.04663, 10, -149.99, 33.89, 0.00195, 7, 5, 257, 33.89, 0.00195, 6, 183, 33.89, 0.04663, 7, 109, 33.89, 0.31166, 8, 35, 33.89, 0.48685, 9, -38.99, 33.89, 0.14101, 10, -112.99, 33.89, 0.01163, 11, -186.99, 33.89, 2.4E-4, 7, 5, 294, 33.89, 2.4E-4, 6, 220, 33.89, 0.01163, 7, 146, 33.89, 0.14101, 8, 72, 33.89, 0.48685, 9, -1.99, 33.89, 0.31166, 10, -75.99, 33.89, 0.04663, 11, -149.99, 33.89, 0.00195, 7, 6, 257, 33.89, 0.00195, 7, 183, 33.89, 0.04663, 8, 109, 33.89, 0.31166, 9, 35, 33.89, 0.48685, 10, -38.99, 33.89, 0.14101, 11, -112.99, 33.89, 0.01163, 12, -186.99, 33.89, 2.4E-4, 7, 6, 294, 33.89, 2.4E-4, 7, 220, 33.89, 0.01163, 8, 146, 33.89, 0.14101, 9, 72, 33.89, 0.48685, 10, -1.99, 33.89, 0.31166, 11, -75.99, 33.89, 0.04663, 12, -149.99, 33.89, 0.00195, 7, 7, 257, 33.89, 0.00195, 8, 183, 33.89, 0.04663, 9, 109, 33.89, 0.31166, 10, 35, 33.89, 0.48685, 11, -38.99, 33.89, 0.14101, 12, -112.99, 33.89, 0.01163, 13, -186.99, 33.89, 2.4E-4, 7, 7, 294, 33.89, 2.4E-4, 8, 220, 33.89, 0.01163, 9, 146, 33.89, 0.14101, 10, 72, 33.89, 0.48685, 11, -1.99, 33.89, 0.31166, 12, -75.99, 33.89, 0.04663, 13, -149.99, 33.89, 0.00195, 6, 8, 257, 33.89, 0.00195, 9, 183, 33.89, 0.04663, 10, 109, 33.89, 0.31166, 11, 35, 33.89, 0.48685, 12, -38.99, 33.89, 0.14101, 13, -112.99, 33.89, 0.01188, 6, 8, 294, 33.89, 2.4E-4, 9, 220, 33.89, 0.01163, 10, 146, 33.89, 0.14101, 11, 72, 33.89, 0.48685, 12, -1.99, 33.89, 0.31174, 13, -75.99, 33.89, 0.0485, 5, 9, 257, 33.89, 0.00195, 10, 183, 33.89, 0.04663, 11, 109, 33.89, 0.31166, 12, 35, 33.89, 0.48761, 13, -38.99, 33.89, 0.15212, 5, 9, 294, 33.89, 2.4E-4, 10, 220, 33.89, 0.01163, 11, 146, 33.89, 0.14109, 12, 72, 33.89, 0.49171, 13, -1.99, 33.89, 0.35531, 4, 10, 257, 33.89, 0.00195, 11, 183, 33.89, 0.04739, 12, 109, 33.89, 0.33351, 13, 35, 33.89, 0.61714, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31658, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00542, 11, 146, -0.1, 0.11402, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33273, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03045, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00542, 10, 146, -0.1, 0.11402, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.99, -0.1, 0.0311, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03045, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11402, 13, -112.99, -0.1, 0.00542, 6, 8, 220, -0.1, 0.00542, 9, 146, -0.1, 0.11402, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.99, -0.1, 0.03045, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03045, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11402, 12, -112.99, -0.1, 0.00542, 6, 7, 220, -0.1, 0.00542, 8, 146, -0.1, 0.11402, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.99, -0.1, 0.03045, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03045, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11402, 11, -112.99, -0.1, 0.00542, 6, 6, 220, -0.1, 0.00542, 7, 146, -0.1, 0.11402, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.99, -0.1, 0.03045, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03045, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11402, 10, -112.99, -0.1, 0.00542, 6, 5, 220, -0.1, 0.00542, 6, 146, -0.1, 0.11402, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.99, -0.1, 0.03045, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03045, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11402, 9, -112.99, -0.1, 0.00542, 6, 4, 220, -0.1, 0.00542, 5, 146, -0.1, 0.11402, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.99, -0.1, 0.03045, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03045, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11402, 8, -112.99, -0.1, 0.00542, 6, 3, 220, -0.1, 0.00542, 4, 146, -0.1, 0.11402, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.99, -0.1, 0.03045, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03045, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11402, 7, -112.99, -0.1, 0.00542, 6, 2, 220, -0.1, 0.00542, 3, 146, -0.1, 0.11402, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.99, -0.1, 0.03045, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03045, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11402, 6, -112.99, -0.1, 0.00542, 6, 1, 220, -0.1, 0.00477, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.99, -0.1, 0.03045, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11402, 5, -112.99, -0.1, 0.00542, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.99, -0.1, 0.03045, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11402, 4, -112.99, -0.1, 0.00542, 4, 1, 72, -0.1, 0.55929, 2, -1.99, -0.1, 0.40959, 3, -75.99, -0.1, 0.03045, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81845, 2, -38.99, -0.1, 0.17611, 3, -112.99, -0.1, 0.00542 ], + "vertices": [ 4, 10, 294, 33.88999, 3.1E-4, 11, 220, 33.88999, 0.01648, 12, 146, 33.88999, 0.21525, 13, 72, 33.88999, 0.76791, 3, 11, 220, -0.1, 0.00751, 12, 146, -0.1, 0.16868, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.1E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21525, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00194, 11, 183, -34.09999, 0.04738, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61713, 5, 9, 294, -34.09999, 2.3E-4, 10, 220, -34.09999, 0.01162, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.3553, 5, 9, 257, -34.09999, 0.00194, 10, 183, -34.09999, 0.04662, 11, 109, -34.09999, 0.31165, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.3E-4, 9, 220, -34.09999, 0.01162, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48684, 12, -1.99, -34.09999, 0.31174, 13, -75.98999, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00194, 9, 183, -34.09999, 0.04662, 10, 109, -34.09999, 0.31165, 11, 35, -34.09999, 0.48684, 12, -38.99, -34.09999, 0.14101, 13, -112.98999, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.3E-4, 8, 220, -34.09999, 0.01162, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48684, 11, -1.99, -34.09999, 0.31165, 12, -75.98999, -34.09999, 0.04662, 13, -149.99, -34.09999, 0.00194, 7, 7, 257, -34.09999, 0.00194, 8, 183, -34.09999, 0.04662, 9, 109, -34.09999, 0.31165, 10, 35, -34.09999, 0.48684, 11, -38.99, -34.09999, 0.14101, 12, -112.98999, -34.09999, 0.01162, 13, -186.99, -34.09999, 2.3E-4, 7, 6, 294, -34.09999, 2.3E-4, 7, 220, -34.09999, 0.01162, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48684, 10, -1.99, -34.09999, 0.31165, 11, -75.98999, -34.09999, 0.04662, 12, -149.99, -34.09999, 0.00194, 7, 6, 257, -34.09999, 0.00194, 7, 183, -34.09999, 0.04662, 8, 109, -34.09999, 0.31165, 9, 35, -34.09999, 0.48684, 10, -38.99, -34.09999, 0.14101, 11, -112.98999, -34.09999, 0.01162, 12, -186.99, -34.09999, 2.3E-4, 7, 5, 294, -34.09999, 2.3E-4, 6, 220, -34.09999, 0.01162, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48684, 9, -1.99, -34.09999, 0.31165, 10, -75.98999, -34.09999, 0.04662, 11, -149.99, -34.09999, 0.00194, 7, 5, 257, -34.09999, 0.00194, 6, 183, -34.09999, 0.04662, 7, 109, -34.09999, 0.31165, 8, 35, -34.09999, 0.48684, 9, -38.99, -34.09999, 0.14101, 10, -112.98999, -34.09999, 0.01162, 11, -186.99, -34.09999, 2.3E-4, 7, 4, 294, -34.09999, 2.3E-4, 5, 220, -34.09999, 0.01162, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48684, 8, -1.99, -34.09999, 0.31165, 9, -75.98999, -34.09999, 0.04662, 10, -149.99, -34.09999, 0.00194, 7, 4, 257, -34.09999, 0.00194, 5, 183, -34.09999, 0.04662, 6, 109, -34.09999, 0.31165, 7, 35, -34.09999, 0.48684, 8, -38.99, -34.09999, 0.14101, 9, -112.98999, -34.09999, 0.01162, 10, -186.99, -34.09999, 2.3E-4, 7, 3, 294, -34.09999, 2.3E-4, 4, 220, -34.09999, 0.01162, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48684, 7, -1.99, -34.09999, 0.31165, 8, -75.98999, -34.09999, 0.04662, 9, -149.99, -34.09999, 0.00194, 7, 3, 257, -34.09999, 0.00194, 4, 183, -34.09999, 0.04662, 5, 109, -34.09999, 0.31165, 6, 35, -34.09999, 0.48684, 7, -38.99, -34.09999, 0.14101, 8, -112.98999, -34.09999, 0.01162, 9, -186.99, -34.09999, 2.3E-4, 7, 2, 294, -34.09999, 2.3E-4, 3, 220, -34.09999, 0.01162, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48684, 6, -1.99, -34.09999, 0.31165, 7, -75.98999, -34.09999, 0.04662, 8, -149.99, -34.09999, 0.00194, 7, 2, 257, -34.09999, 0.00194, 3, 183, -34.09999, 0.04662, 4, 109, -34.09999, 0.31165, 5, 35, -34.09999, 0.48684, 6, -38.99, -34.09999, 0.14101, 7, -112.98999, -34.09999, 0.01162, 8, -186.99, -34.09999, 2.3E-4, 7, 1, 294, -34.09999, 2.3E-4, 2, 220, -34.09999, 0.01162, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48684, 5, -1.99, -34.09999, 0.31165, 6, -75.98999, -34.09999, 0.04662, 7, -149.99, -34.09999, 0.00194, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31165, 4, 35, -34.09999, 0.48684, 5, -38.99, -34.09999, 0.14101, 6, -112.98999, -34.09999, 0.01162, 7, -186.99, -34.09999, 2.3E-4, 6, 1, 220, -34.09999, 0.01032, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48684, 4, -1.99, -34.09999, 0.31165, 5, -75.98999, -34.09999, 0.04662, 6, -149.99, -34.09999, 0.00194, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48684, 4, -38.99, -34.09999, 0.14101, 5, -112.98999, -34.09999, 0.01162, 6, -186.99, -34.09999, 2.3E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51232, 3, -1.99, -34.09999, 0.31165, 4, -75.98999, -34.09999, 0.04662, 5, -149.99, -34.09999, 0.00194, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54593, 3, -38.99, -34.09999, 0.14101, 4, -112.98999, -34.09999, 0.01162, 5, -186.99, -34.09999, 2.3E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39737, 3, -75.98999, -34.09999, 0.04662, 4, -149.99, -34.09999, 0.00194, 4, 1, 35, -34.09999, 0.77977, 2, -38.99, -34.09999, 0.20825, 3, -112.98999, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.3E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.98999, -34.09999, 0.10695, 3, -149.99, -34.09999, 0.0027, 3, 1, -1.99, -0.1, 0.9264, 2, -75.98999, -0.1, 0.07271, 3, -149.99, -0.1, 8.5E-4, 3, 1, -1.99, 33.88999, 0.89032, 2, -75.98999, 33.88999, 0.10695, 3, -149.99, 33.88999, 0.0027, 4, 1, 35, 33.88999, 0.77977, 2, -38.99, 33.88999, 0.20825, 3, -112.98999, 33.88999, 0.01171, 4, -186.99, 33.88999, 2.3E-4, 4, 1, 72, 33.88999, 0.55403, 2, -1.99, 33.88999, 0.39737, 3, -75.98999, 33.88999, 0.04662, 4, -149.99, 33.88999, 0.00194, 5, 1, 109, 33.88999, 0.30116, 2, 35, 33.88999, 0.54593, 3, -38.99, 33.88999, 0.14101, 4, -112.98999, 33.88999, 0.01162, 5, -186.99, 33.88999, 2.3E-4, 5, 1, 146, 33.88999, 0.1274, 2, 72, 33.88999, 0.51232, 3, -1.99, 33.88999, 0.31165, 4, -75.98999, 33.88999, 0.04662, 5, -149.99, 33.88999, 0.00194, 6, 1, 183, 33.88999, 0.04058, 2, 109, 33.88999, 0.31966, 3, 35, 33.88999, 0.48684, 4, -38.99, 33.88999, 0.14101, 5, -112.98999, 33.88999, 0.01162, 6, -186.99, 33.88999, 2.3E-4, 6, 1, 220, 33.88999, 0.01032, 2, 146, 33.88999, 0.14256, 3, 72, 33.88999, 0.48684, 4, -1.99, 33.88999, 0.31165, 5, -75.98999, 33.88999, 0.04662, 6, -149.99, 33.88999, 0.00194, 7, 1, 257, 33.88999, 0.0017, 2, 183, 33.88999, 0.04687, 3, 109, 33.88999, 0.31165, 4, 35, 33.88999, 0.48684, 5, -38.99, 33.88999, 0.14101, 6, -112.98999, 33.88999, 0.01162, 7, -186.99, 33.88999, 2.3E-4, 7, 1, 294, 33.88999, 2.3E-4, 2, 220, 33.88999, 0.01162, 3, 146, 33.88999, 0.14101, 4, 72, 33.88999, 0.48684, 5, -1.99, 33.88999, 0.31165, 6, -75.98999, 33.88999, 0.04662, 7, -149.99, 33.88999, 0.00194, 7, 2, 257, 33.88999, 0.00194, 3, 183, 33.88999, 0.04662, 4, 109, 33.88999, 0.31165, 5, 35, 33.88999, 0.48684, 6, -38.99, 33.88999, 0.14101, 7, -112.98999, 33.88999, 0.01162, 8, -186.99, 33.88999, 2.3E-4, 7, 2, 294, 33.88999, 2.3E-4, 3, 220, 33.88999, 0.01162, 4, 146, 33.88999, 0.14101, 5, 72, 33.88999, 0.48684, 6, -1.99, 33.88999, 0.31165, 7, -75.98999, 33.88999, 0.04662, 8, -149.99, 33.88999, 0.00194, 7, 3, 257, 33.88999, 0.00194, 4, 183, 33.88999, 0.04662, 5, 109, 33.88999, 0.31165, 6, 35, 33.88999, 0.48684, 7, -38.99, 33.88999, 0.14101, 8, -112.98999, 33.88999, 0.01162, 9, -186.99, 33.88999, 2.3E-4, 7, 3, 294, 33.88999, 2.3E-4, 4, 220, 33.88999, 0.01162, 5, 146, 33.88999, 0.14101, 6, 72, 33.88999, 0.48684, 7, -1.99, 33.88999, 0.31165, 8, -75.98999, 33.88999, 0.04662, 9, -149.99, 33.88999, 0.00194, 7, 4, 257, 33.88999, 0.00194, 5, 183, 33.88999, 0.04662, 6, 109, 33.88999, 0.31165, 7, 35, 33.88999, 0.48684, 8, -38.99, 33.88999, 0.14101, 9, -112.98999, 33.88999, 0.01162, 10, -186.99, 33.88999, 2.3E-4, 7, 4, 294, 33.88999, 2.3E-4, 5, 220, 33.88999, 0.01162, 6, 146, 33.88999, 0.14101, 7, 72, 33.88999, 0.48684, 8, -1.99, 33.88999, 0.31165, 9, -75.98999, 33.88999, 0.04662, 10, -149.99, 33.88999, 0.00194, 7, 5, 257, 33.88999, 0.00194, 6, 183, 33.88999, 0.04662, 7, 109, 33.88999, 0.31165, 8, 35, 33.88999, 0.48684, 9, -38.99, 33.88999, 0.14101, 10, -112.98999, 33.88999, 0.01162, 11, -186.99, 33.88999, 2.3E-4, 7, 5, 294, 33.88999, 2.3E-4, 6, 220, 33.88999, 0.01162, 7, 146, 33.88999, 0.14101, 8, 72, 33.88999, 0.48684, 9, -1.99, 33.88999, 0.31165, 10, -75.98999, 33.88999, 0.04662, 11, -149.99, 33.88999, 0.00194, 7, 6, 257, 33.88999, 0.00194, 7, 183, 33.88999, 0.04662, 8, 109, 33.88999, 0.31165, 9, 35, 33.88999, 0.48684, 10, -38.99, 33.88999, 0.14101, 11, -112.98999, 33.88999, 0.01162, 12, -186.99, 33.88999, 2.3E-4, 7, 6, 294, 33.88999, 2.3E-4, 7, 220, 33.88999, 0.01162, 8, 146, 33.88999, 0.14101, 9, 72, 33.88999, 0.48684, 10, -1.99, 33.88999, 0.31165, 11, -75.98999, 33.88999, 0.04662, 12, -149.99, 33.88999, 0.00194, 7, 7, 257, 33.88999, 0.00194, 8, 183, 33.88999, 0.04662, 9, 109, 33.88999, 0.31165, 10, 35, 33.88999, 0.48684, 11, -38.99, 33.88999, 0.14101, 12, -112.98999, 33.88999, 0.01162, 13, -186.99, 33.88999, 2.3E-4, 7, 7, 294, 33.88999, 2.3E-4, 8, 220, 33.88999, 0.01162, 9, 146, 33.88999, 0.14101, 10, 72, 33.88999, 0.48684, 11, -1.99, 33.88999, 0.31165, 12, -75.98999, 33.88999, 0.04662, 13, -149.99, 33.88999, 0.00194, 6, 8, 257, 33.88999, 0.00194, 9, 183, 33.88999, 0.04662, 10, 109, 33.88999, 0.31165, 11, 35, 33.88999, 0.48684, 12, -38.99, 33.88999, 0.14101, 13, -112.98999, 33.88999, 0.01188, 6, 8, 294, 33.88999, 2.3E-4, 9, 220, 33.88999, 0.01162, 10, 146, 33.88999, 0.14101, 11, 72, 33.88999, 0.48684, 12, -1.99, 33.88999, 0.31174, 13, -75.98999, 33.88999, 0.0485, 5, 9, 257, 33.88999, 0.00194, 10, 183, 33.88999, 0.04662, 11, 109, 33.88999, 0.31165, 12, 35, 33.88999, 0.48761, 13, -38.99, 33.88999, 0.15212, 5, 9, 294, 33.88999, 2.3E-4, 10, 220, 33.88999, 0.01162, 11, 146, 33.88999, 0.14109, 12, 72, 33.88999, 0.49171, 13, -1.99, 33.88999, 0.3553, 4, 10, 257, 33.88999, 0.00194, 11, 183, 33.88999, 0.04738, 12, 109, 33.88999, 0.33351, 13, 35, 33.88999, 0.61713, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31657, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00541, 11, 146, -0.1, 0.11401, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33272, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03044, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00541, 10, 146, -0.1, 0.11401, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.98999, -0.1, 0.03109, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03044, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11401, 13, -112.98999, -0.1, 0.00541, 6, 8, 220, -0.1, 0.00541, 9, 146, -0.1, 0.11401, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.98999, -0.1, 0.03044, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03044, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11401, 12, -112.98999, -0.1, 0.00541, 6, 7, 220, -0.1, 0.00541, 8, 146, -0.1, 0.11401, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.98999, -0.1, 0.03044, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03044, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11401, 11, -112.98999, -0.1, 0.00541, 6, 6, 220, -0.1, 0.00541, 7, 146, -0.1, 0.11401, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.98999, -0.1, 0.03044, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03044, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11401, 10, -112.98999, -0.1, 0.00541, 6, 5, 220, -0.1, 0.00541, 6, 146, -0.1, 0.11401, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.98999, -0.1, 0.03044, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03044, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11401, 9, -112.98999, -0.1, 0.00541, 6, 4, 220, -0.1, 0.00541, 5, 146, -0.1, 0.11401, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.98999, -0.1, 0.03044, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03044, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11401, 8, -112.98999, -0.1, 0.00541, 6, 3, 220, -0.1, 0.00541, 4, 146, -0.1, 0.11401, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.98999, -0.1, 0.03044, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03044, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11401, 7, -112.98999, -0.1, 0.00541, 6, 2, 220, -0.1, 0.00541, 3, 146, -0.1, 0.11401, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.98999, -0.1, 0.03044, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03044, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11401, 6, -112.98999, -0.1, 0.00541, 6, 1, 220, -0.1, 0.00476, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.98999, -0.1, 0.03044, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11401, 5, -112.98999, -0.1, 0.00541, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.98999, -0.1, 0.03044, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11401, 4, -112.98999, -0.1, 0.00541, 4, 1, 72, -0.1, 0.55928, 2, -1.99, -0.1, 0.40959, 3, -75.98999, -0.1, 0.03044, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81844, 2, -38.99, -0.1, 0.1761, 3, -112.98999, -0.1, 0.00541 ], "hull": 56, "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], "width": 68, @@ -51,7 +59,7 @@ "type": "path", "lengths": [ 223.68, 474.79, 780.31, 992.69, 1196.43, 2277.75 ], "vertexCount": 18, - "vertices": [ 1, 14, -31.64, 22.49, 1, 1, 14, -2.73, -6.56, 1, 1, 14, 56.89, -69, 1, 1, 14, 115.57, 75.01, 1, 1, 14, 198.6, 53.37, 1, 2, 14, 332.76, 19.74, 0.8, 15, 36.41, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.232, 15, -21.1, -68.01999, 0.76799, 1, 15, 96.09, -93.88, 1, 2, 15, 229.75, -122.63, 0.664, 16, -63.18, -122.45, 0.33599, 2, 15, 242.53, 29.31, 0.52, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.42, 47.85, 0.80799, 17, -63.65, 48.41, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.56, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.81, 6.41, 0.784, 1, 17, 138.78, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.02, 1 ] + "vertices": [ 1, 14, -31.63999, 22.48999, 1, 1, 14, -2.73, -6.55999, 1, 1, 14, 56.88999, -69, 1, 1, 14, 115.56999, 75.01, 1, 1, 14, 198.6, 53.36999, 1, 2, 14, 332.76, 19.73999, 0.8, 15, 36.40999, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.23199, 15, -21.1, -68.01999, 0.76798, 1, 15, 96.08999, -93.87999, 1, 2, 15, 229.75, -122.62999, 0.66399, 16, -63.18, -122.44999, 0.33599, 2, 15, 242.52998, 29.30999, 0.51999, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.41998, 47.84999, 0.80799, 17, -63.65, 48.40999, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.55999, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.80999, 6.40999, 0.78399, 1, 17, 138.77998, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.01999, 1 ] } } } @@ -110,7 +118,7 @@ "angle": 5.65, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": 1.35 } + { "time": 7.5999, "angle": 1.35 } ], "scale": [ { @@ -126,7 +134,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.568, 0.99 ] @@ -151,7 +159,7 @@ "angle": -8.18, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.96 } + { "time": 7.5999, "angle": -0.96 } ], "scale": [ { @@ -167,7 +175,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -197,7 +205,7 @@ "angle": -15.24, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.16 } + { "time": 7.5999, "angle": -0.16 } ], "scale": [ { @@ -213,7 +221,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -243,7 +251,7 @@ "angle": 15.02, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.5 } + { "time": 7.5999, "angle": -0.5 } ], "scale": [ { @@ -259,7 +267,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] diff --git a/spine-starling/spine-starling/lib/spine-as3.swc b/spine-starling/spine-starling/lib/spine-as3.swc index 26a28913d9aafe2036e8c020a27e0d0e21930fb4..00486d2a27d5195154c44c4c2011278dcfe1823d 100644 GIT binary patch literal 86016 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У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 literal 74436 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

Gr;n4O?CcibVg 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 duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -106,6 +122,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -113,7 +130,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -123,8 +140,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -136,16 +154,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -161,42 +182,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -208,8 +234,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -225,8 +252,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -236,12 +264,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -253,62 +283,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -332,494 +422,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -949,6 +551,528 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} declare module spine.threejs { class AssetManager extends spine.AssetManager { constructor(pathPrefix?: string); @@ -1424,6 +1548,7 @@ declare module spine { scale: number; x: number; y: number; + alpha: boolean; fitToCanvas: boolean; backgroundColor: string; premultipliedAlpha: boolean; diff --git a/spine-ts/build/spine-all.js b/spine-ts/build/spine-all.js index 21ff42190..cfed7d2a3 100644 --- a/spine-ts/build/spine-all.js +++ b/spine-ts/build/spine-all.js @@ -20,14 +20,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -43,22 +43,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -362,7 +362,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -372,19 +372,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -412,6 +400,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -500,40 +505,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -548,29 +561,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -586,23 +617,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -612,23 +678,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -639,6 +723,9 @@ var spine; _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; @@ -647,10 +734,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -672,11 +763,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -696,6 +790,9 @@ var spine; 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; }; @@ -703,10 +800,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -719,11 +827,107 @@ var spine; 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; }; @@ -731,13 +935,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -767,6 +971,9 @@ var spine; 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; }; @@ -774,17 +981,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -796,90 +1010,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -896,6 +1077,9 @@ var spine; _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; @@ -904,31 +1088,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -949,26 +1155,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -982,21 +1198,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -1007,31 +1233,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -1047,97 +1289,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -1145,54 +1553,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -1201,14 +1586,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -1218,27 +1612,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -1257,50 +1765,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1373,6 +2003,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1394,15 +2439,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1420,12 +2470,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1441,92 +2500,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1546,22 +2610,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1572,25 +2636,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1599,21 +2664,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1644,8 +2708,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1657,6 +2720,14 @@ var spine; 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) { @@ -1687,7 +2758,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1700,6 +2770,9 @@ var spine; 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(); }; @@ -1716,25 +2789,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1755,7 +2834,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1763,7 +2842,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1853,20 +2932,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1876,6 +2955,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1950,14 +3030,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1977,7 +3062,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1985,6 +3070,9 @@ var spine; 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) @@ -1997,6 +3085,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -2223,7 +3312,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -2233,6 +3322,9 @@ var spine; 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; @@ -2244,6 +3336,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2411,6 +3504,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2442,7 +3536,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2466,82 +3559,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2586,6 +3684,18 @@ var spine; } }; 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(); @@ -2840,8 +3950,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2972,6 +4089,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -3029,9 +4147,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -3110,19 +4228,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -3131,8 +4250,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -3157,6 +4275,7 @@ var spine; 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); @@ -3177,6 +4296,7 @@ var spine; 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); @@ -3205,6 +4325,7 @@ var spine; 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); @@ -3256,10 +4377,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3269,7 +4390,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3325,10 +4446,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3656,11 +4777,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3723,6 +4844,20 @@ var spine; 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; @@ -4030,12 +5165,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -4046,24 +5185,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -4073,13 +5217,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -4088,6 +5238,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -4109,6 +5260,27 @@ var spine; })(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; } @@ -4195,7 +5367,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4233,6 +5405,12 @@ var spine; } 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++) @@ -4278,11 +5456,16 @@ var spine; 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++) + 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; @@ -4348,423 +5531,6 @@ var spine; spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 threejs; (function (threejs) { @@ -6427,12 +7193,12 @@ var spine; } }; Shader.newColoredTextured = function (gl) { - 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 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(gl, vs, fs); }; Shader.newColored = function (gl) { - 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 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(gl, vs, fs); }; @@ -7125,7 +7891,7 @@ var spine; element.appendChild(canvas); canvas.width = element.clientWidth; canvas.height = element.clientHeight; - var webglConfig = { alpha: false }; + var webglConfig = { alpha: config.alpha }; var gl = this.gl = (canvas.getContext("webgl", webglConfig) || canvas.getContext("experimental-webgl", webglConfig)); this.shader = spine.webgl.Shader.newColoredTextured(gl); this.batcher = new spine.webgl.PolygonBatcher(gl); @@ -7174,6 +7940,8 @@ var spine; 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; }; @@ -7336,6 +8104,8 @@ var spine; 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 () { @@ -7368,6 +8138,7 @@ var spine; this.scale = 1.0; this.x = 0; this.y = 0; + this.alpha = true; this.fitToCanvas = true; this.backgroundColor = "#555555"; this.premultipliedAlpha = false; diff --git a/spine-ts/build/spine-all.js.map b/spine-ts/build/spine-all.js.map index 6719c8be0..2c9d1fc78 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/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/RegionAttachment.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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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;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,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,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,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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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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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/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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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,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,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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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,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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,GAA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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 e4b7883df..a909b07f1 100644 --- a/spine-ts/build/spine-canvas.d.ts +++ b/spine-ts/build/spine-canvas.d.ts @@ -92,13 +92,29 @@ declare module spine { timelines: Array; duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -106,6 +122,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -113,7 +130,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -123,8 +140,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -136,16 +154,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -161,42 +182,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -208,8 +234,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -225,8 +252,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -236,12 +264,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -253,62 +283,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -332,494 +422,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -949,3 +551,525 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} diff --git a/spine-ts/build/spine-canvas.js b/spine-ts/build/spine-canvas.js index 76f4f7c6e..ab455e2ed 100644 --- a/spine-ts/build/spine-canvas.js +++ b/spine-ts/build/spine-canvas.js @@ -20,14 +20,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -43,22 +43,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -362,7 +362,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -372,19 +372,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -412,6 +400,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -500,40 +505,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -548,29 +561,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -586,23 +617,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -612,23 +678,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -639,6 +723,9 @@ var spine; _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; @@ -647,10 +734,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -672,11 +763,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -696,6 +790,9 @@ var spine; 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; }; @@ -703,10 +800,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -719,11 +827,107 @@ var spine; 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; }; @@ -731,13 +935,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -767,6 +971,9 @@ var spine; 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; }; @@ -774,17 +981,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -796,90 +1010,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -896,6 +1077,9 @@ var spine; _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; @@ -904,31 +1088,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -949,26 +1155,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -982,21 +1198,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -1007,31 +1233,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -1047,97 +1289,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -1145,54 +1553,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -1201,14 +1586,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -1218,27 +1612,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -1257,50 +1765,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1373,6 +2003,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1394,15 +2439,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1420,12 +2470,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1441,92 +2500,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1546,22 +2610,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1572,25 +2636,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1599,21 +2664,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1644,8 +2708,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1657,6 +2720,14 @@ var spine; 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) { @@ -1687,7 +2758,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1700,6 +2770,9 @@ var spine; 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(); }; @@ -1716,25 +2789,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1755,7 +2834,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1763,7 +2842,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1853,20 +2932,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1876,6 +2955,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1950,14 +3030,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1977,7 +3062,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1985,6 +3070,9 @@ var spine; 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) @@ -1997,6 +3085,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -2223,7 +3312,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -2233,6 +3322,9 @@ var spine; 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; @@ -2244,6 +3336,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2411,6 +3504,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2442,7 +3536,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2466,82 +3559,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2586,6 +3684,18 @@ var spine; } }; 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(); @@ -2840,8 +3950,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2972,6 +4089,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -3029,9 +4147,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -3110,19 +4228,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -3131,8 +4250,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -3157,6 +4275,7 @@ var spine; 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); @@ -3177,6 +4296,7 @@ var spine; 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); @@ -3205,6 +4325,7 @@ var spine; 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); @@ -3256,10 +4377,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3269,7 +4390,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3325,10 +4446,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3656,11 +4777,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3723,6 +4844,20 @@ var spine; 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; @@ -4030,12 +5165,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -4046,24 +5185,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -4073,13 +5217,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -4088,6 +5238,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -4109,6 +5260,27 @@ var spine; })(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; } @@ -4195,7 +5367,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4233,6 +5405,12 @@ var spine; } 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++) @@ -4278,11 +5456,16 @@ var spine; 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++) + 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; @@ -4347,421 +5530,4 @@ var spine; }()); spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 = {})); //# 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 bb9d43852..5a6dc8dd4 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/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/RegionAttachment.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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/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-core.d.ts b/spine-ts/build/spine-core.d.ts index c572553eb..77bef45a7 100644 --- a/spine-ts/build/spine-core.d.ts +++ b/spine-ts/build/spine-core.d.ts @@ -4,13 +4,29 @@ declare module spine { timelines: Array; duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -18,6 +34,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -25,7 +42,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -35,8 +52,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -48,16 +66,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -73,42 +94,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -120,8 +146,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -137,8 +164,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -148,12 +176,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -165,62 +195,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -266,534 +356,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -923,3 +485,565 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} diff --git a/spine-ts/build/spine-core.js b/spine-ts/build/spine-core.js index 5e5c762dc..b93e9b17c 100644 --- a/spine-ts/build/spine-core.js +++ b/spine-ts/build/spine-core.js @@ -15,7 +15,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -25,19 +25,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -65,6 +53,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -153,40 +158,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -201,29 +214,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -239,23 +270,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -265,23 +331,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -292,6 +376,9 @@ var spine; _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; @@ -300,10 +387,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -325,11 +416,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -349,6 +443,9 @@ var spine; 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; }; @@ -356,10 +453,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -372,11 +480,107 @@ var spine; 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; }; @@ -384,13 +588,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -420,6 +624,9 @@ var spine; 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; }; @@ -427,17 +634,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -449,90 +663,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -549,6 +730,9 @@ var spine; _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; @@ -557,31 +741,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -602,26 +808,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -635,21 +851,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -660,31 +886,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -700,97 +942,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -798,54 +1206,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -854,14 +1239,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -871,27 +1265,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -910,50 +1418,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1013,14 +1643,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -1036,22 +1666,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -1130,6 +1760,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1151,15 +2196,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1177,12 +2227,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1198,92 +2257,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1303,22 +2367,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1329,25 +2393,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1356,21 +2421,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1401,8 +2465,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1414,6 +2477,14 @@ var spine; 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) { @@ -1444,7 +2515,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1457,6 +2527,9 @@ var spine; 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(); }; @@ -1473,25 +2546,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1512,7 +2591,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1520,7 +2599,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1610,20 +2689,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1633,6 +2712,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1707,14 +2787,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1734,7 +2819,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1742,6 +2827,9 @@ var spine; 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) @@ -1754,6 +2842,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -1980,7 +3069,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -1990,6 +3079,9 @@ var spine; 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; @@ -2001,6 +3093,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2168,6 +3261,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2199,7 +3293,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2223,82 +3316,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2343,6 +3441,18 @@ var spine; } }; 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(); @@ -2597,8 +3707,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2729,6 +3846,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -2786,9 +3904,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -2867,19 +3985,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -2888,8 +4007,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -2914,6 +4032,7 @@ var spine; 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); @@ -2934,6 +4053,7 @@ var spine; 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); @@ -2962,6 +4082,7 @@ var spine; 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); @@ -3013,10 +4134,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3026,7 +4147,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3082,10 +4203,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3413,11 +4534,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3480,6 +4601,20 @@ var spine; 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; @@ -3853,12 +4988,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -3869,24 +5008,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -3896,13 +5040,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -3911,6 +5061,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -3932,6 +5083,27 @@ var spine; })(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; } @@ -4018,7 +5190,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4056,6 +5228,12 @@ var spine; } 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++) @@ -4101,11 +5279,16 @@ var spine; 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++) + 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; @@ -4170,421 +5353,4 @@ var spine; }()); spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 = {})); //# 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 4b9dbfbc5..470a6f69f 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/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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/Updatable.ts","../core/src/Utils.ts"],"names":[],"mappings":";;;;;AA8BA,IAAO,KAAK,CA4/BX;AA5/BD,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;IACjE,CAAC,EANW,kBAAY,KAAZ,kBAAY,QAMvB;IAND,IAAY,YAAY,GAAZ,kBAMX,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;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,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YACnD,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,EA5/BM,KAAK,KAAL,KAAK,QA4/BX;AC5/BD,IAAO,KAAK,CAmtBX;AAntBD,WAAO,KAAK,EAAC,CAAC;IACb;QAcC,wBAAa,IAAwB;YAVrC,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,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,CAAC,CAAC;wBACzB,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;oBACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAE5C,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;wBACzE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC1B,QAAQ,CAAC;oBACV,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,KAAiB,EAAE,KAAa,EAAE,MAAe;YAClE,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YAC5B,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC;YAEzB,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC9B,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;gBAC3B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,MAAM,CAAC;gBAC5B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBACrC,IAAI,GAAG,OAAO,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC;YAClC,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;YAEjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAC/D,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;oBAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAG/E,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,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,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;oBAC5C,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,cAAc,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EAC9G,UAAU,CAAC,CAAC;wBACd,CAAC;wBAAC,IAAI;4BACL,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACjG,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzC,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,KAAiB,EAAE,QAAkB;YACrD,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;YAC5B,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,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;gBAC1B,GAAG,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC;gBACL,GAAG,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;gBACxC,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,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAEpD,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,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,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClC,EAAE,CAAC,CAAC,QAAQ,YAAY,oBAAc,CAAC;oBACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;gBACtH,IAAI,CAAC,CAAC;oBACL,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;wBAChB,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,SAAS,EAAE,IAAI,CAAC,CAAC;gBACxF,CAAC;YACF,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACtC,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;YAChE,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,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,KAAK,GAAG,CAAC,CAAC;gBACX,CAAC;gBAAC,IAAI;oBACL,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC/B,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;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,oCAAW,GAAX;YACC,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,KAAK,CAAC;YACjC,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;YAC7C,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,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAGpB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;oBAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC/F,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,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,IAAI,CAAC;oBAC/B,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,IAAI,CAAC;gBAChB,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,CAAC,CAAC;YACnC,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,CAAC,CAAC;gBACnC,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,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,KAAK,CAAC;YACjC,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,IAAI,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YAC9D,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YACnB,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;YAGnC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAClC,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,EAAE,CAAC;gBACJ,KAAK,CAAC;YACP,CAAC;YACD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;oBAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;QAED,0CAAiB,GAAjB,UAAmB,KAAiB;YACnC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBACtD,MAAM,CAAC;YACR,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YACzB,IAAI,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC9C,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,CAAC;QACF,CAAC;QAED,4CAAmB,GAAnB,UAAqB,KAAiB;YACrC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,4CAAmB,GAAnB,UAAqB,KAAiB,EAAE,UAA0B;YACjE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1C,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YACzB,IAAI,KAAK,GAAG,WAAK,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACzB,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3D,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;QAnhBM,6BAAc,GAAG,IAAI,eAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAohBzD,qBAAC;IAAD,CAAC,AArhBD,IAqhBC;IArhBY,oBAAc,iBAqhB1B,CAAA;IAED;QAAA;YAUC,mBAAc,GAAG,IAAI,KAAK,EAAW,CAAC;YACtC,sBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QAgCzC,CAAC;QA9BA,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,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,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,AA3CD,IA2CC;IA3CY,gBAAU,aA2CtB,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,EAntBM,KAAK,KAAL,KAAK,QAmtBX;ACntBD,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,CA0GX;AA1GD,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,GAAG,GAAG,IAAI,CAAC;YACf,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;QACF,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,AAxGD,IAwGC;IAxGY,kBAAY,eAwGxB,CAAA;AACF,CAAC,EA1GM,KAAK,KAAL,KAAK,QA0GX;AC1GD,IAAO,KAAK,CAsCX;AAtCD,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;QACF,4BAAC;IAAD,CAAC,AApCD,IAoCC;IApCY,2BAAqB,wBAoCjC,CAAA;AACF,CAAC,EAtCM,KAAK,KAAL,KAAK,QAsCX;ACtCD,IAAO,KAAK,CA2FX;AA3FD,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;QAED,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC;YACjE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAOD,mDAAwB,GAAxB,UAA0B,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc;YACnH,KAAK,IAAI,MAAM,CAAC;YAChB,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,CAAC,EAAE,CAAC;oBAC3D,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,CAAC,EAAE,CAAC;oBACtD,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,CAAC,EAAE,CAAC;oBACrE,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,AAhFD,CAA+C,UAAU,GAgFxD;IAhFqB,sBAAgB,mBAgFrC,CAAA;AACF,CAAC,EA3FM,KAAK,KAAL,KAAK,QA2FX;AE3FD,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;IAC5C,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,CA4IX;AA5ID,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,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,mBAAmB,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,mBAAmB,CAAC;gBAClF,IAAI,CAAC,aAAa,GAAG,WAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAE/D,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,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBAChE,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC3D,CAAC;YACF,CAAC;QACF,CAAC;QAGD,4CAAmB,GAAnB,UAAqB,IAAU,EAAE,kBAA2B;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YACnF,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACjE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACxD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACxD,KAAK,CAAC,CAAC;YAER,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACjE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACrC,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,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,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;oBAC3C,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC,aAAa,CAAC;YACtB,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,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/D,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5B,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;oBAC1B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpC,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;oBAC1B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,aAAa,CAAC;QACtB,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,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACzC,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AAzID,CAAoC,sBAAgB,GAyInD;IAzIY,oBAAc,iBAyI1B,CAAA;AAEF,CAAC,EA5IM,KAAK,KAAL,KAAK,QA4IX;AC5ID,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,CA+KX;AA/KD,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,aAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtC,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,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,8CAAmB,GAAnB,UAAqB,IAAU,EAAE,kBAA2B;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;YAC1D,IAAI,UAAU,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EACnE,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;YAER,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,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,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,MAAM,CAAC,QAAQ,CAAC;QACjB,CAAC;QA3KM,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;QAiIhB,uBAAC;IAAD,CAAC,AA7KD,CAAsC,gBAAU,GA6K/C;IA7KY,sBAAgB,mBA6K5B,CAAA;AACF,CAAC,EA/KM,KAAK,KAAL,KAAK,QA+KX;AC/KD,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,CAkRX;AAlRD,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;QAED,oCAAqB,GAArB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACxE,CAAC;QAED,oCAAqB,GAArB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACxE,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;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;QACF,WAAC;IAAD,CAAC,AAhRD,IAgRC;IAhRY,UAAI,OAgRhB,CAAA;AACF,CAAC,EAlRM,KAAK,KAAL,KAAK,QAkRX;AClRD,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,CAoMX;AApMD,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,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,IAAI,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAClD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,CAAC,CAAC;oBACb,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,eAAS,CAAC,EAAE,CAAC;oBACxB,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,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,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,AAlMD,IAkMC;IAlMY,kBAAY,eAkMxB,CAAA;AACF,CAAC,EApMM,KAAK,KAAL,KAAK,QAoMX;ACpMD,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,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,QAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,QAAM,GAAG,IAAI,CAAC,CAAC,CAAC;oBACxE,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,EAAE,CAAC,CAAC,KAAK,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;oBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;gBACvE,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,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,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACxE,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,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvE,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,CAAC;wBAAC,IAAI;4BACL,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACpE,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;gBACvE,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,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,CA4cX;AA5cD,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;YAEvB,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,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;gBAC1D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE7E,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,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhC,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,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,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhC,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;QAKD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa;YACxC,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,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC;oBAC1C,QAAQ,GAAsB,UAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5E,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC;oBAC7C,QAAQ,GAAoB,UAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzE,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,AA1cD,IA0cC;IA1cY,cAAQ,WA0cpB,CAAA;AACF,CAAC,EA5cM,KAAK,KAAL,KAAK,QA4cX;AC5cD,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,OAAO,CAAC,CAAC;gBACjD,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,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,CA6rBX;AA7rBD,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,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,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,CAAC,CAAC;4BACrF,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;YACpE,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,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;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,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,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBACvB,CAAC;gBACD,UAAU,CAAC,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnD,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,OAAO,CAAC,CAAC,CAAC;4BAC7B,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,GAAG,YAAY,CAAC,CAAC,CAAC;4BACxC,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;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,AA9qBD,IA8qBC;IA9qBY,kBAAY,eA8qBxB,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,EA7rBM,KAAK,KAAL,KAAK,QA6rBX;AC7rBD,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,CAmDX;AAnDD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,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,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,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,AAjDD,IAiDC;IAjDY,UAAI,OAiDhB,CAAA;AACF,CAAC,EAnDM,KAAK,KAAL,KAAK,QAmDX;ACnDD,IAAO,KAAK,CAkBX;AAlBD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAJ5D,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAK7B,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,AAhBD,IAgBC;IAhBY,cAAQ,WAgBpB,CAAA;AACF,CAAC,EAlBM,KAAK,KAAL,KAAK,QAkBX;AClBD,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,CAmGX;AAnGD,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,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,sCAAQ,GAAR;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,CAAC;QACF,0BAAC;IAAD,CAAC,AAjGD,IAiGC;IAjGY,yBAAmB,sBAiG/B,CAAA;AACF,CAAC,EAnGM,KAAK,KAAL,KAAK,QAmGX;ACnGD,IAAO,KAAK,CAcX;AAdD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,iCAAa,IAAY;YANzB,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;YAGlG,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,AAZD,IAYC;IAZY,6BAAuB,0BAYnC,CAAA;AACF,CAAC,EAdM,KAAK,KAAL,KAAK,QAcX;AEdD,IAAO,KAAK,CA4QX;AA5QD,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;IAMD;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;QA2CA,CAAC;QAxCO,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,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QAzCM,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QA0CrE,YAAC;IAAD,CAAC,AA3CD,IA2CC;IA3CY,WAAK,QA2CjB,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;AAMF,CAAC,EA5QM,KAAK,KAAL,KAAK,QA4QX"} \ 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 176f65c93..8d46df247 100644 --- a/spine-ts/build/spine-threejs.d.ts +++ b/spine-ts/build/spine-threejs.d.ts @@ -4,13 +4,29 @@ declare module spine { timelines: Array; duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -18,6 +34,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -25,7 +42,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -35,8 +52,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -48,16 +66,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -73,42 +94,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -120,8 +146,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -137,8 +164,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -148,12 +176,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -165,62 +195,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -266,534 +356,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -923,6 +485,568 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} 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 dfe57a61a..b28cf868c 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -15,7 +15,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -25,19 +25,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -65,6 +53,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -153,40 +158,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -201,29 +214,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -239,23 +270,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -265,23 +331,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -292,6 +376,9 @@ var spine; _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; @@ -300,10 +387,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -325,11 +416,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -349,6 +443,9 @@ var spine; 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; }; @@ -356,10 +453,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -372,11 +480,107 @@ var spine; 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; }; @@ -384,13 +588,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -420,6 +624,9 @@ var spine; 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; }; @@ -427,17 +634,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -449,90 +663,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -549,6 +730,9 @@ var spine; _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; @@ -557,31 +741,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -602,26 +808,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -635,21 +851,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -660,31 +886,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -700,97 +942,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -798,54 +1206,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -854,14 +1239,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -871,27 +1265,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -910,50 +1418,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1013,14 +1643,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -1036,22 +1666,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -1130,6 +1760,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1151,15 +2196,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1177,12 +2227,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1198,92 +2257,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1303,22 +2367,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1329,25 +2393,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1356,21 +2421,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1401,8 +2465,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1414,6 +2477,14 @@ var spine; 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) { @@ -1444,7 +2515,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1457,6 +2527,9 @@ var spine; 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(); }; @@ -1473,25 +2546,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1512,7 +2591,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1520,7 +2599,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1610,20 +2689,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1633,6 +2712,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1707,14 +2787,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1734,7 +2819,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1742,6 +2827,9 @@ var spine; 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) @@ -1754,6 +2842,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -1980,7 +3069,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -1990,6 +3079,9 @@ var spine; 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; @@ -2001,6 +3093,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2168,6 +3261,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2199,7 +3293,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2223,82 +3316,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2343,6 +3441,18 @@ var spine; } }; 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(); @@ -2597,8 +3707,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2729,6 +3846,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -2786,9 +3904,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -2867,19 +3985,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -2888,8 +4007,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -2914,6 +4032,7 @@ var spine; 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); @@ -2934,6 +4053,7 @@ var spine; 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); @@ -2962,6 +4082,7 @@ var spine; 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); @@ -3013,10 +4134,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3026,7 +4147,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3082,10 +4203,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3413,11 +4534,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3480,6 +4601,20 @@ var spine; 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; @@ -3853,12 +4988,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -3869,24 +5008,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -3896,13 +5040,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -3911,6 +5061,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -3932,6 +5083,27 @@ var spine; })(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; } @@ -4018,7 +5190,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4056,6 +5228,12 @@ var spine; } 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++) @@ -4101,11 +5279,16 @@ var spine; 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++) + 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; @@ -4171,423 +5354,6 @@ var spine; spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 threejs; (function (threejs) { diff --git a/spine-ts/build/spine-threejs.js.map b/spine-ts/build/spine-threejs.js.map index ca4c0c78e..c8b08f60d 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/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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/RegionAttachment.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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/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 3dab8264c..5975a9317 100644 --- a/spine-ts/build/spine-webgl.d.ts +++ b/spine-ts/build/spine-webgl.d.ts @@ -4,13 +4,29 @@ declare module spine { timelines: Array; duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -18,6 +34,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -25,7 +42,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -35,8 +52,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -48,16 +66,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -73,42 +94,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -120,8 +146,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -137,8 +164,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -148,12 +176,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -165,62 +195,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -266,534 +356,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -923,6 +485,568 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} declare module spine.webgl { class AssetManager extends spine.AssetManager { constructor(gl: WebGLRenderingContext, pathPrefix?: string); diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index 1a4c95333..f8a669993 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -15,7 +15,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -25,19 +25,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -65,6 +53,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -153,40 +158,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -201,29 +214,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -239,23 +270,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -265,23 +331,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -292,6 +376,9 @@ var spine; _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; @@ -300,10 +387,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -325,11 +416,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -349,6 +443,9 @@ var spine; 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; }; @@ -356,10 +453,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -372,11 +480,107 @@ var spine; 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; }; @@ -384,13 +588,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -420,6 +624,9 @@ var spine; 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; }; @@ -427,17 +634,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -449,90 +663,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -549,6 +730,9 @@ var spine; _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; @@ -557,31 +741,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -602,26 +808,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -635,21 +851,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -660,31 +886,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -700,97 +942,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -798,54 +1206,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -854,14 +1239,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -871,27 +1265,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -910,50 +1418,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1013,14 +1643,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -1036,22 +1666,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -1130,6 +1760,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1151,15 +2196,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1177,12 +2227,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1198,92 +2257,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1303,22 +2367,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1329,25 +2393,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1356,21 +2421,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1401,8 +2465,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1414,6 +2477,14 @@ var spine; 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) { @@ -1444,7 +2515,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1457,6 +2527,9 @@ var spine; 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(); }; @@ -1473,25 +2546,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1512,7 +2591,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1520,7 +2599,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1610,20 +2689,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1633,6 +2712,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1707,14 +2787,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1734,7 +2819,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1742,6 +2827,9 @@ var spine; 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) @@ -1754,6 +2842,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -1980,7 +3069,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -1990,6 +3079,9 @@ var spine; 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; @@ -2001,6 +3093,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2168,6 +3261,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2199,7 +3293,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2223,82 +3316,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2343,6 +3441,18 @@ var spine; } }; 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(); @@ -2597,8 +3707,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2729,6 +3846,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -2786,9 +3904,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -2867,19 +3985,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -2888,8 +4007,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -2914,6 +4032,7 @@ var spine; 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); @@ -2934,6 +4053,7 @@ var spine; 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); @@ -2962,6 +4082,7 @@ var spine; 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); @@ -3013,10 +4134,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3026,7 +4147,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3082,10 +4203,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3413,11 +4534,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3480,6 +4601,20 @@ var spine; 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; @@ -3853,12 +4988,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -3869,24 +5008,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -3896,13 +5040,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -3911,6 +5061,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -3932,6 +5083,27 @@ var spine; })(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; } @@ -4018,7 +5190,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4056,6 +5228,12 @@ var spine; } 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++) @@ -4101,11 +5279,16 @@ var spine; 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++) + 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; @@ -4171,423 +5354,6 @@ var spine; spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 webgl; (function (webgl) { @@ -6006,12 +6772,12 @@ var spine; } }; Shader.newColoredTextured = function (gl) { - 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 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(gl, vs, fs); }; Shader.newColored = function (gl) { - 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 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(gl, vs, fs); }; diff --git a/spine-ts/build/spine-webgl.js.map b/spine-ts/build/spine-webgl.js.map index c4ae9a6cd..8a8dda393 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/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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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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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,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,GAA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,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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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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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/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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,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,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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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,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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,CAwJX;AAxJD,WAAO,KAAK;IAAC,IAAA,KAAK,CAwJjB;IAxJY,WAAA,KAAK,EAAC,CAAC;QACnB;YA8BC,cAAa,EAAyB,EAAU,UAA6B,EAAE,WAAmB,EAAE,UAAkB;gBAAtE,eAAU,GAAV,UAAU,CAAmB;gBA1BrE,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,KAAK,CAAC;gBAGtB,kBAAa,GAAG,CAAC,CAAC;gBAClB,iBAAY,GAAG,KAAK,CAAC;gBACrB,sBAAiB,GAAG,CAAC,CAAC;gBAqB7B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,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;YAC5C,CAAC;YA1BD,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;;YAYlD,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,EAAE,CAAC;gBACjB,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;oBAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjG,IAAI;oBAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAED,mBAAI,GAAJ,UAAM,MAAc;gBACnB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,WAAW,CAAC,CAAC;oBAC/F,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,WAAW,CAAC,CAAC;oBACrG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,sBAAO,GAAP;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,AAtHD,IAsHC;QAtHY,UAAI,OAsHhB,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,WAAY,mBAAmB;YAC9B,+DAAK,CAAA;QACN,CAAC,EAFW,yBAAmB,KAAnB,yBAAmB,QAE9B;QAFD,IAAY,mBAAmB,GAAnB,yBAEX,CAAA;IACF,CAAC,EAxJY,KAAK,GAAL,WAAK,KAAL,WAAK,QAwJjB;AAAD,CAAC,EAxJM,KAAK,KAAL,KAAK,QAwJX;ACxJD,IAAO,KAAK,CA6FX;AA7FD,WAAO,KAAK;IAAC,IAAA,KAAK,CA6FjB;IA7FY,WAAA,KAAK,EAAC,CAAC;QACnB;YAYC,wBAAa,EAAyB,EAAE,WAA2B;gBAA3B,2BAA2B,GAA3B,mBAA2B;gBAT3D,cAAS,GAAG,KAAK,CAAC;gBAElB,WAAM,GAAW,IAAI,CAAC;gBACtB,gBAAW,GAAc,IAAI,CAAC;gBAC9B,mBAAc,GAAG,CAAC,CAAC;gBACnB,kBAAa,GAAG,CAAC,CAAC;gBAClB,aAAQ,GAAW,qBAAqB,CAAC,SAAS,CAAC;gBACnD,aAAQ,GAAW,qBAAqB,CAAC,mBAAmB,CAAC;gBAGpE,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,IAAI,UAAI,CAAC,EAAE,EAAE,CAAC,IAAI,wBAAkB,EAAE,EAAE,IAAI,oBAAc,EAAE,EAAE,IAAI,uBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;YACnI,CAAC;YAED,8BAAK,GAAL,UAAO,MAAc;gBACpB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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;oBAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;gBAChB,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,EAAE,CAAC;gBACjB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;oBAAC,MAAM,CAAC;gBAErC,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,EAAE,CAAC;gBACjB,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,AA3FD,IA2FC;QA3FY,oBAAc,iBA2F1B,CAAA;IACF,CAAC,EA7FY,KAAK,GAAL,WAAK,KAAL,WAAK,QA6FjB;AAAD,CAAC,EA7FM,KAAK,KAAL,KAAK,QA6FX;AC7FD,IAAO,KAAK,CAkVX;AAlVD,WAAO,KAAK;IAAC,IAAA,KAAK,CAkVjB;IAlVY,WAAA,KAAK,EAAC,CAAC;QACnB;YAoBC,uBAAa,MAAyB,EAAE,EAAyB;gBAZzD,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,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,GAAG,YAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAc,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,CAAC,YAAY,GAAG,YAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAa,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,qBAAqB,GAAG,IAAI,2BAAqB,CAAC,EAAE,CAAC,CAAC;YAC5D,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,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,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,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,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,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACpB,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,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEpD,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,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,AA1UD,IA0UC;QA1UY,mBAAa,gBA0UzB,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,EAlVY,KAAK,GAAL,WAAK,KAAL,WAAK,QAkVjB;AAAD,CAAC,EAlVM,KAAK,KAAL,KAAK,QAkVX;AClVD,IAAO,KAAK,CAgNX;AAhND,WAAO,KAAK;IAAC,IAAA,KAAK,CAgNjB;IAhNY,WAAA,KAAK,EAAC,CAAC;QACnB;YAmBC,gBAAa,EAAyB,EAAU,YAAoB,EAAU,cAAsB;gBAApD,iBAAY,GAAZ,YAAY,CAAQ;gBAAU,mBAAc,GAAd,cAAc,CAAQ;gBAX5F,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,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAPM,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;YAOnD,wBAAO,GAAf;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC;YACf,CAAC;YAEO,+BAAc,GAAtB,UAAwB,EAAe,EAAE,EAAe;gBACvD,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC;YAChB,CAAC;YAEM,qBAAI,GAAX;gBACC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAEM,uBAAM,GAAb;gBACC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAEM,4BAAW,GAAlB,UAAoB,OAAe,EAAE,KAAa;gBACjD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc;gBAClE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpE,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc;gBAClF,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC;YAEM,6BAAY,GAAnB,UAAqB,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,MAAc,EAAE,MAAc;gBAClG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;YAEM,+BAAc,GAArB,UAAuB,OAAe,EAAE,KAAwB;gBAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,IAAI,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,wCAAsC,OAAS,CAAC,CAAC;gBAChF,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,qCAAoB,GAA3B,UAA6B,SAAiB;gBAC7C,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,IAAI,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0CAAwC,SAAW,CAAC,CAAC;gBACzF,MAAM,CAAC,QAAQ,CAAC;YACjB,CAAC;YAEM,wBAAO,GAAd;gBACC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAyB;gBAC1D,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,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;YAEa,iBAAU,GAAxB,UAA0B,EAAyB;gBAClD,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,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;YA5Ma,iBAAU,GAAG,aAAa,CAAC;YAC3B,eAAQ,GAAG,YAAY,CAAC;YACxB,YAAK,GAAG,SAAS,CAAC;YAClB,gBAAS,GAAG,aAAa,CAAC;YAC1B,cAAO,GAAG,WAAW,CAAC;YAyMrC,aAAC;QAAD,CAAC,AA9MD,IA8MC;QA9MY,YAAM,SA8MlB,CAAA;IACF,CAAC,EAhNY,KAAK,GAAL,WAAK,KAAL,WAAK,QAgNjB;AAAD,CAAC,EAhNM,KAAK,KAAL,KAAK,QAgNX;AChND,IAAO,KAAK,CAwTX;AAxTD,WAAO,KAAK;IAAC,IAAA,KAAK,CAwTjB;IAxTY,WAAA,KAAK,EAAC,CAAC;QACnB;YAYC,uBAAa,EAAyB,EAAE,WAA2B;gBAA3B,2BAA2B,GAA3B,mBAA2B;gBAV3D,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;gBACpB,aAAQ,GAAW,qBAAqB,CAAC,SAAS,CAAC;gBACnD,aAAQ,GAAW,qBAAqB,CAAC,mBAAmB,CAAC;gBAGpE,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,IAAI,UAAI,CAAC,EAAE,EAAE,CAAC,IAAI,wBAAkB,EAAE,EAAE,IAAI,oBAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5F,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/B,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,AAhTD,IAgTC;QAhTY,mBAAa,gBAgTzB,CAAA;QAED,WAAY,SAAS;YACpB,+BAAQ,qBAAqB,CAAC,MAAM,WAAA,CAAA;YACpC,8BAAO,qBAAqB,CAAC,KAAK,UAAA,CAAA;YAClC,gCAAS,qBAAqB,CAAC,SAAS,YAAA,CAAA;QACzC,CAAC,EAJW,eAAS,KAAT,eAAS,QAIpB;QAJD,IAAY,SAAS,GAAT,eAIX,CAAA;IACF,CAAC,EAxTY,KAAK,GAAL,WAAK,KAAL,WAAK,QAwTjB;AAAD,CAAC,EAxTM,KAAK,KAAL,KAAK,QAwTX;ACxTD,IAAO,KAAK,CAuKX;AAvKD,WAAO,KAAK;IAAC,IAAA,KAAK,CAuKjB;IAvKY,WAAA,KAAK,EAAC,CAAC;QACnB;YAwBC,+BAAa,EAAyB;gBAvBtC,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,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,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;gBAKlC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACd,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,EAAE,CAAC;gBACjB,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,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BACjE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,sBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzI,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,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;wBAClC,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,KAAK,CAAC,CAAC;wBACvC,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;YACF,CAAC;YAED,uCAAO,GAAP;YACA,CAAC;YA/Ic,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;YA+I9C,4BAAC;QAAD,CAAC,AArKD,IAqKC;QArKY,2BAAqB,wBAqKjC,CAAA;IACF,CAAC,EAvKY,KAAK,GAAL,WAAK,KAAL,WAAK,QAuKjB;AAAD,CAAC,EAvKM,KAAK,KAAL,KAAK,QAuKX;ACvKD,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK;IAAC,IAAA,KAAK,CA8CjB;IA9CY,WAAA,KAAK,EAAC,CAAC;QACnB;YAMC,0BAAa,EAAyB;gBAHtC,uBAAkB,GAAG,KAAK,CAAC;gBAI1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACd,CAAC;YAED,+BAAI,GAAJ,UAAM,OAAuB,EAAE,QAAkB;gBAChD,IAAI,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACjD,IAAI,SAAS,GAAc,IAAI,CAAC;gBAEhC,IAAI,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACnC,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,GAAc,IAAI,CAAC;oBAC9B,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC,CAAC,CAAC;wBAC5C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;wBAChE,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC;wBAC5C,OAAO,GAAmC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;oBAE/E,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,kBAAkB,CAAC,CAAC;wBAC9D,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,OAAO,GAAmC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,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;4BAC1B,OAAO,CAAC,YAAY,CAAC,0BAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,wBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC5H,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAC5C,CAAC;gBACF,CAAC;YACF,CAAC;YA1CM,+BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YA2C5C,uBAAC;QAAD,CAAC,AA5CD,IA4CC;QA5CY,sBAAgB,mBA4C5B,CAAA;IACF,CAAC,EA9CY,KAAK,GAAL,WAAK,KAAL,WAAK,QA8CjB;AAAD,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,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,CAoBX;AApBD,WAAO,KAAK;IAAC,IAAA,KAAK,CAoBjB;IApBY,WAAA,KAAK,EAAC,CAAC;QACnB,8BAAsC,EAAyB,EAAE,SAAoB,EAAE,kBAAmC;YAAnC,kCAAmC,GAAnC,0BAAmC;YACzH,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClB,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,GAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;gBACxE,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,GAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC1E,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;gBAC7C,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBACrC,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QARe,0BAAoB,uBAQnC,CAAA;QAED,4BAAoC,EAAyB,EAAE,SAAoB;YAClF,MAAM,CAAA,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClB,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC;gBACrD,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;gBACvC,KAAK,eAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC;gBACvD,KAAK,eAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC;gBACrD,SAAS,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QARe,wBAAkB,qBAQjC,CAAA;IACF,CAAC,EApBY,KAAK,GAAL,WAAK,KAAL,WAAK,QAoBjB;AAAD,CAAC,EApBM,KAAK,KAAL,KAAK,QAoBX"} \ 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 d5d4a0b53..f361b2150 100644 --- a/spine-ts/build/spine-widget.d.ts +++ b/spine-ts/build/spine-widget.d.ts @@ -4,13 +4,29 @@ declare module spine { timelines: Array; duration: number; constructor(name: string, timelines: Array, duration: number); - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array): void; - mix(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number): void; + 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): void; + 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, } abstract class CurveTimeline implements Timeline { static LINEAR: number; @@ -18,6 +34,7 @@ declare module spine { static BEZIER: number; static BEZIER_SIZE: number; private curves; + abstract getPropertyId(): number; constructor(frameCount: number); getFrameCount(): number; setLinear(frameIndex: number): void; @@ -25,7 +42,7 @@ declare module spine { 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): void; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class RotateTimeline extends CurveTimeline { static ENTRIES: number; @@ -35,8 +52,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TranslateTimeline extends CurveTimeline { static ENTRIES: number; @@ -48,16 +66,19 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class ScaleTimeline extends TranslateTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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); - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + 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; @@ -73,42 +94,47 @@ declare module spine { 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): 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): 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): 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): void; - } - class DeformTimeline extends CurveTimeline { - frames: ArrayLike; - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - constructor(frameCount: number); - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class IkConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -120,8 +146,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class TransformConstraintTimeline extends CurveTimeline { static ENTRIES: number; @@ -137,8 +164,9 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintPositionTimeline extends CurveTimeline { static ENTRIES: number; @@ -148,12 +176,14 @@ declare module spine { 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): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { constructor(frameCount: number); - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number): void; + 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; @@ -165,62 +195,122 @@ declare module spine { 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): 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; data: AnimationStateData; tracks: TrackEntry[]; events: Event[]; - listeners: AnimationStateListener[]; + listeners: AnimationStateListener2[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; timeScale: number; - constructor(data?: AnimationStateData); + trackEntryPool: Pool; + constructor(data: AnimationStateData); update(delta: number): void; + updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; apply(skeleton: Skeleton): void; + applyMixingFrom(entry: 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; - freeAll(entry: TrackEntry): void; - expandToIndex(index: number): TrackEntry; - setCurrent(index: number, entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry): 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; + setTimelinesFirst(entry: TrackEntry): void; + checkTimelinesFirst(entry: TrackEntry): void; + checkTimelinesUsage(entry: TrackEntry, usageArray: Array): void; getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; + addListener(listener: AnimationStateListener2): void; + removeListener(listener: AnimationStateListener2): void; clearListeners(): void; + clearListenerNotifications(): void; } class TrackEntry { - next: TrackEntry; - previous: 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; - time: number; - lastTime: number; - endTime: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; timeScale: number; + alpha: number; mixTime: number; mixDuration: number; - listener: AnimationStateListener; - mix: number; + mixAlpha: number; + timelinesFirst: boolean[]; + timelinesRotation: number[]; reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; isComplete(): boolean; + resetRotationDirections(): void; } - abstract class AnimationStateAdapter implements AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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; } - interface AnimationStateListener { - event(trackIndex: number, event: Event): void; - complete(trackIndex: number, loopCount: number): void; - start(trackIndex: number): void; - end(trackIndex: number): 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 { @@ -266,534 +356,6 @@ declare module spine { newPathAttachment(skin: Skin, name: string): PathAttachment; } } -declare module spine { - 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; - appliedRotation: number; - a: number; - b: number; - worldX: number; - c: number; - d: number; - worldY: number; - worldSignX: number; - worldSignY: 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; - worldToLocalRotationX(): number; - worldToLocalRotationY(): number; - rotateWorld(degrees: number): void; - updateLocalTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - } -} -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; - inheritRotation: boolean; - inheritScale: boolean; - constructor(index: number, name: string, parent: BoneData); - } -} -declare module spine { - 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); - } -} -declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - mix: number; - bendDirection: number; - level: number; - constructor(data: IkConstraintData, skeleton: Skeleton); - 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; - bones: BoneData[]; - target: BoneData; - bendDirection: number; - mix: number; - constructor(name: string); - } -} -declare module spine { - class PathConstraint implements Updatable { - 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; - } -} -declare module spine { - class PathConstraintData { - name: string; - 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; - } -} -declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - ikConstraintsSorted: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - skin: Skin; - color: Color; - time: number; - flipX: boolean; - flipY: boolean; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): 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): 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; - } -} -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; - 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): 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; - } -} -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; - } -} -declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: 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; - 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; - } -} -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; - } -} -declare module spine { - class TransformConstraint implements Updatable { - 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; - } -} -declare module spine { - class TransformConstraintData { - name: string; - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - constructor(name: string); - } -} -declare module spine { - interface Updatable { - update(): void; - } -} -declare module spine { - interface Map { - [key: string]: T; - } - interface Disposable { - dispose(): 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 newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static toFloatArray(array: Array): Float32Array | number[]; - } - 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; - } -} declare module spine { abstract class Attachment { name: string; @@ -923,6 +485,568 @@ declare module spine { updateWorldVertices(slot: Slot, premultipliedAlpha: boolean): ArrayLike; } } +declare module spine { + 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; + worldToLocalRotationX(): number; + worldToLocalRotationY(): number; + rotateWorld(degrees: number): void; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + } +} +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, + } +} +declare module spine { + 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); + } +} +declare module spine { + 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; + } +} +declare module spine { + 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; + } +} +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, + } +} +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; + } +} +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): 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; + } +} +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; + } +} +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): 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; + } +} +declare module spine { + class Slot { + data: SlotData; + bone: Bone; + color: 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; + 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; + } +} +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; + } +} +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; + 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; + constructor(name: string); + } +} +declare module spine { + 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; + } + 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 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; + } +} declare module spine.webgl { class AssetManager extends spine.AssetManager { constructor(gl: WebGLRenderingContext, pathPrefix?: string); @@ -1354,6 +1478,7 @@ declare module spine { scale: number; x: number; y: number; + alpha: boolean; fitToCanvas: boolean; backgroundColor: string; premultipliedAlpha: boolean; diff --git a/spine-ts/build/spine-widget.js b/spine-ts/build/spine-widget.js index 9ffd8a561..133397cee 100644 --- a/spine-ts/build/spine-widget.js +++ b/spine-ts/build/spine-widget.js @@ -15,7 +15,7 @@ var spine; this.timelines = timelines; this.duration = duration; } - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events) { + 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) { @@ -25,19 +25,7 @@ var spine; } var timelines = this.timelines; for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - }; - Animation.prototype.mix = function (skeleton, lastTime, time, loop, events, alpha) { - 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); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); }; Animation.binarySearch = function (values, target, step) { if (step === void 0) { step = 1; } @@ -65,6 +53,23 @@ var spine; 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"; + })(spine.TimelineType || (spine.TimelineType = {})); + var TimelineType = spine.TimelineType; var CurveTimeline = (function () { function CurveTimeline(frameCount) { if (frameCount <= 0) @@ -153,40 +158,48 @@ var spine; _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) { + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - var amount_1 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount_1 > 180) - amount_1 -= 360; - while (amount_1 < -180) - amount_1 += 360; - bone.rotation += amount_1 * alpha; + 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 amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + 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; @@ -201,29 +214,47 @@ var spine; _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) { + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - var prevX = frames[frame + TranslateTimeline.PREV_X]; - var prevY = 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)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; @@ -239,23 +270,58 @@ var spine; function ScaleTimeline(frameCount) { _super.call(this, frameCount); } - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - var prevX = frames[frame + ScaleTimeline.PREV_X]; - var prevY = 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)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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)); @@ -265,23 +331,41 @@ var spine; function ShearTimeline(frameCount) { _super.call(this, frameCount); } - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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; - if (time < frames[0]) - return; var bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - var prevX = frames[frame + ShearTimeline.PREV_X]; - var prevY = 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)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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)); @@ -292,6 +376,9 @@ var spine; _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; @@ -300,10 +387,14 @@ var spine; this.frames[frameIndex + ColorTimeline.B] = b; this.frames[frameIndex + ColorTimeline.A] = a; }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { + 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 (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; @@ -325,11 +416,14 @@ var spine; b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - var color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + 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); - else - color.set(r, g, b, a); + } }; ColorTimeline.ENTRIES = 5; ColorTimeline.PREV_TIME = -5; @@ -349,6 +443,9 @@ var spine; 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; }; @@ -356,10 +453,21 @@ var spine; this.frames[frameIndex] = time; this.attachmentNames[frameIndex] = attachmentName; }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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; @@ -372,11 +480,107 @@ var spine; 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; }; @@ -384,13 +588,13 @@ var spine; this.frames[frameIndex] = event.time; this.events[frameIndex] = event; }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) @@ -420,6 +624,9 @@ var spine; 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; }; @@ -427,17 +634,24 @@ var spine; this.frames[frameIndex] = time; this.drawOrders[frameIndex] = drawOrder; }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var frames = this.frames; - if (time < frames[0]) + 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 drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -449,90 +663,57 @@ var spine; return DrawOrderTimeline; }()); spine.DrawOrderTimeline = DrawOrderTimeline; - 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.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { - var slot = skeleton.slots[this.slotIndex]; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) - return; - var frames = this.frames; - if (time < frames[0]) - return; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var verticesArray = slot.attachmentVertices; - 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) { - for (var i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } - else - spine.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - 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 - vertices[i]) * alpha; - } - } - else { - for (var i = 0; i < vertexCount; i++) { - var prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; 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) { + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; 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]) { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; @@ -549,6 +730,9 @@ var spine; _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; @@ -557,31 +741,53 @@ var spine; this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + 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 frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - var rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - var translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - var scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - var shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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; @@ -602,26 +808,36 @@ var spine; _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) { + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { - var i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.position = constraint.data.position; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - var 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)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; @@ -635,21 +851,31 @@ var spine; function PathConstraintSpacingTimeline(frameCount) { _super.call(this, frameCount); } - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha) { + 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; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { - var i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) + constraint.spacing = constraint.data.spacing; return; } - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - var 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)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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)); @@ -660,31 +886,47 @@ var spine; _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) { + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) { var frames = this.frames; - if (time < frames[0]) - return; var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - var i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - var rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - var 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)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; @@ -700,97 +942,263 @@ var spine; (function (spine) { var AnimationState = (function () { function AnimationState(data) { - if (data === void 0) { data = null; } this.tracks = new Array(); this.events = new Array(); this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; this.timeScale = 1; - if (data == null) - throw new Error("data cannot be null."); + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); this.data = data; } AnimationState.prototype.update = function (delta) { delta *= this.timeScale; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; + 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.lastTime - next.delay; + var nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - var nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; - current.time += delta * current.timeScale; + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } + else { + this.updateMixingFrom(current, delta, true); + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } } - else if (!current.loop && current.lastTime >= current.endTime) { - this.clearTrack(i); - continue; - } - current.time += delta * current.timeScale; - if (current.previous != null) { - var previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { + var from = entry.mixingFrom; + if (from == null) + return; + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + var newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) + return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + var mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); }; 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 listenerCount = this.listeners.length; - for (var i = 0; i < this.tracks.length; i++) { - var current = this.tracks[i]; - if (current == null) + 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; - events.length = 0; - var time = current.time; - var lastTime = current.lastTime; - var endTime = current.endTime; - var loop = current.loop; - if (!loop && time > endTime) - time = endTime; - var previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton); + 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 previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) - previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - var alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + var timelinesFirst = current.timelinesFirst; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, firstFrame); + } + else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - for (var ii = 0, nn = events.length; ii < nn; ii++) { - var event_1 = events[ii]; - if (current.listener != null && current.listener.event != null) - current.listener.event(i, event_1); - for (var iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) - this.listeners[iii].event(i, event_1); - } - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - var count = spine.MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) - current.listener.complete(i, count); - for (var ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) - this.listeners[ii].complete(i, count); - } - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + this.queue.drain(); + }; + AnimationState.prototype.applyMixingFrom = function (entry, skeleton) { + var from = entry.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton); + var mix = 0; + if (entry.mixDuration == 0) + mix = 1; + else { + mix = entry.mixTime / entry.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 timelinesFirst = from.timelinesFirst; + var alpha = from.alpha * entry.mixAlpha * (1 - mix); + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var setupPose = timelinesFirst[i]; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof spine.AttachmentTimeline) + continue; + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, setupPose, timelinesRotation, i, firstFrame) { + 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) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } + else + 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]); + } + this.events.length = 0; }; AnimationState.prototype.clearTracks = function () { + 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 = false; + this.queue.drain(); }; AnimationState.prototype.clearTrack = function (trackIndex) { if (trackIndex >= this.tracks.length) @@ -798,54 +1206,31 @@ var spine; var current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) - current.listener.end(trackIndex); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(trackIndex); - this.tracks[trackIndex] = null; - this.freeAll(current); - }; - AnimationState.prototype.freeAll = function (entry) { - while (entry != null) { - var next = entry.next; - entry = next; + 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.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.setCurrent = function (index, entry) { - var current = this.expandToIndex(index); - if (current != null) { - var previous = current.previous; - current.previous = null; - if (current.listener != null && current.listener.end != null) - current.listener.end(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) - this.listeners[i].end(index); - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } - else - entry.previous = current; - } + AnimationState.prototype.setCurrent = function (index, current) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + if (from.mixingFrom != null) + current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); } - this.tracks[index] = entry; - if (entry.listener != null && entry.listener.start != null) - entry.listener.start(index); - for (var i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) - this.listeners[i].start(index); + this.queue.start(current); }; AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { var animation = this.data.skeletonData.findAnimation(animationName); @@ -854,14 +1239,23 @@ var spine; return this.setAnimationWith(trackIndex, animation, loop); }; AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); var current = this.expandToIndex(trackIndex); - if (current != null) - this.freeAll(current.next); - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; }; AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { @@ -871,27 +1265,141 @@ var spine; return this.addAnimationWith(trackIndex, animation, loop, delay); }; AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - var entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + 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; - last.next = entry; } - else - this.tracks[trackIndex] = entry; - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry); + 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) { + 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 = false; + 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixAlpha = 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; + var i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { + var entry = this.tracks[i]; + if (entry != null) + this.checkTimelinesFirst(entry); + } + }; + AnimationState.prototype.setTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(entry.timelinesFirst, n, false); + for (var i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + }; + AnimationState.prototype.checkTimelinesFirst = function (entry) { + if (entry.mixingFrom != null) + this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + }; + AnimationState.prototype.checkTimelinesUsage = function (entry, usageArray) { + var propertyIDs = this.propertyIDs; + var timelines = entry.animation.timelines; + var n = timelines.length; + var usage = spine.Utils.setArraySize(usageArray, n); + for (var i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + }; AnimationState.prototype.getCurrent = function (trackIndex) { if (trackIndex >= this.tracks.length) return null; @@ -910,50 +1418,172 @@ var spine; AnimationState.prototype.clearListeners = function () { this.listeners.length = 0; }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); return AnimationState; }()); spine.AnimationState = AnimationState; var TrackEntry = (function () { function TrackEntry() { - this.loop = false; - this.delay = 0; - this.time = 0; - this.lastTime = -1; - this.endTime = 0; - this.timeScale = 1; - this.mixTime = 0; - this.mixDuration = 0; - this.mix = 1; + this.timelinesFirst = new Array(); + this.timelinesRotation = new Array(); } TrackEntry.prototype.reset = function () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; + }; + 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.time >= this.endTime; + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; }; return TrackEntry; }()); spine.TrackEntry = TrackEntry; - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; } - AnimationStateAdapter.prototype.event = function (trackIndex, event) { + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.complete = function (trackIndex, loopCount) { + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); }; - AnimationStateAdapter.prototype.start = function (trackIndex) { + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; }; - AnimationStateAdapter.prototype.end = function (trackIndex) { + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); }; - return AnimationStateAdapter; + 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.AnimationStateAdapter = AnimationStateAdapter; + 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) { @@ -1013,14 +1643,14 @@ var spine; 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); - _this.assets[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.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; } _this.toLoad--; _this.loaded++; @@ -1036,22 +1666,22 @@ var spine; path = this.pathPrefix + path; this.toLoad++; var img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = function (ev) { - if (success) - success(path, img); var texture = _this.textureLoader(img); _this.assets[path] = texture; _this.toLoad--; _this.loaded++; + if (success) + success(path, img); }; img.onerror = function (ev) { - if (error) - error(path, "Couldn't load image " + path); _this.errors[path] = "Couldn't load image " + path; _this.toLoad--; _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); }; }; AssetManager.prototype.get = function (path) { @@ -1130,6 +1760,421 @@ var spine; 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, worldVertices) { + this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); + }; + VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { + count += offset; + 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 += 2) { + 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 += 2) { + 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 += 2) { + 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"; + })(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 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 regionUVs = this.regionUVs; + var verticesLength = regionUVs.length; + var worldVerticesLength = (verticesLength >> 1) * 8; + if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) + this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); + 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; + } + if (this.region.rotate) { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i + 1] * width; + this.worldVertices[w + 1] = v + height - regionUVs[i] * height; + } + } + else { + for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { + this.worldVertices[w] = u + regionUVs[i] * width; + this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; + } + } + }; + MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; + var alpha = skeletonColor.a * slotColor.a * meshColor.a; + var multiplier = premultipliedAlpha ? alpha : 1; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); + var deformArray = slot.attachmentVertices; + var vertices = this.vertices, worldVertices = this.worldVertices; + var bones = this.bones; + if (bones == null) { + var verticesLength = vertices.length; + 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 = 0, w = 0; v < verticesLength; v += 2, w += 8) { + var vx = vertices[v], vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + return worldVertices; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + else { + var deform = deformArray; + for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { + var wx = 0, wy = 0; + var nn = bones[v++] + v; + for (; v < nn; 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; + worldVertices[w + 2] = color.r; + worldVertices[w + 3] = color.g; + worldVertices[w + 4] = color.b; + worldVertices[w + 5] = color.a; + } + } + return worldVertices; + }; + 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.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + } + }; + 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 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.vertices = spine.Utils.newFloatArray(8 * 4); + this.tempColor = new spine.Color(1, 1, 1, 1); + } + RegionAttachment.prototype.setRegion = function (region) { + var vertices = this.vertices; + if (region.rotate) { + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v2; + vertices[RegionAttachment.U3] = region.u; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v; + vertices[RegionAttachment.U1] = region.u2; + vertices[RegionAttachment.V1] = region.v2; + } + else { + vertices[RegionAttachment.U1] = region.u; + vertices[RegionAttachment.V1] = region.v2; + vertices[RegionAttachment.U2] = region.u; + vertices[RegionAttachment.V2] = region.v; + vertices[RegionAttachment.U3] = region.u2; + vertices[RegionAttachment.V3] = region.v; + vertices[RegionAttachment.U4] = region.u2; + vertices[RegionAttachment.V4] = region.v2; + } + this.region = region; + }; + 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.updateWorldVertices = function (slot, premultipliedAlpha) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var regionColor = this.color; + var alpha = skeletonColor.a * slotColor.a * regionColor.a; + var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; + var offset = this.offset; + var bone = slot.bone; + 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 = offset[RegionAttachment.OX1]; + offsetY = offset[RegionAttachment.OY1]; + vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C1R] = color.r; + vertices[RegionAttachment.C1G] = color.g; + vertices[RegionAttachment.C1B] = color.b; + vertices[RegionAttachment.C1A] = color.a; + offsetX = offset[RegionAttachment.OX2]; + offsetY = offset[RegionAttachment.OY2]; + vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C2R] = color.r; + vertices[RegionAttachment.C2G] = color.g; + vertices[RegionAttachment.C2B] = color.b; + vertices[RegionAttachment.C2A] = color.a; + offsetX = offset[RegionAttachment.OX3]; + offsetY = offset[RegionAttachment.OY3]; + vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C3R] = color.r; + vertices[RegionAttachment.C3G] = color.g; + vertices[RegionAttachment.C3B] = color.b; + vertices[RegionAttachment.C3A] = color.a; + offsetX = offset[RegionAttachment.OX4]; + offsetY = offset[RegionAttachment.OY4]; + vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; + vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; + vertices[RegionAttachment.C4R] = color.r; + vertices[RegionAttachment.C4G] = color.g; + vertices[RegionAttachment.C4B] = color.b; + vertices[RegionAttachment.C4A] = color.a; + return vertices; + }; + 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"; @@ -1151,15 +2196,20 @@ var spine; this.scaleY = 0; this.shearX = 0; this.shearY = 0; - this.appliedRotation = 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.worldSignX = 0; - this.worldSignY = 0; this.sorted = false; if (data == null) throw new Error("data cannot be null."); @@ -1177,12 +2227,21 @@ var spine; 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.appliedRotation = rotation; - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX, lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX, ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + 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; @@ -1198,92 +2257,97 @@ var spine; this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = spine.MathUtils.signum(scaleX); - this.worldSignY = spine.MathUtils.signum(scaleY); + 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; - this.worldSignX = parent.worldSignX * spine.MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * spine.MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; + 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; + } } - else { - if (this.data.inheritRotation) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritRotation) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else if (this.data.inheritScale) { - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - var cos = spine.MathUtils.cosDeg(parent.appliedRotation), sin = spine.MathUtils.sinDeg(parent.appliedRotation); - var psx = parent.scaleX, psy = parent.scaleY; - var za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - var temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - if (psx >= 0) - sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - if (!parent.data.inheritScale) - break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } - else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; - } - if (this.skeleton.flipX) { - this.a = -this.a; - this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; - this.d = -this.d; - } + 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 () { @@ -1303,22 +2367,22 @@ var spine; return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; }; Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); }; Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); }; Bone.prototype.worldToLocalRotationX = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * spine.MathUtils.radDeg; }; Bone.prototype.worldToLocalRotationY = function () { var parent = this.parent; if (parent == null) - return this.rotation; + return this.arotation; var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * spine.MathUtils.radDeg; }; @@ -1329,25 +2393,26 @@ var spine; this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; }; - Bone.prototype.updateLocalTransform = function () { + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; var parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - var det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * spine.MathUtils.radDeg; + 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.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + 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; @@ -1356,21 +2421,20 @@ var spine; 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.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { var det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + 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.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; } - this.appliedRotation = this.rotation; }; Bone.prototype.worldToLocal = function (world) { var a = this.a, b = this.b, c = this.c, d = this.d; @@ -1401,8 +2465,7 @@ var spine; this.scaleY = 1; this.shearX = 0; this.shearY = 0; - this.inheritRotation = true; - this.inheritScale = true; + this.transformMode = TransformMode.Normal; if (index < 0) throw new Error("index must be >= 0."); if (name == null) @@ -1414,6 +2477,14 @@ var spine; 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) { @@ -1444,7 +2515,6 @@ var spine; function IkConstraint(data, skeleton) { this.mix = 1; this.bendDirection = 0; - this.level = 0; if (data == null) throw new Error("data cannot be null."); if (skeleton == null) @@ -1457,6 +2527,9 @@ var spine; 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(); }; @@ -1473,25 +2546,31 @@ var spine; } }; IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) { - var pp = bone.parent; - var id = 1 / (pp.a * pp.d - pp.b * pp.c); - var x = targetX - pp.worldX, y = targetY - pp.worldY; - var tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) + 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, bone.shearY); + 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; } - var px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + 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; @@ -1512,7 +2591,7 @@ var spine; } else os2 = 0; - var cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + 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; @@ -1520,7 +2599,7 @@ var spine; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -1610,20 +2689,20 @@ var spine; } } var os = Math.atan2(cy, cx) * s2; - var rotation = parent.rotation; + 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.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); }; return IkConstraint; }()); @@ -1633,6 +2712,7 @@ var spine; (function (spine) { var IkConstraintData = (function () { function IkConstraintData(name) { + this.order = 0; this.bones = new Array(); this.bendDirection = 1; this.mix = 1; @@ -1707,14 +2787,19 @@ var spine; spaces[i] = spacing; } var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, spacingMode == spine.SpacingMode.Percent); - var skeleton = this.target.bone.skeleton; - var skeletonX = skeleton.x, skeletonY = skeleton.y; var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = rotateMode == spine.RotateMode.Chain && offsetRotation == 0; + 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 - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + 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]; @@ -1734,7 +2819,7 @@ var spine; r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * spine.MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); @@ -1742,6 +2827,9 @@ var spine; 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) @@ -1754,6 +2842,7 @@ var spine; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } }; PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { @@ -1980,7 +3069,7 @@ var spine; out[o + 2] = r; }; PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0) + 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; @@ -1990,6 +3079,9 @@ var spine; 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; @@ -2001,6 +3093,7 @@ var spine; (function (spine) { var PathConstraintData = (function () { function PathConstraintData(name) { + this.order = 0; this.bones = new Array(); this.name = name; } @@ -2168,6 +3261,7 @@ var spine; var Skeleton = (function () { function Skeleton(data) { this._updateCache = new Array(); + this.updateCacheReset = new Array(); this.time = 0; this.flipX = false; this.flipY = false; @@ -2199,7 +3293,6 @@ var spine; this.drawOrder.push(slot); } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (var i = 0; i < data.ikConstraints.length; i++) { var ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); @@ -2223,82 +3316,87 @@ var spine; var bones = this.bones; for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false; - var ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (var i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - var ikCount = ikConstraints.length; - for (var i = 0, level = 0, n = ikCount; i < n; i++) { - var ik = ikConstraints[i]; - var bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (var i = 1, ii = 0; i < ikCount; i++) { - var ik = ikConstraints[i]; - var level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - var other = ikConstraints[ii]; - if (other.level < level) - break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent_2 = constrained[0]; - this.sortBone(parent_2); - updateCache.push(constraint); - this.sortReset(parent_2.children); - constrained[constrained.length - 1].sorted = true; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; - } + var ikConstraints = this.ikConstraints; var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - 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; + 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 ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], 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 ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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.sortTransformConstraint = function (constraint) { + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + 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) @@ -2343,6 +3441,18 @@ var spine; } }; 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(); @@ -2597,8 +3707,15 @@ var spine; boundingBox.computeWorldVertices(slot, polygon); } } - if (updateAabb) + 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; @@ -2729,6 +3846,7 @@ var spine; this.ikConstraints = new Array(); this.transformConstraints = new Array(); this.pathConstraints = new Array(); + this.fps = 0; } SkeletonData.prototype.findBone = function (boneName) { if (boneName == null) @@ -2786,9 +3904,9 @@ var spine; throw new Error("eventDataName cannot be null."); var events = this.events; for (var i = 0, n = events.length; i < n; i++) { - var event_2 = events[i]; - if (event_2.name == eventDataName) - return event_2; + var event_4 = events[i]; + if (event_4.name == eventDataName) + return event_4; } return null; }; @@ -2867,19 +3985,20 @@ var spine; 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_3 = null; + var parent_2 = null; var parentName = this.getValue(boneMap, "parent", null); if (parentName != null) { - parent_3 = skeletonData.findBone(parentName); - if (parent_3 == 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_3); + 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; @@ -2888,8 +4007,7 @@ var spine; data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } } @@ -2914,6 +4032,7 @@ var spine; 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); @@ -2934,6 +4053,7 @@ var spine; 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); @@ -2962,6 +4082,7 @@ var spine; 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); @@ -3013,10 +4134,10 @@ var spine; var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); if (skin == null) throw new Error("Skin not found: " + linkedMesh.skin); - var parent_4 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_4 == null) + 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_4); + linkedMesh.mesh.setParentMesh(parent_3); linkedMesh.mesh.updateUVs(); } this.linkedMeshes.length = 0; @@ -3026,7 +4147,7 @@ var spine; 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", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -3082,10 +4203,10 @@ var spine; var color = this.getValue(map, "color", null); if (color != null) mesh.color.setFromString(color); - var parent_5 = this.getValue(map, "parent", null); - if (parent_5 != null) { + 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_5)); + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4)); return mesh; } var uvs = map.uvs; @@ -3413,11 +4534,11 @@ var spine; var eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); - var event_3 = new spine.Event(eventMap.time, eventData); - event_3.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_3.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_3.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - timeline.setFrame(frameIndex++, event_3); + 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]); @@ -3480,6 +4601,20 @@ var spine; 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; @@ -3853,12 +4988,16 @@ var spine; 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]; - if (rotateMix > 0) { + 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) + this.data.offsetRotation * spine.MathUtils.degRad; + 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) @@ -3869,24 +5008,29 @@ var spine; bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + 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 bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); var ts = Math.sqrt(ta * ta + tc * tc); - var s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + 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; @@ -3896,13 +5040,19 @@ var spine; r -= spine.MathUtils.PI2; else if (r < -spine.MathUtils.PI) r += spine.MathUtils.PI2; - r = by + (r + this.data.offsetShearY * spine.MathUtils.degRad) * shearMix; + 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.getOrder = function () { + return this.data.order; + }; return TransformConstraint; }()); spine.TransformConstraint = TransformConstraint; @@ -3911,6 +5061,7 @@ var spine; (function (spine) { var TransformConstraintData = (function () { function TransformConstraintData(name) { + this.order = 0; this.bones = new Array(); this.rotateMix = 0; this.translateMix = 0; @@ -3932,6 +5083,27 @@ var spine; })(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; } @@ -4018,7 +5190,7 @@ var spine; return Math.sin(degrees * MathUtils.degRad); }; MathUtils.signum = function (value) { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; }; MathUtils.toInt = function (x) { return x > 0 ? Math.floor(x) : Math.ceil(x); @@ -4056,6 +5228,12 @@ var spine; } 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++) @@ -4101,11 +5279,16 @@ var spine; 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++) + 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; @@ -4171,423 +5354,6 @@ var spine; spine.TimeKeeper = TimeKeeper; })(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, worldVertices) { - this.computeWorldVerticesWith(slot, 0, this.worldVerticesLength, worldVertices, 0); - }; - VertexAttachment.prototype.computeWorldVerticesWith = function (slot, start, count, worldVertices, offset) { - count += offset; - var skeleton = slot.bone.skeleton; - var x = skeleton.x, y = skeleton.y; - 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; - x += bone.worldX; - 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 += 2) { - 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 += 2) { - var wx = x, wy = y; - 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 += 2) { - var wx = x, wy = y; - 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"; - })(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 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 regionUVs = this.regionUVs; - var verticesLength = regionUVs.length; - var worldVerticesLength = (verticesLength >> 1) * 8; - if (this.worldVertices == null || this.worldVertices.length != worldVerticesLength) - this.worldVertices = spine.Utils.newFloatArray(worldVerticesLength); - 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; - } - if (this.region.rotate) { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i + 1] * width; - this.worldVertices[w + 1] = v + height - regionUVs[i] * height; - } - } - else { - for (var i = 0, w = 6; i < verticesLength; i += 2, w += 8) { - this.worldVertices[w] = u + regionUVs[i] * width; - this.worldVertices[w + 1] = v + regionUVs[i + 1] * height; - } - } - }; - MeshAttachment.prototype.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color, slotColor = slot.color, meshColor = this.color; - var alpha = skeletonColor.a * slotColor.a * meshColor.a; - var multiplier = premultipliedAlpha ? alpha : 1; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * meshColor.r * multiplier, skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - var x = skeleton.x, y = skeleton.y; - var deformArray = slot.attachmentVertices; - var vertices = this.vertices, worldVertices = this.worldVertices; - var bones = this.bones; - if (bones == null) { - var verticesLength = vertices.length; - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - x += bone.worldX; - y += bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v = 0, w = 0; v < verticesLength; v += 2, w += 8) { - var vx = vertices[v], vy = vertices[v + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - return worldVertices; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - else { - var deform = deformArray; - for (var w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - var wx = x, wy = y; - var nn = bones[v++] + v; - for (; v < nn; 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; - worldVertices[w + 2] = color.r; - worldVertices[w + 3] = color.g; - worldVertices[w + 4] = color.b; - worldVertices[w + 5] = color.a; - } - } - return worldVertices; - }; - 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.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - } - }; - 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 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.vertices = spine.Utils.newFloatArray(8 * 4); - this.tempColor = new spine.Color(1, 1, 1, 1); - } - RegionAttachment.prototype.setRegion = function (region) { - var vertices = this.vertices; - if (region.rotate) { - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v2; - vertices[RegionAttachment.U3] = region.u; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v; - vertices[RegionAttachment.U1] = region.u2; - vertices[RegionAttachment.V1] = region.v2; - } - else { - vertices[RegionAttachment.U1] = region.u; - vertices[RegionAttachment.V1] = region.v2; - vertices[RegionAttachment.U2] = region.u; - vertices[RegionAttachment.V2] = region.v; - vertices[RegionAttachment.U3] = region.u2; - vertices[RegionAttachment.V3] = region.v; - vertices[RegionAttachment.U4] = region.u2; - vertices[RegionAttachment.V4] = region.v2; - } - this.region = region; - }; - 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.updateWorldVertices = function (slot, premultipliedAlpha) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var regionColor = this.color; - var alpha = skeletonColor.a * slotColor.a * regionColor.a; - var multiplier = premultipliedAlpha ? 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 vertices = this.vertices; - var offset = this.offset; - var bone = slot.bone; - var x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = offset[RegionAttachment.OX1]; - offsetY = offset[RegionAttachment.OY1]; - vertices[RegionAttachment.X1] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y1] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C1R] = color.r; - vertices[RegionAttachment.C1G] = color.g; - vertices[RegionAttachment.C1B] = color.b; - vertices[RegionAttachment.C1A] = color.a; - offsetX = offset[RegionAttachment.OX2]; - offsetY = offset[RegionAttachment.OY2]; - vertices[RegionAttachment.X2] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y2] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C2R] = color.r; - vertices[RegionAttachment.C2G] = color.g; - vertices[RegionAttachment.C2B] = color.b; - vertices[RegionAttachment.C2A] = color.a; - offsetX = offset[RegionAttachment.OX3]; - offsetY = offset[RegionAttachment.OY3]; - vertices[RegionAttachment.X3] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y3] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C3R] = color.r; - vertices[RegionAttachment.C3G] = color.g; - vertices[RegionAttachment.C3B] = color.b; - vertices[RegionAttachment.C3A] = color.a; - offsetX = offset[RegionAttachment.OX4]; - offsetY = offset[RegionAttachment.OY4]; - vertices[RegionAttachment.X4] = offsetX * a + offsetY * b + x; - vertices[RegionAttachment.Y4] = offsetX * c + offsetY * d + y; - vertices[RegionAttachment.C4R] = color.r; - vertices[RegionAttachment.C4G] = color.g; - vertices[RegionAttachment.C4B] = color.b; - vertices[RegionAttachment.C4A] = color.a; - return vertices; - }; - 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 webgl; (function (webgl) { @@ -6006,12 +6772,12 @@ var spine; } }; Shader.newColoredTextured = function (gl) { - 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 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(gl, vs, fs); }; Shader.newColored = function (gl) { - 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 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(gl, vs, fs); }; @@ -6704,7 +7470,7 @@ var spine; element.appendChild(canvas); canvas.width = element.clientWidth; canvas.height = element.clientHeight; - var webglConfig = { alpha: false }; + var webglConfig = { alpha: config.alpha }; var gl = this.gl = (canvas.getContext("webgl", webglConfig) || canvas.getContext("experimental-webgl", webglConfig)); this.shader = spine.webgl.Shader.newColoredTextured(gl); this.batcher = new spine.webgl.PolygonBatcher(gl); @@ -6753,6 +7519,8 @@ var spine; 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; }; @@ -6915,6 +7683,8 @@ var spine; 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 () { @@ -6947,6 +7717,7 @@ var spine; this.scale = 1.0; this.x = 0; this.y = 0; + this.alpha = true; this.fitToCanvas = true; this.backgroundColor = "#555555"; this.premultipliedAlpha = false; diff --git a/spine-ts/build/spine-widget.js.map b/spine-ts/build/spine-widget.js.map index d6820b517..9f935298b 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/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/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/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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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":";;;;;AA8BA,IAAO,KAAK,CAgxBX;AAhxBD,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;YAC7F,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,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,uBAAG,GAAH,UAAK,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,KAAa;YAC1G,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,CAAC,CAAC;QAC9D,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,AA3DD,IA2DC;IA3DY,eAAS,YA2DrB,CAAA;IAMD;QAMC,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;QAlFM,oBAAM,GAAG,CAAC,CAAC;QAAQ,qBAAO,GAAG,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC;QAClD,yBAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAoFjC,oBAAC;IAAD,CAAC,AAtFD,IAsFC;IAtFqB,mBAAa,gBAsFlC,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;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;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE1C,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACvG,OAAO,QAAM,GAAG,GAAG;oBAClB,QAAM,IAAI,GAAG,CAAC;gBACf,OAAO,QAAM,GAAG,CAAC,GAAG;oBACnB,QAAM,IAAI,GAAG,CAAC;gBACf,IAAI,CAAC,QAAQ,IAAI,QAAM,GAAG,KAAK,CAAC;gBAChC,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,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YACpE,OAAO,MAAM,GAAG,GAAG;gBAClB,MAAM,IAAI,GAAG,CAAC;YACf,OAAO,MAAM,GAAG,CAAC,GAAG;gBACnB,MAAM,IAAI,GAAG,CAAC;YACf,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChF,OAAO,MAAM,GAAG,GAAG;gBAClB,MAAM,IAAI,GAAG,CAAC;YACf,OAAO,MAAM,GAAG,CAAC,GAAG;gBACnB,MAAM,IAAI,GAAG,CAAC;YACf,IAAI,CAAC,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;QACjC,CAAC;QArDM,sBAAO,GAAG,CAAC,CAAC;QACZ,wBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,4BAAa,GAAG,CAAC,CAAC,CAAC;QAC1C,uBAAQ,GAAG,CAAC,CAAC;QAoDrB,qBAAC;IAAD,CAAC,AAvDD,CAAoC,aAAa,GAuDhD;IAvDY,oBAAc,iBAuD1B,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;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;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE1C,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC5F,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC5F,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAErF,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC3G,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5G,CAAC;QA1CM,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;QAyC5B,wBAAC;IAAD,CAAC,AA5CD,CAAuC,aAAa,GA4CnD;IA5CY,uBAAiB,oBA4C7B,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACvG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACvG,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAEjF,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACxH,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACzH,CAAC;QACF,oBAAC;IAAD,CAAC,AA3BD,CAAmC,iBAAiB,GA2BnD;IA3BY,mBAAa,gBA2BzB,CAAA;IAED;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,6BAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACvG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACvG,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAEjF,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACxH,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACzH,CAAC;QACF,oBAAC;IAAD,CAAC,AA3BD,CAAmC,iBAAiB,GA2BnD;IA3BY,mBAAa,gBA2BzB,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;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;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,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,IAAI,KAAK,GAAU,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YACxD,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACb,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,IAAI;gBACH,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;QAtDM,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;QAqDxD,oBAAC;IAAD,CAAC,AAxDD,CAAmC,aAAa,GAwD/C;IAxDY,mBAAa,gBAwDzB,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,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;YAC7F,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,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,AAlCD,IAkCC;IAlCY,wBAAkB,qBAkC9B,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,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;YAClG,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,CAAC,CAAC;gBACrE,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,AA9CD,IA8CC;IA9CY,mBAAa,gBA8CzB,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,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;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,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,SAAS,GAAgB,QAAQ,CAAC,SAAS,CAAC;YAChD,IAAI,KAAK,GAAgB,QAAQ,CAAC,KAAK,CAAC;YACxC,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,AAxCD,IAwCC;IAxCY,uBAAiB,oBAwC7B,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;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;YAClG,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,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,IAAI,aAAa,GAAkB,IAAI,CAAC,kBAAkB,CAAC;YAC3D,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,WAAW,CAAC;gBAAC,KAAK,GAAG,CAAC,CAAC;YACnD,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,GAAG,CAAC,CAAC,CAAC,CAAC;oBACf,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;gBAAC,IAAI;oBACL,WAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC5D,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,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,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;YAAC,IAAI,CAAC,CAAC;gBACP,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;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA9DD,CAAoC,aAAa,GA8DhD;IA9DY,oBAAc,iBA8D1B,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;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;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,UAAU,GAAiB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE9E,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClE,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnG,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACxG,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,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;YAC9G,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjG,CAAC;QAzCM,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;QAwC3C,2BAAC;IAAD,CAAC,AA3CD,CAA0C,aAAa,GA2CtD;IA3CY,0BAAoB,uBA2ChC,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;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;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,UAAU,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAEnG,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,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC7G,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACtH,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC1G,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC1G,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAE/F,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAC3E,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;YACnE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;YACnE,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YAC1I,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC;kBAC7I,KAAK,CAAC;YACT,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACrI,UAAU,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACtI,CAAC;QApDM,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;QAmD7E,kCAAC;IAAD,CAAC,AAtDD,CAAiD,aAAa,GAsD7D;IAtDY,iCAA2B,8BAsDvC,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;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;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5E,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,8BAA8B,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC7G,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC;YACzF,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAElG,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC/I,CAAC;QAxCM,sCAAO,GAAG,CAAC,CAAC;QACZ,wCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,yCAAU,GAAG,CAAC,CAAC,CAAC;QACvC,oCAAK,GAAG,CAAC,CAAC;QAuClB,qCAAC;IAAD,CAAC,AA1CD,CAAoD,aAAa,GA0ChE;IA1CY,oCAA8B,iCA0C1C,CAAA;IAED;QAAmD,iDAA8B;QAChF,uCAAa,UAAkB;YAC9B,kBAAM,UAAU,CAAC,CAAC;QACnB,CAAC;QAED,6CAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,6BAA6B,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAC1G,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC;YACxF,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAEjG,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1I,CAAC;QACF,oCAAC;IAAD,CAAC,AA1BD,CAAmD,8BAA8B,GA0BhF;IA1BY,mCAA6B,gCA0BzC,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;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;YAClG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM,CAAC;YAE7B,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,EAAE,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,yBAAyB,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;gBAC3G,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,yBAAyB,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACpH,MAAM,CAAC;YACR,CAAC;YAGD,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACpF,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;YACnE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,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;YAE7F,UAAU,CAAC,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YACxI,UAAU,CAAC,YAAY,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC;kBAC3I,KAAK,CAAC;QACV,CAAC;QA7CM,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;QA4CzC,gCAAC;IAAD,CAAC,AA/CD,CAA+C,aAAa,GA+C3D;IA/CY,+BAAyB,4BA+CrC,CAAA;AACF,CAAC,EAhxBM,KAAK,KAAL,KAAK,QAgxBX;AChxBD,IAAO,KAAK,CAiSX;AAjSD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,wBAAa,IAA+B;YAA/B,oBAA+B,GAA/B,WAA+B;YAL5C,WAAM,GAAG,IAAI,KAAK,EAAc,CAAC;YACjC,WAAM,GAAG,IAAI,KAAK,EAAS,CAAC;YAC5B,cAAS,GAAG,IAAI,KAAK,EAA0B,CAAC;YAChD,cAAS,GAAG,CAAC,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;QAED,+BAAM,GAAN,UAAQ,KAAa;YACpB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAE9B,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAClB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7C,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBACvC,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;wBACjC,OAAO,CAAC,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;wBAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBACzB,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;wBACvB,OAAO,GAAG,IAAI,CAAC;oBAChB,CAAC;gBACF,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAEjE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnB,QAAQ,CAAC;gBACV,CAAC;gBAED,OAAO,CAAC,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC1C,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC9B,IAAI,aAAa,GAAG,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,aAAa,CAAC;oBACvC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC;gBAClC,CAAC;YACF,CAAC;QACF,CAAC;QAED,8BAAK,GAAL,UAAO,QAAkB;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAE1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;oBAAC,QAAQ,CAAC;gBAE9B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAElB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC;oBAAC,IAAI,GAAG,OAAO,CAAC;gBAE5C,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChC,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;oBACpB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5E,IAAI,CAAC,CAAC;oBACL,IAAI,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACjC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;wBAAC,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;oBACvF,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAEpF,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;oBAChE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACzB,CAAC;oBACD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;gBAED,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBACpD,IAAI,OAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;oBACvB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;wBAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAK,CAAC,CAAC;oBACjG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE;wBAC3C,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;4BAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAK,CAAC,CAAC;gBACrE,CAAC;gBAGD,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC5F,IAAI,KAAK,GAAG,eAAS,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;oBAC5C,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC/F,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;wBACzD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;4BAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzE,CAAC;gBAED,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YACjC,CAAC;QACF,CAAC;QAED,oCAAW,GAAX;YACC,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;QACxB,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,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC;gBAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/F,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACpD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAE/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,gCAAO,GAAP,UAAS,KAAiB;YACzB,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACtB,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;QACF,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,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;QACb,CAAC;QAED,mCAAU,GAAV,UAAY,KAAa,EAAE,KAAiB;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAExB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC;oBAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1F,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACpD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;wBAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAEzD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC3B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;oBAElB,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;wBACrE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAC1B,QAAQ,GAAG,OAAO,CAAC;oBACpB,CAAC;oBAAC,IAAI;wBACL,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YAE3B,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC;gBAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACpD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QAGD,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;QAGD,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa;YACxE,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,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;QAID,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,KAAa;YACvF,IAAI,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;YAEnC,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;gBAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YACnB,CAAC;YAAC,IAAI;gBACL,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;YAEjC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;oBAChB,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACrE,IAAI;oBACH,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,MAAM,CAAC,KAAK,CAAC;QACd,CAAC;QAGD,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;QAGD,oCAAW,GAAX,UAAa,QAAgC;YAC5C,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,QAAgC;YAC/C,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;QACF,qBAAC;IAAD,CAAC,AAzOD,IAyOC;IAzOY,oBAAc,iBAyO1B,CAAA;IAED;QAAA;YAGC,SAAI,GAAG,KAAK,CAAC;YACb,UAAK,GAAG,CAAC,CAAC;YAAC,SAAI,GAAG,CAAC,CAAC;YAAC,aAAQ,GAAG,CAAC,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YAAC,cAAS,GAAG,CAAC,CAAC;YAC/D,YAAO,GAAG,CAAC,CAAC;YAAC,gBAAW,GAAG,CAAC,CAAC;YAE7B,QAAG,GAAG,CAAC,CAAC;QAgBT,CAAC;QAdA,0BAAK,GAAL;YACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACf,CAAC;QAGD,+BAAU,GAAV;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;QAClC,CAAC;QACF,iBAAC;IAAD,CAAC,AAvBD,IAuBC;IAvBY,gBAAU,aAuBtB,CAAA;IAED;QAAA;QAYA,CAAC;QAXA,qCAAK,GAAL,UAAO,UAAkB,EAAE,KAAY;QACvC,CAAC;QAED,wCAAQ,GAAR,UAAU,UAAkB,EAAE,SAAiB;QAC/C,CAAC;QAED,qCAAK,GAAL,UAAO,UAAkB;QACzB,CAAC;QAED,mCAAG,GAAH,UAAK,UAAkB;QACvB,CAAC;QACF,4BAAC;IAAD,CAAC,AAZD,IAYC;IAZqB,2BAAqB,wBAY1C,CAAA;AAgBF,CAAC,EAjSM,KAAK,KAAL,KAAK,QAiSX;ACjSD,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,CA0GX;AA1GD,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,EAAE,CAAC,CAAC,OAAO,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;wBACjD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;oBAC1C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACP,EAAE,CAAC,CAAC,KAAK,CAAC;4BAAC,KAAK,CAAC,IAAI,EAAE,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC,CAAC;wBACxG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;oBACrG,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,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,EAAE,CAAC,CAAC,OAAO,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAChC,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;YACf,CAAC,CAAA;YACD,GAAG,CAAC,OAAO,GAAG,UAAC,EAAE;gBAChB,EAAE,CAAC,CAAC,KAAK,CAAC;oBAAC,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;gBACtD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAI,yBAAuB,IAAM,CAAC;gBACnD,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,CAAA;QACF,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,AAxGD,IAwGC;IAxGY,kBAAY,eAwGxB,CAAA;AACF,CAAC,EA1GM,KAAK,KAAL,KAAK,QA0GX;AC1GD,IAAO,KAAK,CAsCX;AAtCD,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;QACF,4BAAC;IAAD,CAAC,AApCD,IAoCC;IApCY,2BAAqB,wBAoCjC,CAAA;AACF,CAAC,EAtCM,KAAK,KAAL,KAAK,QAsCX;ACtCD,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,CAqQX;AArQD,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,oBAAe,GAAG,CAAC,CAAC;YAEpB,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;YACzB,eAAU,GAAG,CAAC,CAAC;YAAC,eAAU,GAAG,CAAC,CAAC;YAE/B,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,QAAQ,CAAC;YAEhC,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;YACvC,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YACjG,IAAI,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,eAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YAEjG,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,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,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,UAAU,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3C,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;YAC9C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE/D,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACzD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC/B,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,GAAG,CAAC;wBACH,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;wBACnG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBAC/B,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBACzB,EAAE,GAAG,IAAI,CAAC;wBACV,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBAC3B,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBACzB,EAAE,GAAG,IAAI,CAAC;wBAEV,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;4BAAC,KAAK,CAAC;wBACxC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBACxB,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE;oBACzB,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;gBAC5B,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACnC,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,EAAE,GAAG,CAAC,CAAC;oBACP,GAAG,CAAC;wBACH,IAAI,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,GAAG,eAAS,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;wBACnG,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC7C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;wBACnE,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC7B,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBACvB,EAAE,GAAG,IAAI,CAAC;wBACV,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBACzB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBACvB,EAAE,GAAG,IAAI,CAAC;wBAEV,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;4BAAC,GAAG,GAAG,CAAC,GAAG,CAAC;wBACzB,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBAC3B,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBACzB,EAAE,GAAG,IAAI,CAAC;wBACV,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBAC3B,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;wBACzB,EAAE,GAAG,IAAI,CAAC;wBAEV,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;4BAAC,KAAK,CAAC;wBACrC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBACxB,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE;oBACzB,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;gBAC5B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACP,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;oBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;oBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;oBACZ,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,CAAC;YACF,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,GAAG,IAAI,CAAC,UAAU,CAAC;QACvE,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,GAAG,IAAI,CAAC,UAAU,CAAC;QACvE,CAAC;QAED,oCAAqB,GAArB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACxE,CAAC;QAED,oCAAqB,GAArB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;QACxE,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;QAC5B,CAAC;QAOD,mCAAoB,GAApB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACpF,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,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YACzC,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,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;gBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YACvD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,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;QACF,WAAC;IAAD,CAAC,AAnQD,IAmQC;IAnQY,UAAI,OAmQhB,CAAA;AACF,CAAC,EArQM,KAAK,KAAL,KAAK,QAqQX;ACrQD,IAAO,KAAK,CAiBX;AAjBD,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,oBAAe,GAAG,IAAI,CAAC;YAAC,iBAAY,GAAG,IAAI,CAAC;YAG3C,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;AACF,CAAC,EAjBM,KAAK,KAAL,KAAK,QAiBX;ACjBD,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,CA+LX;AA/LD,WAAO,KAAK,EAAC,CAAC;IACb;QASC,sBAAa,IAAsB,EAAE,QAAkB;YALvD,QAAG,GAAG,CAAC,CAAC;YACR,kBAAa,GAAG,CAAC,CAAC;YAElB,UAAK,GAAG,CAAC,CAAC;YAGT,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,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,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YACrD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACvF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrF,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAAC,UAAU,IAAI,GAAG,CAAC;YACvC,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,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EACtH,IAAI,CAAC,MAAM,CAAC,CAAC;QACf,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,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/F,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,CAAC,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;YACnG,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,CAAC,CAAC;gBACb,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,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,IAAI,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAClD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,CAAC,CAAC;oBACb,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oBACjB,QAAQ,GAAG,eAAS,CAAC,EAAE,CAAC;oBACxB,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,GAAG,CAAC,CAAC;gBACV,CAAC;gBACD,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,QAAQ,CAAC;YAC/B,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,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC1B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;YACzE,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,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvH,CAAC;QACF,mBAAC;IAAD,CAAC,AA7LD,IA6LC;IA7LY,kBAAY,eA6LxB,CAAA;AACF,CAAC,EA/LM,KAAK,KAAL,KAAK,QA+LX;AC/LD,IAAO,KAAK,CAYX;AAZD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,0BAAa,IAAY;YALzB,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,AAVD,IAUC;IAVY,sBAAgB,mBAU5B,CAAA;AACF,CAAC,EAZM,KAAK,KAAL,KAAK,QAYX;ACZD,IAAO,KAAK,CAoWX;AApWD,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,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,QAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,QAAM,GAAG,IAAI,CAAC,CAAC,CAAC;oBACxE,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,EAAE,CAAC,CAAC,KAAK,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;oBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;gBACvE,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,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;YACnD,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,UAAU,IAAI,gBAAU,CAAC,KAAK,IAAI,cAAc,IAAI,CAAC,CAAC;YAChE,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,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBAChE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;gBAChE,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,GAAG,cAAc,GAAG,eAAS,CAAC,MAAM,CAAC;oBAC1D,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;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;YACF,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,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,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACxE,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,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvE,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBACvD,CAAC;wBAAC,IAAI;4BACL,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACpE,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;gBACvE,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,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,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,CAAC;gBAAC,CAAC,GAAG,MAAM,CAAC;YACvB,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;QAhWM,mBAAI,GAAG,CAAC,CAAC,CAAC;QAAQ,qBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAK,GAAG,CAAC,CAAC,CAAC;QAiWzD,qBAAC;IAAD,CAAC,AAlWD,IAkWC;IAlWY,oBAAc,iBAkW1B,CAAA;AACF,CAAC,EApWM,KAAK,KAAL,KAAK,QAoWX;ACpWD,IAAO,KAAK,CA2BX;AA3BD,WAAO,KAAK,EAAC,CAAC;IACb;QAUC,4BAAa,IAAY;YARzB,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAS7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,yBAAC;IAAD,CAAC,AAbD,IAaC;IAbY,wBAAkB,qBAa9B,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,EA3BM,KAAK,KAAL,KAAK,QA2BX;AC3BD,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,GAAI,yBAAuB,IAAM,CAAC;YACpD,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,CAybX;AAzbD,WAAO,KAAK,EAAC,CAAC;IACb;QAeC,kBAAa,IAAkB;YAP/B,iBAAY,GAAG,IAAI,KAAK,EAAa,CAAC;YAGtC,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,IAAI,CAAC,mBAAmB,GAAG,IAAI,KAAK,EAAgB,CAAC;YACrD,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;YAEvB,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,mBAAmB,CAAC;YAC7C,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE;gBACjD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;YACnC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9B,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE;oBACpC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBACrB,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;oBAChC,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBAC9B,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;wBAAC,KAAK,CAAC;oBAC/B,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;gBAC/B,CAAC;gBACD,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,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,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAEtB,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;gBACnC,IAAI,QAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,QAAM,CAAC,CAAC;gBAEtB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE7B,IAAI,CAAC,SAAS,CAAC,QAAM,CAAC,QAAQ,CAAC,CAAC;gBAChC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACnD,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;gBAEpC,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBACzB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;oBAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACzF,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;oBACvE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC/E,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;oBAC1D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAE7E,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC;oBAAC,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAEtG,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;gBACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;gBACnC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEhC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE7B,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChC,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;gBAEzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAEjC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;gBACnC,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;gBACnC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEhC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE7B,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;oBACpC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChC,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,+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,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;QAKD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa;YACxC,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,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,EAAE,CAAC,CAAC,UAAU,YAAY,sBAAgB,CAAC;oBAC1C,QAAQ,GAAsB,UAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5E,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,YAAY,oBAAc,CAAC;oBAC7C,QAAQ,GAAoB,UAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzE,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,AAvbD,IAubC;IAvbY,cAAQ,WAubpB,CAAA;AACF,CAAC,EAzbM,KAAK,KAAL,KAAK,QAybX;ACzbD,IAAO,KAAK,CAyKX;AAzKD,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;QAgKJ,CAAC;QA9JA,+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,OAAO,CAAC,CAAC;gBACjD,CAAC;YACF,CAAC;YAED,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,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,AAtKD,IAsKC;IAtKY,oBAAc,iBAsK1B,CAAA;AAEF,CAAC,EAzKM,KAAK,KAAL,KAAK,QAyKX;ACzKD,IAAO,KAAK,CAuHX;AAvHD,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;QA2GnD,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,AArHD,IAqHC;IArHY,kBAAY,eAqHxB,CAAA;AACF,CAAC,EAvHM,KAAK,KAAL,KAAK,QAuHX;ACvHD,IAAO,KAAK,CAgrBX;AAhrBD,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,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,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;oBACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;oBAEjE,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,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;oBAEpD,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;oBAE3D,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,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;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,CAAC,CAAC;4BACrF,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,IAAI,CAAC,CAAC;oBAC3D,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;YACpE,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,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;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,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,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBACvB,CAAC;gBACD,UAAU,CAAC,QAAQ,GAAG,WAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnD,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,OAAO,CAAC,CAAC,CAAC;4BAC7B,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,GAAG,YAAY,CAAC,CAAC,CAAC;4BACxC,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;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;QACF,mBAAC;IAAD,CAAC,AAjqBD,IAiqBC;IAjqBY,kBAAY,eAiqBxB,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,EAhrBM,KAAK,KAAL,KAAK,QAgrBX;AChrBD,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,CAmDX;AAnDD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,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,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,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,AAjDD,IAiDC;IAjDY,UAAI,OAiDhB,CAAA;AACF,CAAC,EAnDM,KAAK,KAAL,KAAK,QAmDX;ACnDD,IAAO,KAAK,CAkBX;AAlBD,WAAO,KAAK,EAAC,CAAC;IACb;QAQC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAJ5D,UAAK,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAK7B,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,AAhBD,IAgBC;IAhBY,cAAQ,WAgBpB,CAAA;AACF,CAAC,EAlBM,KAAK,KAAL,KAAK,QAkBX;AClBD,IAAO,KAAK,CAiEX;AAjED,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;QAOa,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,AArCD,IAqCC;IArCqB,aAAO,UAqC5B,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,EAjEM,KAAK,KAAL,KAAK,QAiEX;ACjED,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,CAqFX;AArFD,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,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,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;gBAEpB,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnB,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,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAS,CAAC,MAAM,CAAC;oBAC5F,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;gBAC5B,CAAC;gBAED,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtB,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;gBACtD,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACrF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClC,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACjF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACb,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,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,eAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;oBACpE,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;gBAC1B,CAAC;YACF,CAAC;QACF,CAAC;QACF,0BAAC;IAAD,CAAC,AAnFD,IAmFC;IAnFY,yBAAmB,sBAmF/B,CAAA;AACF,CAAC,EArFM,KAAK,KAAL,KAAK,QAqFX;ACrFD,IAAO,KAAK,CAaX;AAbD,WAAO,KAAK,EAAC,CAAC;IACb;QAOC,iCAAa,IAAY;YALzB,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;YAGlG,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,AAXD,IAWC;IAXY,6BAAuB,0BAWnC,CAAA;AACF,CAAC,EAbM,KAAK,KAAL,KAAK,QAaX;AEbD,IAAO,KAAK,CA6OX;AA7OD,WAAO,KAAK,EAAC,CAAC;IASb;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,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,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;YACjC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,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;QAsCA,CAAC;QAnCO,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,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,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACtE,CAAC;QApCM,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QAqCrE,YAAC;IAAD,CAAC,AAtCD,IAsCC;IAtCY,WAAK,QAsCjB,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,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;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,oBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,WAAC;IAAD,CAAC,AAvBD,IAuBC;IAvBY,UAAI,OAuBhB,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;AAMF,CAAC,EA7OM,KAAK,KAAL,KAAK,QA6OX;AC7OD,IAAO,KAAK,CA4FX;AA5FD,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;QAED,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC;YACjE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAOD,mDAAwB,GAAxB,UAA0B,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc;YACnH,KAAK,IAAI,MAAM,CAAC;YAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YACnC,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,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBACjB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBACjB,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,CAAC,EAAE,CAAC;oBAC3D,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,CAAC,EAAE,CAAC;oBACtD,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,CAAC,EAAE,CAAC;oBACrE,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,AAjFD,CAA+C,UAAU,GAiFxD;IAjFqB,sBAAgB,mBAiFrC,CAAA;AACF,CAAC,EA5FM,KAAK,KAAL,KAAK,QA4FX;AE5FD,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;IAC5C,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,CA6IX;AA7ID,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,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;YACtC,IAAI,mBAAmB,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,mBAAmB,CAAC;gBAClF,IAAI,CAAC,aAAa,GAAG,WAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAE/D,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,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;gBAChE,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC3D,CAAC;YACF,CAAC;QACF,CAAC;QAGD,4CAAmB,GAAnB,UAAqB,IAAU,EAAE,kBAA2B;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YACnF,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACjE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACxD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,EACxD,KAAK,CAAC,CAAC;YAER,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YACnC,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACjE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACrC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBAAC,QAAQ,GAAG,WAAW,CAAC;gBACnD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBACjB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;gBACjB,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,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,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;oBAC3C,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,CAAC,aAAa,CAAC;YACtB,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,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/D,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5B,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;oBAC1B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACxB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpC,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;oBAC1B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC/B,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YACD,MAAM,CAAC,aAAa,CAAC;QACtB,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,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;YACzC,CAAC;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AA1ID,CAAoC,sBAAgB,GA0InD;IA1IY,oBAAc,iBA0I1B,CAAA;AAEF,CAAC,EA7IM,KAAK,KAAL,KAAK,QA6IX;AC7ID,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,CA+KX;AA/KD,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,aAAQ,GAAG,WAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtC,cAAS,GAAG,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIlC,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACP,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,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,8CAAmB,GAAnB,UAAqB,IAAU,EAAE,kBAA2B;YAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;YAC1D,IAAI,UAAU,GAAG,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;YAChD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,EACnE,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;YAER,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/D,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,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAEzC,MAAM,CAAC,QAAQ,CAAC;QACjB,CAAC;QA3KM,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;QAiIhB,uBAAC;IAAD,CAAC,AA7KD,CAAsC,gBAAU,GA6K/C;IA7KY,sBAAgB,mBA6K5B,CAAA;AACF,CAAC,EA/KM,KAAK,KAAL,KAAK,QA+KX;AC/KD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,KAAK,CAQjB;IARY,WAAA,KAAK,EAAC,CAAC;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,EAAyB,EAAE,UAAuB;gBAAvB,0BAAuB,GAAvB,eAAuB;gBAC9D,kBAAM,UAAC,KAAuB;oBAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7C,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,CAwDX;AAxDD,WAAO,KAAK;IAAC,IAAA,KAAK,CAwDjB;IAxDY,WAAA,KAAK,EAAC,CAAC;QACnB;YAA+B,6BAAO;YAKrC,mBAAa,EAAyB,EAAE,KAAuB,EAAE,UAA2B;gBAA3B,0BAA2B,GAA3B,kBAA2B;gBAC3F,kBAAM,KAAK,CAAC,CAAC;gBAHN,cAAS,GAAG,CAAC,CAAC;gBAIrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YAED,8BAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,wBAAI,GAAJ,UAAM,IAAgB;gBAAhB,oBAAgB,GAAhB,QAAgB;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,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,EAAE,CAAC;gBACjB,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,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACF,gBAAC;QAAD,CAAC,AAtDD,CAA+B,aAAO,GAsDrC;QAtDY,eAAS,YAsDrB,CAAA;IACF,CAAC,EAxDY,KAAK,GAAL,WAAK,KAAL,WAAK,QAwDjB;AAAD,CAAC,EAxDM,KAAK,KAAL,KAAK,QAwDX;ACxDD,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,EAAE,CAAC;gBAErB,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,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,eAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBACrE,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,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;gBAC1G,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,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,GAA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,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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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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/MeshAttachment.ts","../core/src/attachments/PathAttachment.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/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/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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,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,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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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,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,SAAG,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,CAA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"} \ No newline at end of file diff --git a/spine-ts/canvas/example/assets/spineboy.json b/spine-ts/canvas/example/assets/spineboy.json index 074333537..3dfd78d82 100644 --- a/spine-ts/canvas/example/assets/spineboy.json +++ b/spine-ts/canvas/example/assets/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ @@ -2409,4 +2416,4 @@ } } } -} \ No newline at end of file +} diff --git a/spine-ts/core/src/Animation.ts b/spine-ts/core/src/Animation.ts index be76fcb7f..cea4475cc 100644 --- a/spine-ts/core/src/Animation.ts +++ b/spine-ts/core/src/Animation.ts @@ -42,7 +42,7 @@ module spine { this.duration = duration; } - apply (skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array) { + apply (skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { if (skeleton == null) throw new Error("skeleton cannot be null."); if (loop && this.duration != 0) { @@ -52,20 +52,7 @@ module spine { let timelines = this.timelines; for (let i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, 1); - } - - mix (skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number) { - if (skeleton == null) throw new Error("skeleton cannot be null."); - - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) lastTime %= this.duration; - } - - let timelines = this.timelines; - for (let i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha); + timelines[i].apply(skeleton, lastTime, time, events, alpha, setupPose, mixingOut); } static binarySearch (values: ArrayLike, target: number, step: number = 1) { @@ -91,7 +78,16 @@ module spine { } export interface Timeline { - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; + getPropertyId (): number; + } + + export enum TimelineType { + rotate, translate, scale, shear, + attachment, color, deform, + event, drawOrder, + ikConstraint, transformConstraint, + pathConstraintPosition, pathConstraintSpacing, pathConstraintMix } export abstract class CurveTimeline implements Timeline { @@ -100,6 +96,8 @@ module spine { private curves: ArrayLike; // type, x, y, ... + abstract getPropertyId(): number; + constructor (frameCount: number) { if (frameCount <= 0) throw new Error("frameCount must be > 0: " + frameCount); this.curves = Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); @@ -179,7 +177,7 @@ module spine { return y + (1 - y) * (percent - x) / (1 - x); // Last point is 1,1. } - abstract apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number): void; + abstract apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean): void; } export class RotateTimeline extends CurveTimeline { @@ -195,6 +193,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount << 1); } + getPropertyId () { + return (TimelineType.rotate << 24) + this.boneIndex; + } + /** Sets the time and angle of the specified keyframe. */ setFrame (frameIndex: number, time: number, degrees: number) { frameIndex <<= 1; @@ -202,19 +204,23 @@ module spine { this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. let bone = skeleton.bones[this.boneIndex]; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { // Time is after last frame. - let amount = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + if (setupPose) + bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha; + else { + let r = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; // Wrap within -180 and 180. + bone.rotation += r * alpha; + } return; } @@ -225,17 +231,17 @@ module spine { let percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - let amount = frames[frame + RotateTimeline.ROTATION] - prevRotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - amount = bone.data.rotation + (prevRotation + amount * percent) - bone.rotation; - while (amount > 180) - amount -= 360; - while (amount < -180) - amount += 360; - bone.rotation += amount * alpha; + let 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; + } } } @@ -252,6 +258,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.translate << 24) + this.boneIndex; + } + /** Sets the time and value of the specified keyframe. */ setFrame (frameIndex: number, time: number, x: number, y: number) { frameIndex *= TranslateTimeline.ENTRIES; @@ -260,28 +270,41 @@ module spine { this.frames[frameIndex + TranslateTimeline.Y] = y; } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. let bone = skeleton.bones[this.boneIndex]; - - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { // Time is after last frame. - bone.x += (bone.data.x + frames[frames.length + TranslateTimeline.PREV_X] - bone.x) * alpha; - bone.y += (bone.data.y + frames[frames.length + TranslateTimeline.PREV_Y] - bone.y) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.x = bone.data.x; + bone.y = bone.data.y; + } return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - let prevX = frames[frame + TranslateTimeline.PREV_X]; - let prevY = frames[frame + TranslateTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + let x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { // Time is after last frame. + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - bone.x += (bone.data.x + prevX + (frames[frame + TranslateTimeline.X] - prevX) * percent - bone.x) * alpha; - bone.y += (bone.data.y + prevY + (frames[frame + TranslateTimeline.Y] - prevY) * percent - bone.y) * alpha; + 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; + } } } @@ -290,27 +313,61 @@ module spine { super(frameCount); } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + getPropertyId () { + return (TimelineType.scale << 24) + this.boneIndex; + } + + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. let bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { // Time is after last frame. - bone.scaleX += (bone.data.scaleX * frames[frames.length + ScaleTimeline.PREV_X] - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * frames[frames.length + ScaleTimeline.PREV_Y] - bone.scaleY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + } return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - let prevX = frames[frame + ScaleTimeline.PREV_X]; - let prevY = frames[frame + ScaleTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + let x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { // Time is after last frame. + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - bone.scaleX += (bone.data.scaleX * (prevX + (frames[frame + ScaleTimeline.X] - prevX) * percent) - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY * (prevY + (frames[frame + ScaleTimeline.Y] - prevY) * percent) - bone.scaleY) * alpha; + 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 { + let bx = 0, by = 0; + if (setupPose) { + bx = bone.data.scaleX; + by = bone.data.scaleY; + } else { + bx = bone.scaleX; + by = bone.scaleY; + } + // Mixing out uses sign of setup or current pose, else use sign of key. + if (mixingOut) { + x = Math.abs(x) * MathUtils.signum(bx); + y = Math.abs(y) * MathUtils.signum(by); + } else { + bx = Math.abs(bx) * MathUtils.signum(x); + by = Math.abs(by) * MathUtils.signum(y); + } + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + } } } @@ -319,27 +376,45 @@ module spine { super(frameCount); } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + getPropertyId () { + return (TimelineType.shear << 24) + this.boneIndex; + } + + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. let bone = skeleton.bones[this.boneIndex]; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { // Time is after last frame. - bone.shearX += (bone.data.shearX + frames[frames.length + ShearTimeline.PREV_X] - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + frames[frames.length + ShearTimeline.PREV_Y] - bone.shearY) * alpha; + if (time < frames[0]) { + if (setupPose) { + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + } return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - let prevX = frames[frame + ShearTimeline.PREV_X]; - let prevY = frames[frame + ShearTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + let x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { // Time is after last frame. + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - bone.shearX += (bone.data.shearX + (prevX + (frames[frame + ShearTimeline.X] - prevX) * percent) - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + (prevY + (frames[frame + ShearTimeline.Y] - prevY) * percent) - bone.shearY) * alpha; + 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; + } } } @@ -356,6 +431,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.color << 24) + this.slotIndex; + } + /** Sets the time and value of the specified keyframe. */ setFrame (frameIndex: number, time: number, r: number, g: number, b: number, a: number) { frameIndex *= ColorTimeline.ENTRIES; @@ -366,9 +445,13 @@ module spine { this.frames[frameIndex + ColorTimeline.A] = a; } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { + let slot = skeleton.slots[this.slotIndex]; let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) slot.color.setFromColor(slot.data.color); + return; + } let r = 0, g = 0, b = 0, a = 0; if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { // Time is after last frame. @@ -393,11 +476,13 @@ module spine { b += (frames[frame + ColorTimeline.B] - b) * percent; a += (frames[frame + ColorTimeline.A] - a) * percent; } - let color: Color = skeleton.slots[this.slotIndex].color; - if (alpha < 1) + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + let 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); - else - color.set(r, g, b, a); + } } } @@ -411,6 +496,10 @@ module spine { this.attachmentNames = new Array(frameCount); } + getPropertyId () { + return (TimelineType.attachment << 24) + this.slotIndex; + } + getFrameCount () { return this.frames.length; } @@ -421,9 +510,22 @@ module spine { this.attachmentNames[frameIndex] = attachmentName; } - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { + let slot = skeleton.slots[this.slotIndex]; + if (mixingOut && setupPose) { + let attachmentName = slot.data.attachmentName; + slot.setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + return; + } + let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) { + let attachmentName = slot.data.attachmentName; + slot.setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + } + return; + } let frameIndex = 0; if (time >= frames[frames.length - 1]) // Time is after last frame. @@ -437,6 +539,109 @@ module spine { } } + export class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; // time, ... + frameVertices: Array>; + + constructor (frameCount: number) { + super(frameCount); + this.frames = Utils.newFloatArray(frameCount); + this.frameVertices = new Array>(frameCount); + } + + getPropertyId () { + return (TimelineType.deform << 24) + this.slotIndex; + } + + /** Sets the time of the specified keyframe. */ + setFrame (frameIndex: number, time: number, vertices: ArrayLike) { + this.frames[frameIndex] = time; + this.frameVertices[frameIndex] = vertices; + } + + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { + let slot: Slot = skeleton.slots[this.slotIndex]; + let slotAttachment: Attachment = slot.getAttachment(); + if (!(slotAttachment instanceof VertexAttachment) || !(slotAttachment).applyDeform(this.attachment)) return; + + let frames = this.frames; + let verticesArray: Array = slot.attachmentVertices; + if (time < frames[0]) { + if (setupPose) Utils.setArraySize(verticesArray, 0); + return; + } + + let frameVertices = this.frameVertices; + let vertexCount = frameVertices[0].length; + + if (verticesArray.length != vertexCount) 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. + let lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); + } else if (setupPose) { + let vertexAttachment = slotAttachment as VertexAttachment; + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + let setupVertices = vertexAttachment.vertices; + for (let i = 0; i < vertexCount; i++) { + let setup = setupVertices[i]; + vertices[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (let i = 0; i < vertexCount; i++) + vertices[i] = lastVertices[i] * alpha; + } + } else { + for (let i = 0; i < vertexCount; i++) + vertices[i] += (lastVertices[i] - vertices[i]) * alpha; + } + return; + } + + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time); + let prevVertices = frameVertices[frame - 1]; + let nextVertices = frameVertices[frame]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + + if (alpha == 1) { + for (let i = 0; i < vertexCount; i++) { + let prev = prevVertices[i]; + vertices[i] = prev + (nextVertices[i] - prev) * percent; + } + } else if (setupPose) { + let vertexAttachment = slotAttachment as VertexAttachment; + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + let setupVertices = vertexAttachment.vertices; + for (let i = 0; i < vertexCount; i++) { + let prev = prevVertices[i], setup = setupVertices[i]; + vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (let i = 0; i < vertexCount; i++) { + let prev = prevVertices[i]; + vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } else { + // Vertex positions or deform offsets, with alpha. + for (let i = 0; i < vertexCount; i++) { + let prev = prevVertices[i]; + vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; + } + } + } + } + export class EventTimeline implements Timeline { frames: ArrayLike; // time, ... events: Array; @@ -446,6 +651,10 @@ module spine { this.events = new Array(frameCount); } + getPropertyId () { + return TimelineType.event << 24; + } + getFrameCount () { return this.frames.length; } @@ -457,13 +666,13 @@ module spine { } /** Fires events for frames > lastTime and <= time. */ - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { if (firedEvents == null) return; let frames = this.frames; let frameCount = this.frames.length; if (lastTime > time) { // Fire events after last time for looped animations. - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha); + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, setupPose, mixingOut); lastTime = -1; } else if (lastTime >= frames[frameCount - 1]) // Last time is after last frame. return; @@ -494,6 +703,10 @@ module spine { this.drawOrders = new Array>(frameCount); } + getPropertyId () { + return TimelineType.drawOrder << 24; + } + getFrameCount () { return this.frames.length; } @@ -505,9 +718,19 @@ module spine { this.drawOrders[frameIndex] = drawOrder; } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { + let drawOrder: Array = skeleton.drawOrder; + let slots: Array = skeleton.slots; + if (mixingOut && setupPose) { + Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. + if (time < frames[0]) { + if (setupPose) Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } let frame = 0; if (time >= frames[frames.length - 1]) // Time is after last frame. @@ -515,8 +738,6 @@ module spine { else frame = Animation.binarySearch(frames, time) - 1; - let drawOrder: Array = skeleton.drawOrder; - let slots: Array = skeleton.slots; let drawOrderToSetupIndex = this.drawOrders[frame]; if (drawOrderToSetupIndex == null) Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); @@ -527,70 +748,6 @@ module spine { } } - export class DeformTimeline extends CurveTimeline { - frames: ArrayLike; // time, ... - frameVertices: Array>; - slotIndex: number; - attachment: VertexAttachment; - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount); - this.frameVertices = new Array>(frameCount); - } - - /** Sets the time of the specified keyframe. */ - setFrame (frameIndex: number, time: number, vertices: ArrayLike) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - } - - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { - let slot: Slot = skeleton.slots[this.slotIndex]; - let slotAttachment: Attachment = slot.getAttachment(); - if (!(slotAttachment instanceof VertexAttachment) || !(slotAttachment).applyDeform(this.attachment)) return; - - let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - - let frameVertices = this.frameVertices; - let vertexCount = frameVertices[0].length; - - let verticesArray: Array = slot.attachmentVertices; - if (verticesArray.length != vertexCount) 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. - let lastVertices = frameVertices[frames.length - 1]; - if (alpha < 1) { - for (let i = 0; i < vertexCount; i++) - vertices[i] += (lastVertices[i] - vertices[i]) * alpha; - } else - Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount); - return; - } - - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time); - let prevVertices = frameVertices[frame - 1]; - let nextVertices = frameVertices[frame]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - - if (alpha < 1) { - for (let i = 0; i < vertexCount; i++) { - let prev = prevVertices[i]; - vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha; - } - } else { - for (let i = 0; i < vertexCount; i++) { - let prev = prevVertices[i]; - vertices[i] = prev + (nextVertices[i] - prev) * percent; - } - } - } - } - export class IkConstraintTimeline extends CurveTimeline { static ENTRIES = 3; static PREV_TIME = -3; static PREV_MIX = -2; static PREV_BEND_DIRECTION = -1; @@ -604,6 +761,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + } + /** Sets the time, mix and bend direction of the specified keyframe. */ setFrame (frameIndex: number, time: number, mix: number, bendDirection: number) { frameIndex *= IkConstraintTimeline.ENTRIES; @@ -612,15 +773,26 @@ module spine { this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - let constraint: IkConstraint = 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]) { // Time is after last frame. - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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; } @@ -631,8 +803,13 @@ module spine { let percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.bendDirection = Math.floor(frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]); + 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]; + } } } @@ -649,6 +826,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + } + /** Sets the time and mixes of the specified keyframe. */ setFrame (frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number) { frameIndex *= TransformConstraintTimeline.ENTRIES; @@ -659,36 +840,56 @@ module spine { this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. let constraint: TransformConstraint = skeleton.transformConstraints[this.transformConstraintIndex]; - - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - constraint.rotateMix += (frames[i + TransformConstraintTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + TransformConstraintTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; - constraint.scaleMix += (frames[i + TransformConstraintTimeline.PREV_SCALE] - constraint.scaleMix) * alpha; - constraint.shearMix += (frames[i + TransformConstraintTimeline.PREV_SHEAR] - constraint.shearMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + let data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.rotateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + let rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { // Time is after last frame. + let 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 { + // Interpolate between the previous frame and the current frame. + let 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]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - let rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - let translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - let scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - let shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - constraint.rotateMix += (rotate + (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; - constraint.scaleMix += (scale + (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent - constraint.scaleMix) * alpha; - constraint.shearMix += (shear + (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent - constraint.shearMix) * alpha; + 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) { + let 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; + } } } @@ -706,6 +907,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + } + /** Sets the time and value of the specified keyframe. */ setFrame (frameIndex: number, time: number, value: number) { frameIndex *= PathConstraintPositionTimeline.ENTRIES; @@ -713,26 +918,31 @@ module spine { this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; - - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - constraint.position += (frames[i + PathConstraintPositionTimeline.PREV_VALUE] - constraint.position) * alpha; + if (time < frames[0]) { + if (setupPose) constraint.position = constraint.data.position; return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - let position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + let position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) // Time is after last frame. + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - constraint.position += (position + (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent - constraint.position) * alpha; + 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; } } @@ -741,26 +951,36 @@ module spine { super(frameCount); } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + getPropertyId () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + } + + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; - - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - constraint.spacing += (frames[i + PathConstraintSpacingTimeline.PREV_VALUE] - constraint.spacing) * alpha; + if (time < frames[0]) { + if (setupPose) constraint.spacing = constraint.data.spacing; return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - let spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + let spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) // Time is after last frame. + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - constraint.spacing += (spacing + (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent - constraint.spacing) * alpha; + 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; } } @@ -778,6 +998,10 @@ module spine { this.frames = Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); } + getPropertyId () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + } + /** Sets the time and mixes of the specified keyframe. */ setFrame (frameIndex: number, time: number, rotateMix: number, translateMix: number) { frameIndex *= PathConstraintMixTimeline.ENTRIES; @@ -786,30 +1010,42 @@ module spine { this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; } - apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number) { + apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, setupPose: boolean, mixingOut: boolean) { let frames = this.frames; - if (time < frames[0]) return; // Time is before first frame. - let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - constraint.rotateMix += (frames[i + PathConstraintMixTimeline.PREV_ROTATE] - constraint.rotateMix) * alpha; - constraint.translateMix += (frames[i + PathConstraintMixTimeline.PREV_TRANSLATE] - constraint.translateMix) * alpha; + if (time < frames[0]) { + if (setupPose) { + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + } return; } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - let rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - let translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + let rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { // Time is after last frame. + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + let frameTime = frames[frame]; + let percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, + 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - constraint.rotateMix += (rotate + (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent - constraint.rotateMix) * alpha; - constraint.translateMix += (translate + (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent - constraint.translateMix) - * alpha; + 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; + } } } } diff --git a/spine-ts/core/src/AnimationState.ts b/spine-ts/core/src/AnimationState.ts index 01dd1d507..7a32701c1 100644 --- a/spine-ts/core/src/AnimationState.ts +++ b/spine-ts/core/src/AnimationState.ts @@ -30,104 +30,292 @@ module spine { export class AnimationState { + static emptyAnimation = new Animation("", [], 0); + data: AnimationStateData; tracks = new Array(); events = new Array(); - listeners = new Array(); + listeners = new Array(); + queue = new EventQueue(this); + propertyIDs = new IntSet(); + animationsChanged = false; timeScale = 1; - constructor (data: AnimationStateData = null) { - if (data == null) throw new Error("data cannot be null."); + trackEntryPool = new Pool(() => new TrackEntry()); + + constructor (data: AnimationStateData) { this.data = data; } update (delta: number) { delta *= this.timeScale; - for (let i = 0; i < this.tracks.length; i++) { - let current = this.tracks[i]; + let tracks = this.tracks; + for (let i = 0, n = tracks.length; i < n; i++) { + let current = tracks[i]; if (current == null) continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + + let currentDelta = delta * current.timeScale; + + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) continue; + currentDelta = -current.delay; + current.delay = 0; + } + let next = current.next; if (next != null) { - let nextTime = current.lastTime - next.delay; + // When the next entry's delay is passed, change to the next entry, preserving leftover time. + let nextTime = current.trackLast - next.delay; if (nextTime >= 0) { - let nextDelta = delta * next.timeScale; - next.time = nextTime + nextDelta; // For start event to see correct time. - current.time += delta * current.timeScale; // For end event to see correct time. + next.delay = 0; + next.trackTime = nextTime + delta * next.timeScale; + current.trackTime += currentDelta; this.setCurrent(i, next); - next.time -= nextDelta; // Prevent increasing time twice, below. - current = next; + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + this.updateMixingFrom(current, delta, true); + } else { + this.updateMixingFrom(current, delta, true); + // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; } - } else if (!current.loop && current.lastTime >= current.endTime) { - // End non-looping animation when it reaches its end time and there is no next entry. - this.clearTrack(i); - continue; } - current.time += delta * current.timeScale; - if (current.previous != null) { - let previousDelta = delta * current.previous.timeScale; - current.previous.time += previousDelta; - current.mixTime += previousDelta; - } + current.trackTime += currentDelta; } + + this.queue.drain(); + } + + updateMixingFrom (entry: TrackEntry, delta: number, canEnd: boolean) { + let from = entry.mixingFrom; + if (from == null) return; + + if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { + this.queue.end(from); + let newFrom = from.mixingFrom; + entry.mixingFrom = newFrom; + if (newFrom == null) return; + entry.mixTime = from.mixTime; + entry.mixDuration = from.mixDuration; + from = newFrom; + } + + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + let mixingFromDelta = delta * from.timeScale; + from.trackTime += mixingFromDelta; + entry.mixTime += mixingFromDelta; + + this.updateMixingFrom(from, delta, canEnd && from.alpha == 1); } apply (skeleton: Skeleton) { + if (skeleton == null) throw new Error("skeleton cannot be null."); + if (this.animationsChanged) this._animationsChanged(); + let events = this.events; - let listenerCount = this.listeners.length; + let tracks = this.tracks; - for (let i = 0; i < this.tracks.length; i++) { - let current = this.tracks[i]; - if (current == null) continue; + for (let i = 0, n = tracks.length; i < n; i++) { + let current = tracks[i]; + if (current == null || current.delay > 0) continue; - events.length = 0; + // Apply mixing from entries first. + let mix = current.alpha; + if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); - let time = current.time; - let lastTime = current.lastTime; - let endTime = current.endTime; - let loop = current.loop; - if (!loop && time > endTime) time = endTime; + // Apply current entry. + let animationLast = current.animationLast, animationTime = current.getAnimationTime(); + let timelineCount = current.animation.timelines.length; + let timelines = current.animation.timelines; + if (mix == 1) { + for (let ii = 0; ii < timelineCount; ii++) + timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, true, false); + } else { + let firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + let timelinesRotation = current.timelinesRotation; - let previous = current.previous; - if (previous == null) - current.animation.mix(skeleton, lastTime, time, loop, events, current.mix); - else { - let previousTime = previous.time; - if (!previous.loop && previousTime > previous.endTime) previousTime = previous.endTime; - previous.animation.apply(skeleton, previousTime, previousTime, previous.loop, null); - - let alpha = current.mixTime / current.mixDuration * current.mix; - if (alpha >= 1) { - alpha = 1; - current.previous = null; + let timelinesFirst = current.timelinesFirst; + for (let ii = 0; ii < timelineCount; ii++) { + let timeline = timelines[ii]; + if (timeline instanceof RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelinesFirst[ii], timelinesRotation, ii << 1, + firstFrame); + } else + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelinesFirst[ii], false); } - current.animation.mix(skeleton, lastTime, time, loop, events, alpha); } - - for (let ii = 0, nn = events.length; ii < nn; ii++) { - let event = events[ii]; - if (current.listener != null && current.listener.event != null) current.listener.event(i, event); - for (let iii = 0; iii < listenerCount; iii++) - if (this.listeners[iii].event) this.listeners[iii].event(i, event); - } - - // Check if completed the animation or a loop iteration. - if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) { - let count = MathUtils.toInt(time / endTime); - if (current.listener != null && current.listener.complete) current.listener.complete(i, count); - for (let ii = 0, nn = this.listeners.length; ii < nn; ii++) - if (this.listeners[ii].complete) this.listeners[ii].complete(i, count); - } - - current.lastTime = current.time; + this.queueEvents(current, animationTime); + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; } + + this.queue.drain(); + } + + applyMixingFrom (entry: TrackEntry, skeleton: Skeleton) { + let from = entry.mixingFrom; + if (from.mixingFrom != null) this.applyMixingFrom(from, skeleton); + + let mix = 0; + if (entry.mixDuration == 0) // Single frame mix to undo mixingFrom changes. + mix = 1; + else { + mix = entry.mixTime / entry.mixDuration; + if (mix > 1) mix = 1; + } + + let events = mix < from.eventThreshold ? this.events : null; + let attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + let animationLast = from.animationLast, animationTime = from.getAnimationTime(); + let timelineCount = from.animation.timelines.length; + let timelines = from.animation.timelines; + let timelinesFirst = from.timelinesFirst; + let alpha = from.alpha * entry.mixAlpha * (1 - mix); + + let firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + let timelinesRotation = from.timelinesRotation; + + for (let i = 0; i < timelineCount; i++) { + let timeline = timelines[i]; + let setupPose = timelinesFirst[i]; + if (timeline instanceof RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); + else { + if (!setupPose) { + if (!attachments && timeline instanceof AttachmentTimeline) continue; + if (!drawOrder && timeline instanceof DrawOrderTimeline) continue; + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, setupPose, true); + } + } + + this.queueEvents(from, animationTime); + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + + return mix; + } + + applyRotateTimeline (timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, + timelinesRotation: Array, i: number, firstFrame: boolean) { + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, setupPose, false); + return; + } + + let rotateTimeline = timeline as RotateTimeline; + let frames = rotateTimeline.frames; + let bone = skeleton.bones[rotateTimeline.boneIndex]; + if (time < frames[0]) { + if (setupPose) bone.rotation = bone.data.rotation; + return; + } + + let r2 = 0; + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) // Time is after last frame. + r2 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION]; + else { + // Interpolate between the previous frame and the current frame. + let frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + let prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + let frameTime = frames[frame]; + let percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, + 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + + r2 = frames[frame + 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; + } + + // Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. + let r1 = setupPose ? bone.data.rotation : bone.rotation; + let total = 0, diff = r2 - r1; + if (diff == 0) { + if (firstFrame) { + timelinesRotation[i] = 0; + total = 0; + } else + total = timelinesRotation[i]; + } else { + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + let lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; // Angle and direction of mix, including loops. + lastDiff = timelinesRotation[i + 1]; // Difference between bones. + } + let current = diff > 0, dir = lastTotal >= 0; + // Detect cross at 0 (not 180). + if (MathUtils.signum(lastDiff) != MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + // A cross after a 360 rotation is a loop. + if (Math.abs(lastTotal) > 180) lastTotal += 360 * MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; // Store loops as part of lastTotal. + if (dir != current) total += 360 * MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + r1 += total * alpha; + bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + } + + queueEvents (entry: TrackEntry, animationTime: number) { + let animationStart = entry.animationStart, animationEnd = entry.animationEnd; + let duration = animationEnd - animationStart; + let trackLastWrapped = entry.trackLast % duration; + + // Queue events before complete. + let events = this.events; + let i = 0, n = events.length; + for (; i < n; i++) { + let event = events[i]; + if (event.time < trackLastWrapped) break; + if (event.time > animationEnd) continue; // Discard events outside animation start/end. + this.queue.event(entry, event); + } + + // Queue complete if completed a loop iteration or the animation. + if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) + : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { + this.queue.complete(entry); + } + + // Queue events after complete. + for (; i < n; i++) { + let event = events[i]; + if (event.time < animationStart) continue; // Discard events outside animation start/end. + this.queue.event(entry, events[i]); + } + this.events.length = 0; } clearTracks () { + this.queue.drainDisabled = true; for (let i = 0, n = this.tracks.length; i < n; i++) this.clearTrack(i); this.tracks.length = 0; + this.queue.drainDisabled = false; + this.queue.drain(); } clearTrack (trackIndex: number) { @@ -135,126 +323,234 @@ module spine { let current = this.tracks[trackIndex]; if (current == null) return; - if (current.listener != null && current.listener.end != null) current.listener.end(trackIndex); - for (let i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) this.listeners[i].end(trackIndex); + this.queue.end(current); - this.tracks[trackIndex] = null; + this.disposeNext(current); - this.freeAll(current); - } - - freeAll (entry: TrackEntry) { - while (entry != null) { - let next = entry.next; - entry = next; - } - } - - expandToIndex (index: number) { - if (index < this.tracks.length) return this.tracks[index]; - Utils.setArraySize(this.tracks, index - this.tracks.length + 1, null); - this.tracks.length = index + 1; - return null; - } - - setCurrent (index: number, entry: TrackEntry) { - let current = this.expandToIndex(index); - if (current != null) { - let previous = current.previous; - current.previous = null; - - if (current.listener != null && current.listener.end != null) current.listener.end(index); - for (let i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].end) this.listeners[i].end(index); - - entry.mixDuration = this.data.getMix(current.animation, entry.animation); - if (entry.mixDuration > 0) { - entry.mixTime = 0; - // If a mix is in progress, mix from the closest animation. - if (previous != null && current.mixTime / current.mixDuration < 0.5) { - entry.previous = previous; - previous = current; - } else - entry.previous = current; - } + let entry = current; + while (true) { + let from = entry.mixingFrom; + if (from == null) break; + this.queue.end(from); + entry.mixingFrom = null; + entry = from; } - this.tracks[index] = entry; + this.tracks[current.trackIndex] = null; - if (entry.listener != null && entry.listener.start != null) entry.listener.start(index); - for (let i = 0, n = this.listeners.length; i < n; i++) - if (this.listeners[i].start) this.listeners[i].start(index); + this.queue.drain(); + } + + setCurrent (index: number, current: TrackEntry) { + let from = this.expandToIndex(index); + this.tracks[index] = current; + + if (from != null) { + this.queue.interrupt(from); + current.mixingFrom = from; + current.mixTime = 0; + + // If not completely mixed in, set mixAlpha so mixing out happens from current mix to zero. + if (from.mixingFrom != null) current.mixAlpha *= Math.min(from.mixTime / from.mixDuration, 1); + } + + this.queue.start(current); } - /** @see #setAnimation(int, Animation, boolean) */ setAnimation (trackIndex: number, animationName: string, loop: boolean) { let animation = this.data.skeletonData.findAnimation(animationName); if (animation == null) throw new Error("Animation not found: " + animationName); return this.setAnimationWith(trackIndex, animation, loop); } - /** Set the current animation. Any queued animations are cleared. */ setAnimationWith (trackIndex: number, animation: Animation, loop: boolean) { + if (animation == null) throw new Error("animation cannot be null."); let current = this.expandToIndex(trackIndex); - if (current != null) this.freeAll(current.next); - - let entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (current != null) { + if (current.nextTrackLast == -1) { + // Don't mix from an entry that was never applied. + this.tracks[trackIndex] = null; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = null; + } else + this.disposeNext(current); + } + let entry = this.trackEntry(trackIndex, animation, loop, current); this.setCurrent(trackIndex, entry); + this.queue.drain(); return entry; } - /** {@link #addAnimation(int, Animation, boolean, float)} */ addAnimation (trackIndex: number, animationName: string, loop: boolean, delay: number) { let animation = this.data.skeletonData.findAnimation(animationName); if (animation == null) throw new Error("Animation not found: " + animationName); return this.addAnimationWith(trackIndex, animation, loop, delay); } - /** Adds an animation to be played delay seconds after the current or last queued animation. - * @param delay May be <= 0 to use duration of previous animation minus any mix duration plus the negative delay. */ addAnimationWith (trackIndex: number, animation: Animation, loop: boolean, delay: number) { - let entry = new TrackEntry(); - entry.animation = animation; - entry.loop = loop; - entry.endTime = animation.duration; + if (animation == null) throw new Error("animation cannot be null."); let last = this.expandToIndex(trackIndex); if (last != null) { while (last.next != null) last = last.next; - last.next = entry; - } else - this.tracks[trackIndex] = entry; - - if (delay <= 0) { - if (last != null) - delay += last.endTime - this.data.getMix(last.animation, animation); - else - delay = 0; } - entry.delay = delay; + let entry = this.trackEntry(trackIndex, animation, loop, last); + + if (last == null) { + this.setCurrent(trackIndex, entry); + this.queue.drain(); + } else { + last.next = entry; + if (delay <= 0) { + let 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; } - /** @return May be null. */ + setEmptyAnimation (trackIndex: number, mixDuration: number) { + let entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + addEmptyAnimation (trackIndex: number, mixDuration: number, delay: number) { + if (delay <= 0) delay -= mixDuration; + let entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + setEmptyAnimations (mixDuration: number) { + this.queue.drainDisabled = true; + for (let i = 0, n = this.tracks.length; i < n; i++) { + let current = this.tracks[i]; + if (current != null) this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = false; + this.queue.drain(); + } + + expandToIndex (index: number) { + if (index < this.tracks.length) return this.tracks[index]; + Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null); + this.tracks.length = index + 1; + return null; + } + + trackEntry (trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry) { + let 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 = loop ? Number.MAX_VALUE : entry.animationEnd; + entry.timeScale = 1; + + entry.alpha = 1; + entry.mixAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + return entry; + } + + disposeNext (entry: TrackEntry) { + let next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + } + + _animationsChanged () { + this.animationsChanged = false; + + let propertyIDs = this.propertyIDs; + + // Compute timelinesFirst from lowest to highest track entries. + let i = 0, n = this.tracks.length; + propertyIDs.clear(); + for (; i < n; i++) { // Find first non-null entry. + let entry = this.tracks[i]; + if (entry == null) continue; + this.setTimelinesFirst(entry); + i++; + break; + } + for (; i < n; i++) { // Rest of entries. + let entry = this.tracks[i]; + if (entry != null) this.checkTimelinesFirst(entry); + } + } + + setTimelinesFirst (entry: TrackEntry) { + if (entry.mixingFrom != null) { + this.setTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + return; + } + let propertyIDs = this.propertyIDs; + let timelines = entry.animation.timelines; + let n = timelines.length; + let usage = Utils.setArraySize(entry.timelinesFirst, n, false); + for (let i = 0; i < n; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + usage[i] = true; + } + } + + checkTimelinesFirst (entry: TrackEntry) { + if (entry.mixingFrom != null) this.checkTimelinesFirst(entry.mixingFrom); + this.checkTimelinesUsage(entry, entry.timelinesFirst); + } + + checkTimelinesUsage (entry: TrackEntry, usageArray: Array) { + let propertyIDs = this.propertyIDs; + let timelines = entry.animation.timelines; + let n = timelines.length; + let usage = Utils.setArraySize(usageArray, n); + for (let i = 0; i < n; i++) + usage[i] = propertyIDs.add(timelines[i].getPropertyId()); + } + getCurrent (trackIndex: number) { if (trackIndex >= this.tracks.length) return null; return this.tracks[trackIndex]; } - /** Adds a listener to receive events for all animations. */ - addListener (listener: AnimationStateListener) { + addListener (listener: AnimationStateListener2) { if (listener == null) throw new Error("listener cannot be null."); this.listeners.push(listener); } /** Removes the listener added with {@link #addListener(AnimationStateListener)}. */ - removeListener (listener: AnimationStateListener) { + removeListener (listener: AnimationStateListener2) { let index = this.listeners.indexOf(listener); if (index >= 0) this.listeners.splice(index, 1); } @@ -262,59 +558,197 @@ module spine { clearListeners () { this.listeners.length = 0; } + + clearListenerNotifications () { + this.queue.clear(); + } } export class TrackEntry { - next: TrackEntry; previous: TrackEntry; animation: Animation; - loop = false; - delay = 0; time = 0; lastTime = -1; endTime = 0; timeScale = 1; - mixTime = 0; mixDuration = 0; - listener: AnimationStateListener; - mix = 1; + 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; mixAlpha: number; + timelinesFirst = new Array(); + timelinesRotation = new Array(); reset () { this.next = null; - this.previous = null; + this.mixingFrom = null; this.animation = null; this.listener = null; - this.timeScale = 1; - this.lastTime = -1; // Trigger events on frame zero. - this.time = 0; + this.timelinesFirst.length = 0; + this.timelinesRotation.length = 0; } - /** Returns true if the current time is greater than the end time, regardless of looping. */ - isComplete () : boolean { - return this.time >= this.endTime; + getAnimationTime () { + if (this.loop) { + let 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); + } + + setAnimationLast(animationLast: number) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + } + + isComplete () { + return this.trackTime >= this.animationEnd - this.animationStart; + } + + resetRotationDirections () { + this.timelinesRotation.length = 0; } } - export abstract class AnimationStateAdapter implements AnimationStateListener { - event (trackIndex: number, event: Event) { + export class EventQueue { + objects: Array = []; + drainDisabled = false; + animState: AnimationState; + + constructor(animState: AnimationState) { + this.animState = animState; } - complete (trackIndex: number, loopCount: number) { + start (entry: TrackEntry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; } - start (trackIndex: number) { + interrupt (entry: TrackEntry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); } - end (trackIndex: number) { + end (entry: TrackEntry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + } + + dispose (entry: TrackEntry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + } + + complete (entry: TrackEntry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + } + + event (entry: TrackEntry, event: Event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + } + + drain () { + if (this.drainDisabled) return; + this.drainDisabled = true; + + let objects = this.objects; + let listeners = this.animState.listeners; + + for (let i = 0; i < objects.length; i += 2) { + let type = objects[i] as EventType; + let entry = objects[i + 1] as TrackEntry; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) entry.listener.start(entry); + for (let 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 (let 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 (let ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) listeners[ii].end(entry); + // Fall through. + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) entry.listener.dispose(entry); + for (let 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 (let ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) listeners[ii].complete(entry); + break; + case EventType.event: + let event = objects[i++ + 2] as Event; + if (entry.listener != null && entry.listener.event) entry.listener.event(entry, event); + for (let ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) listeners[ii].event(entry, event); + break; + } + } + this.clear(); + + this.drainDisabled = false; + } + + clear () { + this.objects.length = 0; } } - export interface AnimationStateListener { - /** Invoked when the current animation triggers an event. */ - event (trackIndex: number, event: Event): void; + export enum EventType { + start, interrupt, end, dispose, complete, event + } - /** Invoked when the current animation has completed. - * @param loopCount The number of times the animation reached the end. */ - complete (trackIndex: number, loopCount: number): void; + export interface AnimationStateListener2 { + /** Invoked when this entry has been set as the current entry. */ + start (entry: TrackEntry): void; - /** Invoked just after the current animation is set. */ - start (trackIndex: number): void; + /** Invoked when another entry has replaced this entry as the current entry. This entry may continue being applied for + * mixing. */ + interrupt (entry: TrackEntry): void; - /** Invoked just before the current animation is replaced. */ - end (trackIndex: number): void; + /** Invoked when this entry is no longer the current entry and will never be applied again. */ + end (entry: TrackEntry): void; + + /** Invoked when this entry will be disposed. This may occur without the entry ever being set as the current entry. + * References to the entry should not be kept after dispose is called, as it may be destroyed or reused. */ + dispose (entry: TrackEntry): void; + + /** Invoked every time this entry's animation completes a loop. */ + complete (entry: TrackEntry): void; + + /** Invoked when this entry's animation triggers an event. */ + event (entry: TrackEntry, event: Event): void; + } + + export abstract class AnimationStateAdapter2 implements AnimationStateListener2 { + start (entry: TrackEntry) { + } + + interrupt (entry: TrackEntry) { + } + + end (entry: TrackEntry) { + } + + dispose (entry: TrackEntry) { + } + + complete (entry: TrackEntry) { + } + + event (entry: TrackEntry, event: Event) { + } } } diff --git a/spine-ts/core/src/AssetManager.ts b/spine-ts/core/src/AssetManager.ts index e6714de55..3e293f6c8 100644 --- a/spine-ts/core/src/AssetManager.ts +++ b/spine-ts/core/src/AssetManager.ts @@ -52,11 +52,11 @@ module spine { request.onreadystatechange = () => { if (request.readyState == XMLHttpRequest.DONE) { if (request.status >= 200 && request.status < 300) { - if (success) success(path, request.responseText); this.assets[path] = request.responseText; + if (success) success(path, request.responseText); } else { - if (error) error(path, `Couldn't load text ${path}: status ${request.status}, ${request.responseText}`); 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++; @@ -73,20 +73,20 @@ module spine { path = this.pathPrefix + path; this.toLoad++; let img = new Image(); - img.src = path; img.crossOrigin = "anonymous"; + img.src = path; img.onload = (ev) => { - if (success) success(path, img); let texture = this.textureLoader(img); this.assets[path] = texture; this.toLoad--; this.loaded++; + if (success) success(path, img); } img.onerror = (ev) => { - if (error) error(path, `Couldn't load image ${path}`); this.errors[path] = `Couldn't load image ${path}`; this.toLoad--; this.loaded++; + if (error) error(path, `Couldn't load image ${path}`); } } diff --git a/spine-ts/core/src/Bone.ts b/spine-ts/core/src/Bone.ts index 9d0c3abec..c5579a9f5 100644 --- a/spine-ts/core/src/Bone.ts +++ b/spine-ts/core/src/Bone.ts @@ -35,11 +35,11 @@ module spine { parent: Bone; children = new Array(); x = 0; y = 0; rotation = 0; scaleX = 0; scaleY = 0; shearX = 0; shearY = 0; - appliedRotation = 0; + ax = 0; ay = 0; arotation = 0; ascaleX = 0; ascaleY = 0; ashearX = 0; ashearY = 0; + appliedValid = false; a = 0; b = 0; worldX = 0; c = 0; d = 0; worldY = 0; - worldSignX = 0; worldSignY = 0; sorted = false; @@ -65,14 +65,22 @@ module spine { /** Computes the world transform using the parent bone and the specified local transform. */ updateWorldTransformWith (x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number) { - this.appliedRotation = rotation; - - let rotationY = rotation + 90 + shearY; - let la = MathUtils.cosDeg(rotation + shearX) * scaleX, lb = MathUtils.cosDeg(rotationY) * scaleY; - let lc = MathUtils.sinDeg(rotation + shearX) * scaleX, ld = MathUtils.sinDeg(rotationY) * scaleY; + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; let parent = this.parent; if (parent == null) { // Root bone. + let rotationY = rotation + 90 + shearY; + let la = MathUtils.cosDeg(rotation + shearX) * scaleX; + let lb = MathUtils.cosDeg(rotationY) * scaleY; + let lc = MathUtils.sinDeg(rotation + shearX) * scaleX; + let ld = MathUtils.sinDeg(rotationY) * scaleY; let skeleton = this.skeleton; if (skeleton.flipX) { x = -x; @@ -88,91 +96,97 @@ module spine { this.b = lb; this.c = lc; this.d = ld; - this.worldX = x; - this.worldY = y; - this.worldSignX = MathUtils.signum(scaleX); - this.worldSignY = MathUtils.signum(scaleY); + this.worldX = x + skeleton.x; + this.worldY = y + skeleton.y; return; } let 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; - this.worldSignX = parent.worldSignX * MathUtils.signum(scaleX); - this.worldSignY = parent.worldSignY * MathUtils.signum(scaleY); - if (this.data.inheritRotation && this.data.inheritScale) { + switch (this.data.transformMode) { + case TransformMode.Normal: { + let rotationY = rotation + 90 + shearY; + let la = MathUtils.cosDeg(rotation + shearX) * scaleX; + let lb = MathUtils.cosDeg(rotationY) * scaleY; + let lc = MathUtils.sinDeg(rotation + shearX) * scaleX; + let ld = 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; - } else { - if (this.data.inheritRotation) { // No scale inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - let cos = MathUtils.cosDeg(parent.appliedRotation), sin = MathUtils.sinDeg(parent.appliedRotation); - let temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritRotation) break; - parent = parent.parent; - } while (parent != null); - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - } else if (this.data.inheritScale) { // No rotation inheritance. - pa = 1; - pb = 0; - pc = 0; - pd = 1; - do { - let cos = MathUtils.cosDeg(parent.appliedRotation), sin = MathUtils.sinDeg(parent.appliedRotation); - let psx = parent.scaleX, psy = parent.scaleY; - let za = cos * psx, zb = sin * psy, zc = sin * psx, zd = cos * psy; - let temp = pa * za + pb * zc; - pb = pb * zd - pa * zb; - pa = temp; - temp = pc * za + pd * zc; - pd = pd * zd - pc * zb; - pc = temp; - - if (psx >= 0) sin = -sin; - temp = pa * cos + pb * sin; - pb = pb * cos - pa * sin; - pa = temp; - temp = pc * cos + pd * sin; - pd = pd * cos - pc * sin; - pc = temp; - - if (!parent.data.inheritScale) break; - parent = parent.parent; - } while (parent != null); - 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 TransformMode.OnlyTranslation: { + let rotationY = rotation + 90 + shearY; + this.a = MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = MathUtils.cosDeg(rotationY) * scaleY; + this.c = MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case TransformMode.NoRotationOrReflection: { + let s = pa * pa + pc * pc; + let 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) * MathUtils.radDeg; } else { - this.a = la; - this.b = lb; - this.c = lc; - this.d = ld; + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg; } - if (this.skeleton.flipX) { - this.a = -this.a; + let rx = rotation + shearX - prx; + let ry = rotation + shearY - prx + 90; + let la = MathUtils.cosDeg(rx) * scaleX; + let lb = MathUtils.cosDeg(ry) * scaleY; + let lc = MathUtils.sinDeg(rx) * scaleX; + let ld = 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 TransformMode.NoScale: + case TransformMode.NoScaleOrReflection: { + let cos = MathUtils.cosDeg(rotation); + let sin = MathUtils.sinDeg(rotation); + let za = pa * cos + pb * sin; + let zc = pc * cos + pd * sin; + let 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); + let r = Math.PI / 2 + Math.atan2(zc, za); + let zb = Math.cos(r) * s; + let zd = Math.sin(r) * s; + let la = MathUtils.cosDeg(shearX) * scaleX; + let lb = MathUtils.cosDeg(90 + shearY) * scaleY; + let lc = MathUtils.sinDeg(shearX) * scaleX; + let ld = 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 != TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : this.skeleton.flipX != this.skeleton.flipY) { this.b = -this.b; - } - if (this.skeleton.flipY) { - this.c = -this.c; 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; } } @@ -196,23 +210,23 @@ module spine { } getWorldScaleX () { - return Math.sqrt(this.a * this.a + this.b * this.b) * this.worldSignX; + return Math.sqrt(this.a * this.a + this.c * this.c); } getWorldScaleY () { - return Math.sqrt(this.c * this.c + this.d * this.d) * this.worldSignY; + return Math.sqrt(this.b * this.b + this.d * this.d); } worldToLocalRotationX () { let parent = this.parent; - if (parent == null) return this.rotation; + if (parent == null) return this.arotation; let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, a = this.a, c = this.c; return Math.atan2(pa * c - pc * a, pd * a - pb * c) * MathUtils.radDeg; } worldToLocalRotationY () { let parent = this.parent; - if (parent == null) return this.rotation; + if (parent == null) return this.arotation; let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d, b = this.b, d = this.d; return Math.atan2(pa * d - pc * b, pd * b - pb * d) * MathUtils.radDeg; } @@ -224,31 +238,31 @@ module spine { this.b = cos * b - sin * d; this.c = sin * a + cos * c; this.d = sin * b + cos * d; + this.appliedValid = false; } - /** Computes the local transform from the world transform. This can be useful to perform processing on the local transform - * after the world transform has been modified directly (eg, by a constraint). - *

- * Some redundant information is lost by the world transform, such as -1,-1 scale versus 180 rotation. The computed local - * transform values may differ from the original values but are functionally the same. */ - updateLocalTransform () { + /** Computes the individual applied transform values from the world transform. This can be useful to perform processing using + * the applied transform after the world transform has been modified directly (eg, by a constraint). + *

+ * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. */ + updateAppliedTransform () { + this.appliedValid = true; let parent = this.parent; if (parent == null) { - this.x = this.worldX; - this.y = this.worldY; - this.rotation = Math.atan2(this.c, this.a) * MathUtils.radDeg; - this.scaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.scaleY = Math.sqrt(this.b * this.b + this.d * this.d); - let det = this.a * this.d - this.b * this.c; - this.shearX = 0; - this.shearY = Math.atan2(this.a * this.b + this.c * this.d, det) * MathUtils.radDeg; + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * 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) * MathUtils.radDeg; return; } let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; let pid = 1 / (pa * pd - pb * pc); let dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.x = (dx * pd * pid - dy * pb * pid); - this.y = (dy * pa * pid - dx * pc * pid); + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); let ia = pid * pd; let id = pid * pa; let ib = pid * pb; @@ -257,20 +271,19 @@ module spine { let rb = ia * this.b - ib * this.d; let rc = id * this.c - ic * this.a; let rd = id * this.d - ic * this.b; - this.shearX = 0; - this.scaleX = Math.sqrt(ra * ra + rc * rc); - if (this.scaleX > 0.0001) { + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { let det = ra * rd - rb * rc; - this.scaleY = det / this.scaleX; - this.shearY = Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; - this.rotation = Math.atan2(rc, ra) * MathUtils.radDeg; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * MathUtils.radDeg; } else { - this.scaleX = 0; - this.scaleY = Math.sqrt(rb * rb + rd * rd); - this.shearY = 0; - this.rotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; } - this.appliedRotation = this.rotation; } worldToLocal (world: Vector2) { diff --git a/spine-ts/core/src/BoneData.ts b/spine-ts/core/src/BoneData.ts index 921337687..f569401fa 100644 --- a/spine-ts/core/src/BoneData.ts +++ b/spine-ts/core/src/BoneData.ts @@ -35,7 +35,7 @@ module spine { parent: BoneData; length: number; x = 0; y = 0; rotation = 0; scaleX = 1; scaleY = 1; shearX = 0; shearY = 0; - inheritRotation = true; inheritScale = true; + transformMode = TransformMode.Normal; constructor (index: number, name: string, parent: BoneData) { if (index < 0) throw new Error("index must be >= 0."); @@ -45,4 +45,8 @@ module spine { this.parent = parent; } } + + export enum TransformMode { + Normal, OnlyTranslation, NoRotationOrReflection, NoScale, NoScaleOrReflection + } } diff --git a/spine-ts/core/src/Constraint.ts b/spine-ts/core/src/Constraint.ts new file mode 100644 index 000000000..4327b7c29 --- /dev/null +++ b/spine-ts/core/src/Constraint.ts @@ -0,0 +1,35 @@ +/****************************************************************************** + * 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. + *****************************************************************************/ + +module spine { + export interface Constraint extends Updatable { + getOrder(): number; + } +} diff --git a/spine-ts/core/src/IkConstraint.ts b/spine-ts/core/src/IkConstraint.ts index 3d35c58b6..4c2f5edb0 100644 --- a/spine-ts/core/src/IkConstraint.ts +++ b/spine-ts/core/src/IkConstraint.ts @@ -29,14 +29,12 @@ *****************************************************************************/ module spine { - export class IkConstraint implements Updatable { + export class IkConstraint implements Constraint { data: IkConstraintData; bones: Array; target: Bone; mix = 1; - bendDirection = 0; - - level = 0; + bendDirection = 0; constructor (data: IkConstraintData, skeleton: Skeleton) { if (data == null) throw new Error("data cannot be null."); @@ -51,6 +49,10 @@ module spine { this.target = skeleton.findBone(data.target.name); } + getOrder () { + return this.data.order; + } + apply () { this.update(); } @@ -71,17 +73,18 @@ module spine { /** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world * coordinate system. */ apply1 (bone: Bone, targetX: number, targetY: number, alpha: number) { - let pp = bone.parent; - let id = 1 / (pp.a * pp.d - pp.b * pp.c); - let x = targetX - pp.worldX, y = targetY - pp.worldY; - let tx = (x * pp.d - y * pp.b) * id - bone.x, ty = (y * pp.a - x * pp.c) * id - bone.y; - let rotationIK = Math.atan2(ty, tx) * MathUtils.radDeg - bone.shearX - bone.rotation; - if (bone.scaleX < 0) rotationIK += 180; + if (!bone.appliedValid) bone.updateAppliedTransform(); + let p = bone.parent; + let id = 1 / (p.a * p.d - p.b * p.c); + let x = targetX - p.worldX, y = targetY - p.worldY; + let tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; + let rotationIK = Math.atan2(ty, tx) * 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.x, bone.y, bone.rotation + rotationIK * alpha, bone.scaleX, bone.scaleY, bone.shearX, - bone.shearY); + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, + bone.ashearY); } /** Adjusts the parent and child bone rotations so the tip of the child is as close to the target position as possible. The @@ -92,7 +95,9 @@ module spine { child.updateWorldTransform(); return; } - let px = parent.x, py = parent.y, psx = parent.scaleX, psy = parent.scaleY, csx = child.scaleX; + if (!parent.appliedValid) parent.updateAppliedTransform(); + if (!child.appliedValid) child.updateAppliedTransform(); + let px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX; let os1 = 0, os2 = 0, s2 = 0; if (psx < 0) { psx = -psx; @@ -111,14 +116,14 @@ module spine { os2 = 180; } else os2 = 0; - let cx = child.x, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + let cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; let u = Math.abs(psx - psy) <= 0.0001; if (!u) { cy = 0; cwx = a * cx + parent.worldX; cwy = c * cx + parent.worldY; } else { - cy = child.y; + cy = child.ay; cwx = a * cx + b * cy + parent.worldX; cwy = c * cx + d * cy + parent.worldY; } @@ -205,18 +210,18 @@ module spine { } } let os = Math.atan2(cy, cx) * s2; - let rotation = parent.rotation; + let rotation = parent.arotation; a1 = (a1 - os) * MathUtils.radDeg + os1 - rotation; if (a1 > 180) a1 -= 360; else if (a1 < -180) a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.scaleX, parent.scaleY, 0, 0); - rotation = child.rotation; - a2 = ((a2 + os) * MathUtils.radDeg - child.shearX) * s2 + os2 - rotation; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * 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.scaleX, child.scaleY, child.shearX, child.shearY); + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); } } } diff --git a/spine-ts/core/src/IkConstraintData.ts b/spine-ts/core/src/IkConstraintData.ts index 098ef536e..96ce93e14 100644 --- a/spine-ts/core/src/IkConstraintData.ts +++ b/spine-ts/core/src/IkConstraintData.ts @@ -31,6 +31,7 @@ module spine { export class IkConstraintData { name: string; + order = 0; bones = new Array(); target: BoneData; bendDirection = 1; diff --git a/spine-ts/core/src/PathConstraint.ts b/spine-ts/core/src/PathConstraint.ts index 3a9cf8006..a65950ca4 100644 --- a/spine-ts/core/src/PathConstraint.ts +++ b/spine-ts/core/src/PathConstraint.ts @@ -29,7 +29,7 @@ *****************************************************************************/ module spine { - export class PathConstraint implements Updatable { + export class PathConstraint implements Constraint { static NONE = -1; static BEFORE = -2; static AFTER = -3; data: PathConstraintData; @@ -92,14 +92,19 @@ module spine { let positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == PositionMode.Percent, spacingMode == SpacingMode.Percent); - let skeleton = this.target.bone.skeleton; - let skeletonX = skeleton.x, skeletonY = skeleton.y; let boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - let tip = rotateMode == RotateMode.Chain && offsetRotation == 0; + let tip = false; + if (offsetRotation == 0) + tip = rotateMode == RotateMode.Chain; + else { + tip = false; + let p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? MathUtils.degRad : -MathUtils.degRad; + } for (let i = 0, p = 3; i < boneCount; i++, p += 3) { let bone = bones[i]; - bone.worldX += (boneX - skeletonX - bone.worldX) * translateMix; - bone.worldY += (boneY - skeletonY - bone.worldY) * translateMix; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; let x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; if (scale) { let length = lengths[i]; @@ -119,13 +124,15 @@ module spine { r = positions[p + 2]; else r = Math.atan2(dy, dx); - r -= Math.atan2(c, a) - offsetRotation * MathUtils.degRad; + r -= Math.atan2(c, a); if (tip) { cos = Math.cos(r); sin = Math.sin(r); let length = bone.data.length; boneX += (length * (cos * a - sin * c) - dx) * rotateMix; boneY += (length * (sin * a + cos * c) - dy) * rotateMix; + } else { + r += offsetRotation; } if (r > MathUtils.PI) r -= MathUtils.PI2; @@ -139,6 +146,7 @@ module spine { bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; } + bone.appliedValid = false; } } @@ -375,7 +383,7 @@ module spine { 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) { - if (p == 0) p = 0.0001; + if (p == 0 || isNaN(p)) p = 0.0001; let tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; let ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; let x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; @@ -383,5 +391,9 @@ module spine { 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)); } + + getOrder () { + return this.data.order; + } } } diff --git a/spine-ts/core/src/PathConstraintData.ts b/spine-ts/core/src/PathConstraintData.ts index 8a4112805..45f1aa1a8 100644 --- a/spine-ts/core/src/PathConstraintData.ts +++ b/spine-ts/core/src/PathConstraintData.ts @@ -31,6 +31,7 @@ module spine { export class PathConstraintData { name: string; + order = 0; bones = new Array(); target: SlotData; positionMode: PositionMode; diff --git a/spine-ts/core/src/Skeleton.ts b/spine-ts/core/src/Skeleton.ts index cddde2192..78987b497 100644 --- a/spine-ts/core/src/Skeleton.ts +++ b/spine-ts/core/src/Skeleton.ts @@ -34,10 +34,11 @@ module spine { bones: Array; slots: Array; drawOrder: Array; - ikConstraints: Array; ikConstraintsSorted: Array; + ikConstraints: Array; transformConstraints: Array; pathConstraints: Array; _updateCache = new Array(); + updateCacheReset = new Array(); skin: Skin; color: Color; time = 0; @@ -73,7 +74,6 @@ module spine { } this.ikConstraints = new Array(); - this.ikConstraintsSorted = new Array(); for (let i = 0; i < data.ikConstraints.length; i++) { let ikConstraintData = data.ikConstraints[i]; this.ikConstraints.push(new IkConstraint(ikConstraintData, this)); @@ -104,95 +104,102 @@ module spine { bones[i].sorted = false; // IK first, lowest hierarchy depth first. - let ikConstraints = this.ikConstraintsSorted; - ikConstraints.length = 0; - for (let i = 0; i < this.ikConstraints.length; i++) - ikConstraints.push(this.ikConstraints[i]); - let ikCount = ikConstraints.length; - for (let i = 0, level = 0, n = ikCount; i < n; i++) { - let ik = ikConstraints[i]; - let bone = ik.bones[0].parent; - for (level = 0; bone != null; level++) - bone = bone.parent; - ik.level = level; - } - for (let i = 1, ii = 0; i < ikCount; i++) { - let ik = ikConstraints[i]; - let level = ik.level; - for (ii = i - 1; ii >= 0; ii--) { - let other = ikConstraints[ii]; - if (other.level < level) break; - ikConstraints[ii + 1] = other; - } - ikConstraints[ii + 1] = ik; - } - for (let i = 0, n = ikConstraints.length; i < n; i++) { - let constraint = ikConstraints[i]; - let target = constraint.target; - this.sortBone(target); - - let constrained = constraint.bones; - let parent = constrained[0]; - this.sortBone(parent); - - updateCache.push(constraint); - - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - } - - let pathConstraints = this.pathConstraints; - for (let i = 0, n = pathConstraints.length; i < n; i++) { - let constraint = pathConstraints[i]; - - let slot = constraint.target; - let slotIndex = slot.data.index; - let 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 (let ii = 0, nn = this.data.skins.length; ii < nn; ii++) - this.sortPathConstraintAttachment(this.data.skins[ii], slotIndex, slotBone); - - let attachment = slot.getAttachment(); - if (attachment instanceof PathAttachment) this.sortPathConstraintAttachmentWith(attachment, slotBone); - - let constrained = constraint.bones; - let boneCount = constrained.length; - for (let ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - - updateCache.push(constraint); - - for (let ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (let ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - } - + let ikConstraints = this.ikConstraints; let transformConstraints = this.transformConstraints; - for (let i = 0, n = transformConstraints.length; i < n; i++) { - let constraint = transformConstraints[i]; + let pathConstraints = this.pathConstraints; + let ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + let constraintCount = ikCount + transformCount + pathCount; - this.sortBone(constraint.target); - - let constrained = constraint.bones; - let boneCount = constrained.length; - for (let ii = 0; ii < boneCount; ii++) - this.sortBone(constrained[ii]); - - updateCache.push(constraint); - - for (let ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (let ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; + outer: + for (let i = 0; i < constraintCount; i++) { + for (let ii = 0; ii < ikCount; ii++) { + let constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (let ii = 0; ii < transformCount; ii++) { + let constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (let ii = 0; ii < pathCount; ii++) { + let constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } } for (let i = 0, n = bones.length; i < n; i++) this.sortBone(bones[i]); } + sortIkConstraint (constraint: IkConstraint) { + let target = constraint.target; + this.sortBone(target); + + let constrained = constraint.bones; + let parent = constrained[0]; + this.sortBone(parent); + + if (constrained.length > 1) { + let 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; + } + + sortPathConstraint (constraint: PathConstraint) { + let slot = constraint.target; + let slotIndex = slot.data.index; + let 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 (let ii = 0, nn = this.data.skins.length; ii < nn; ii++) + this.sortPathConstraintAttachment(this.data.skins[ii], slotIndex, slotBone); + + let attachment = slot.getAttachment(); + if (attachment instanceof PathAttachment) this.sortPathConstraintAttachmentWith(attachment, slotBone); + + let constrained = constraint.bones; + let boneCount = constrained.length; + for (let ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + + this._updateCache.push(constraint); + + for (let ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (let ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + } + + sortTransformConstraint (constraint: TransformConstraint) { + this.sortBone(constraint.target); + + let constrained = constraint.bones; + let boneCount = constrained.length; + for (let ii = 0; ii < boneCount; ii++) + this.sortBone(constrained[ii]); + + this._updateCache.push(constraint); + + for (let ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (let ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + } + sortPathConstraintAttachment (skin: Skin, slotIndex: number, slotBone: Bone) { let attachments = skin.attachments[slotIndex]; if (!attachments) return; @@ -210,7 +217,7 @@ module spine { let bones = this.bones; let i = 0; while (i < pathBones.length) { - let boneCount = pathBones[i++]; + let boneCount = pathBones[i++]; for (let n = i + boneCount; i < n; i++) { let boneIndex = pathBones[i]; this.sortBone(bones[boneIndex]); @@ -237,6 +244,18 @@ module spine { /** Updates the world transform for each bone and applies constraints. */ updateWorldTransform () { + let updateCacheReset = this.updateCacheReset; + for (let i = 0, n = updateCacheReset.length; i < n; i++) { + let bone = updateCacheReset[i] as Bone; + 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; + } let updateCache = this._updateCache; for (let i = 0, n = updateCache.length; i < n; i++) updateCache[i].update(); diff --git a/spine-ts/core/src/SkeletonBounds.ts b/spine-ts/core/src/SkeletonBounds.ts index 3e2340be8..4e27bfdfd 100644 --- a/spine-ts/core/src/SkeletonBounds.ts +++ b/spine-ts/core/src/SkeletonBounds.ts @@ -65,7 +65,14 @@ module spine { } } - if (updateAabb) this.aabbCompute(); + 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; + } } aabbCompute () { diff --git a/spine-ts/core/src/SkeletonData.ts b/spine-ts/core/src/SkeletonData.ts index bc32a122d..474f4f2f9 100644 --- a/spine-ts/core/src/SkeletonData.ts +++ b/spine-ts/core/src/SkeletonData.ts @@ -41,7 +41,11 @@ module spine { transformConstraints = new Array(); pathConstraints = new Array(); width: number; height: number; - version: string; hash: string; imagesPath: string; + version: string; hash: string; + + // Nonessential + fps = 0; + imagesPath: string; findBone (boneName: string) { if (boneName == null) throw new Error("boneName cannot be null."); diff --git a/spine-ts/core/src/SkeletonJson.ts b/spine-ts/core/src/SkeletonJson.ts index e57f162a5..03718824a 100644 --- a/spine-ts/core/src/SkeletonJson.ts +++ b/spine-ts/core/src/SkeletonJson.ts @@ -38,7 +38,7 @@ module spine { this.attachmentLoader = attachmentLoader; } - readSkeletonData (json: string | any ): SkeletonData { + readSkeletonData (json: string | any): SkeletonData { let scale = this.scale; let skeletonData = new SkeletonData(); let root = typeof(json) === "string" ? JSON.parse(json) : json; @@ -50,6 +50,7 @@ module spine { skeletonData.version = skeletonMap.spine; skeletonData.width = skeletonMap.width; skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; skeletonData.imagesPath = skeletonMap.images; } @@ -73,8 +74,7 @@ module spine { data.scaleY = this.getValue(boneMap, "scaleY", 1); data.shearX = this.getValue(boneMap, "shearX", 0); data.shearY = this.getValue(boneMap, "shearY", 0); - data.inheritRotation = this.getValue(boneMap, "inheritRotation", true); - data.inheritScale = this.getValue(boneMap, "inheritScale", true); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); skeletonData.bones.push(data); } @@ -104,6 +104,7 @@ module spine { for (let i = 0; i < root.ik.length; i++) { let constraintMap = root.ik[i]; let data = new IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); for (let j = 0; j < constraintMap.bones.length; j++) { let boneName = constraintMap.bones[j]; @@ -128,6 +129,7 @@ module spine { for (let i = 0; i < root.transform.length; i++) { let constraintMap = root.transform[i]; let data = new TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); for (let j = 0; j < constraintMap.bones.length; j++) { let boneName = constraintMap.bones[j]; @@ -161,6 +163,7 @@ module spine { for (let i = 0; i < root.path.length; i++) { let constraintMap = root.path[i]; let data = new PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); for (let j = 0; j < constraintMap.bones.length; j++) { let boneName = constraintMap.bones[j]; @@ -226,7 +229,7 @@ module spine { let data = new EventData(eventName); data.intValue = this.getValue(eventMap, "int", 0); data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", null); + data.stringValue = this.getValue(eventMap, "string", ""); skeletonData.events.push(data); } } @@ -702,6 +705,16 @@ module spine { if (str == "chainscale") return RotateMode.ChainScale; throw new Error(`Unknown rotate mode: ${str}`); } + + static transformModeFromString(str: string) { + str = str.toLowerCase(); + if (str == "normal") return TransformMode.Normal; + if (str == "onlytranslation") return TransformMode.OnlyTranslation; + if (str == "norotationorreflection") return TransformMode.NoRotationOrReflection; + if (str == "noscale") return TransformMode.NoScale; + if (str == "noscaleorreflection") return TransformMode.NoScaleOrReflection; + throw new Error(`Unknown transform mode: ${str}`); + } } class LinkedMesh { diff --git a/spine-ts/core/src/TransformConstraint.ts b/spine-ts/core/src/TransformConstraint.ts index 6069ad3fa..6ac265c2d 100644 --- a/spine-ts/core/src/TransformConstraint.ts +++ b/spine-ts/core/src/TransformConstraint.ts @@ -29,7 +29,7 @@ *****************************************************************************/ module spine { - export class TransformConstraint implements Updatable { + export class TransformConstraint implements Constraint { data: TransformConstraintData; bones: Array; target: Bone; @@ -58,13 +58,17 @@ module spine { let rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; let target = this.target; let ta = target.a, tb = target.b, tc = target.c, td = target.d; + let degRadReflect = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + let offsetRotation = this.data.offsetRotation * degRadReflect; + let offsetShearY = this.data.offsetShearY * degRadReflect; let bones = this.bones; for (let i = 0, n = bones.length; i < n; i++) { let bone = bones[i]; + let modified = false; - if (rotateMix > 0) { + if (rotateMix != 0) { let a = bone.a, b = bone.b, c = bone.c, d = bone.d; - let r = Math.atan2(tc, ta) - Math.atan2(c, a) + this.data.offsetRotation * MathUtils.degRad; + let r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; if (r > MathUtils.PI) r -= MathUtils.PI2; else if (r < -MathUtils.PI) @@ -75,26 +79,29 @@ module spine { bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; + modified = true; } - if (translateMix > 0) { + if (translateMix != 0) { let 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) { - let bs = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + let s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); let ts = Math.sqrt(ta * ta + tc * tc); - let s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleX) * scaleMix) / bs : 0; + if (s > 0.00001) s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; bone.a *= s; bone.c *= s; - bs = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); ts = Math.sqrt(tb * tb + td * td); - s = bs > 0.00001 ? (bs + (ts - bs + this.data.offsetScaleY) * scaleMix) / bs : 0; + if (s > 0.00001) s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; bone.b *= s; bone.d *= s; + modified = true; } if (shearMix > 0) { @@ -105,12 +112,19 @@ module spine { r -= MathUtils.PI2; else if (r < -MathUtils.PI) r += MathUtils.PI2; - r = by + (r + this.data.offsetShearY * MathUtils.degRad) * shearMix; + r = by + (r + offsetShearY) * shearMix; let 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; } } + + getOrder () { + return this.data.order; + } } } diff --git a/spine-ts/core/src/TransformConstraintData.ts b/spine-ts/core/src/TransformConstraintData.ts index a74d71f81..037cf7763 100644 --- a/spine-ts/core/src/TransformConstraintData.ts +++ b/spine-ts/core/src/TransformConstraintData.ts @@ -31,6 +31,7 @@ module spine { export class TransformConstraintData { name: string; + order = 0; bones = new Array(); target: BoneData; rotateMix = 0; translateMix = 0; scaleMix = 0; shearMix = 0; diff --git a/spine-ts/core/src/Utils.ts b/spine-ts/core/src/Utils.ts index b5c3e4dd1..265646ec9 100644 --- a/spine-ts/core/src/Utils.ts +++ b/spine-ts/core/src/Utils.ts @@ -33,6 +33,28 @@ module spine { [key: string]: T; } + export class IntSet { + array = new Array(); + + add (value: number): boolean { + let contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + } + + contains (value: number) { + return this.array[value | 0] != undefined; + } + + remove (value: number) { + this.array[value | 0] = undefined; + } + + clear () { + this.array.length = 0; + } + } + export interface Disposable { dispose (): void; } @@ -121,7 +143,7 @@ module spine { } static signum (value: number): number { - return value >= 0 ? 1 : -1; + return value > 0 ? 1 : value < 0 ? -1 : 0; } static toInt (x: number) { @@ -153,6 +175,11 @@ module spine { return array; } + static ensureArrayCapacity (array: Array, size: number, value: any = 0): Array { + if (array.length >= size) return array; + return Utils.setArraySize(array, size, value); + } + static newArray (size: number, defaultValue: T): Array { let array = new Array(size); for (let i = 0; i < size; i++) array[i] = defaultValue; @@ -196,11 +223,15 @@ module spine { } free (item: T) { + if ((item as any).reset) (item as any).reset(); this.items.push(item); } freeAll (items: ArrayLike) { - for (let i = 0; i < items.length; i++) this.items[i] = items[i]; + for (let i = 0; i < items.length; i++) { + if ((items[i] as any).reset) (items[i] as any).reset(); + this.items[i] = items[i]; + } } clear () { diff --git a/spine-ts/core/src/attachments/Attachment.ts b/spine-ts/core/src/attachments/Attachment.ts index 941593c8f..1ba8dff99 100644 --- a/spine-ts/core/src/attachments/Attachment.ts +++ b/spine-ts/core/src/attachments/Attachment.ts @@ -59,15 +59,14 @@ module spine { computeWorldVerticesWith (slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number) { count += offset; let skeleton = slot.bone.skeleton; - let x = skeleton.x, y = skeleton.y; let deformArray = slot.attachmentVertices; let vertices = this.vertices; let bones = this.bones; if (bones == null) { if (deformArray.length > 0) vertices = deformArray; let bone = slot.bone; - x += bone.worldX; - y += bone.worldY; + let x = bone.worldX; + let y = bone.worldY; let a = bone.a, b = bone.b, c = bone.c, d = bone.d; for (let v = start, w = offset; w < count; v += 2, w += 2) { let vx = vertices[v], vy = vertices[v + 1]; @@ -85,7 +84,7 @@ module spine { let skeletonBones = skeleton.bones; if (deformArray.length == 0) { for (let w = offset, b = skip * 3; w < count; w += 2) { - let wx = x, wy = y; + let wx = 0, wy = 0; let n = bones[v++]; n += v; for (; v < n; v++, b += 3) { @@ -100,7 +99,7 @@ module spine { } else { let deform = deformArray; for (let w = offset, b = skip * 3, f = skip << 1; w < count; w += 2) { - let wx = x, wy = y; + let wx = 0, wy = 0; let n = bones[v++]; n += v; for (; v < n; v++, b += 3, f += 2) { diff --git a/spine-ts/core/src/attachments/MeshAttachment.ts b/spine-ts/core/src/attachments/MeshAttachment.ts index ab2f07118..099512ec5 100644 --- a/spine-ts/core/src/attachments/MeshAttachment.ts +++ b/spine-ts/core/src/attachments/MeshAttachment.ts @@ -85,8 +85,7 @@ module spine { skeletonColor.g * slotColor.g * meshColor.g * multiplier, skeletonColor.b * slotColor.b * meshColor.b * multiplier, alpha); - - let x = skeleton.x, y = skeleton.y; + let deformArray = slot.attachmentVertices; let vertices = this.vertices, worldVertices = this.worldVertices; let bones = this.bones; @@ -94,8 +93,8 @@ module spine { let verticesLength = vertices.length; if (deformArray.length > 0) vertices = deformArray; let bone = slot.bone; - x += bone.worldX; - y += bone.worldY; + let x = bone.worldX; + let y = bone.worldY; let a = bone.a, b = bone.b, c = bone.c, d = bone.d; for (let v = 0, w = 0; v < verticesLength; v += 2, w += 8) { let vx = vertices[v], vy = vertices[v + 1]; @@ -111,7 +110,7 @@ module spine { let skeletonBones = skeleton.bones; if (deformArray.length == 0) { for (let w = 0, v = 0, b = 0, n = bones.length; v < n; w += 8) { - let wx = x, wy = y; + let wx = 0, wy = 0; let nn = bones[v++] + v; for (; v < nn; v++, b += 3) { let bone = skeletonBones[bones[v]]; @@ -129,7 +128,7 @@ module spine { } else { let deform = deformArray; for (let w = 0, v = 0, b = 0, f = 0, n = bones.length; v < n; w += 8) { - let wx = x, wy = y; + let wx = 0, wy = 0; let nn = bones[v++] + v; for (; v < nn; v++, b += 3, f += 2) { let bone = skeletonBones[bones[v]]; diff --git a/spine-ts/core/src/attachments/RegionAttachment.ts b/spine-ts/core/src/attachments/RegionAttachment.ts index ea66ee7d3..3d992108f 100644 --- a/spine-ts/core/src/attachments/RegionAttachment.ts +++ b/spine-ts/core/src/attachments/RegionAttachment.ts @@ -160,7 +160,7 @@ module spine { let vertices = this.vertices; let offset = this.offset; let bone = slot.bone; - let x = skeleton.x + bone.worldX, y = skeleton.y + bone.worldY; + let x = bone.worldX, y = bone.worldY; let a = bone.a, b = bone.b, c = bone.c, d = bone.d; let offsetX = 0, offsetY = 0; diff --git a/spine-ts/threejs/example/assets/raptor.json b/spine-ts/threejs/example/assets/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-ts/threejs/example/assets/raptor.json +++ b/spine-ts/threejs/example/assets/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-ts/webgl/demos/hoverboard.js b/spine-ts/webgl/demos/hoverboard.js index c47c05524..cef63e9f8 100644 --- a/spine-ts/webgl/demos/hoverboard.js +++ b/spine-ts/webgl/demos/hoverboard.js @@ -5,31 +5,31 @@ var hoverboardDemo = function(loadingComplete, bgColor) { var COLOR_OUTER_SELECTED = new spine.Color(0.0, 0, 0.8, 0.8); var canvas, gl, renderer, input, assetManager; - var skeleton, state, bounds; + var skeleton, state, bounds; var timeKeeper, loadingScreen; - var target = null; + var target = null; var hoverTargets = []; var controlBones = ["hoverboard controller", "hip controller", "board target"]; - var coords = new spine.webgl.Vector3(), temp = new spine.webgl.Vector3(), temp2 = new spine.Vector2(), temp3 = new spine.webgl.Vector3(); + var coords = new spine.webgl.Vector3(), temp = new spine.webgl.Vector3(), temp2 = new spine.Vector2(), temp3 = new spine.webgl.Vector3(); var isPlaying = true; var DEMO_NAME = "HoverboardDemo"; - if (!bgColor) bgColor = new spine.Color(235 / 255, 239 / 255, 244 / 255, 1); + if (!bgColor) bgColor = new spine.Color(235 / 255, 239 / 255, 244 / 255, 1); function init () { canvas = document.getElementById("hoverboard-canvas"); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; - gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); + gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); renderer = new spine.webgl.SceneRenderer(canvas, gl); assetManager = spineDemos.assetManager; - var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; + var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; assetManager.loadTexture(DEMO_NAME, textureLoader, "atlas1.png"); assetManager.loadText(DEMO_NAME, "atlas1.atlas"); - assetManager.loadJson(DEMO_NAME, "demos.json"); + assetManager.loadJson(DEMO_NAME, "demos.json"); input = new spine.webgl.Input(canvas); - timeKeeper = new spine.TimeKeeper(); + timeKeeper = new spine.TimeKeeper(); loadingScreen = new spine.webgl.LoadingScreen(renderer); requestAnimationFrame(load); } @@ -38,7 +38,7 @@ var hoverboardDemo = function(loadingComplete, bgColor) { timeKeeper.update(); if (assetManager.isLoadingComplete(DEMO_NAME)) { var atlas = new spine.TextureAtlas(assetManager.get(DEMO_NAME, "atlas1.atlas"), function(path) { - return assetManager.get(DEMO_NAME, path); + return assetManager.get(DEMO_NAME, path); }); var atlasLoader = new spine.AtlasAttachmentLoader(atlas); var skeletonJson = new spine.SkeletonJson(atlasLoader); @@ -51,7 +51,7 @@ var hoverboardDemo = function(loadingComplete, bgColor) { var offset = new spine.Vector2(); bounds = new spine.Vector2(); skeleton.getBounds(offset, bounds); - for (var i = 0; i < controlBones.length; i++) hoverTargets.push(null); + for (var i = 0; i < controlBones.length; i++) hoverTargets.push(null); renderer.camera.position.x = offset.x + bounds.x / 2; renderer.camera.position.y = offset.y + bounds.y / 2; @@ -69,14 +69,14 @@ var hoverboardDemo = function(loadingComplete, bgColor) { } } - function setupUI() { + function setupUI() { var checkbox = $("#hoverboard-drawbones"); renderer.skeletonDebugRenderer.drawRegionAttachments = false; renderer.skeletonDebugRenderer.drawPaths = false; renderer.skeletonDebugRenderer.drawBones = false; checkbox.change(function() { renderer.skeletonDebugRenderer.drawPaths = this.checked; - renderer.skeletonDebugRenderer.drawBones = this.checked; + renderer.skeletonDebugRenderer.drawBones = this.checked; }); } @@ -84,12 +84,12 @@ var hoverboardDemo = function(loadingComplete, bgColor) { input.addListener({ down: function(x, y) { isPlaying = false; - for (var i = 0; i < controlBones.length; i++) { - var bone = skeleton.findBone(controlBones[i]); - renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height); - if (temp.set(skeleton.x + bone.worldX, skeleton.y + bone.worldY, 0).distance(coords) < 30) { + for (var i = 0; i < controlBones.length; i++) { + var bone = skeleton.findBone(controlBones[i]); + renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height); + if (temp.set(bone.worldX, bone.worldY, 0).distance(coords) < 30) { target = bone; - } + } } }, up: function(x, y) { @@ -99,35 +99,35 @@ var hoverboardDemo = function(loadingComplete, bgColor) { if (target != null) { renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height); if (target.parent !== null) { - target.parent.worldToLocal(temp2.set(coords.x - skeleton.x, coords.y - skeleton.y)); + target.parent.worldToLocal(temp2.set(coords.x, coords.y)); target.x = temp2.x; target.y = temp2.y; } else { - target.x = coords.x - skeleton.x; - target.y = coords.y - skeleton.y; + target.x = coords.x; + target.y = coords.y; } } }, - moved: function (x, y) { - for (var i = 0; i < controlBones.length; i++) { - var bone = skeleton.findBone(controlBones[i]); - renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height); - if (temp.set(skeleton.x + bone.worldX, skeleton.y + bone.worldY, 0).distance(coords) < 30) { + moved: function (x, y) { + for (var i = 0; i < controlBones.length; i++) { + var bone = skeleton.findBone(controlBones[i]); + renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height); + if (temp.set(bone.worldX, bone.worldY, 0).distance(coords) < 30) { hoverTargets[i] = bone; } else { hoverTargets[i] = null; } - } + } } }); } function render () { timeKeeper.update(); - var delta = timeKeeper.delta; - + var delta = timeKeeper.delta; + state.update(delta); - state.apply(skeleton); + state.apply(skeleton); skeleton.updateWorldTransform(); renderer.camera.viewportWidth = bounds.x * 1.2; @@ -135,18 +135,18 @@ var hoverboardDemo = function(loadingComplete, bgColor) { renderer.resize(spine.webgl.ResizeMode.Fit); gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); + gl.clear(gl.COLOR_BUFFER_BIT); - renderer.begin(); + renderer.begin(); renderer.drawSkeleton(skeleton, true); renderer.drawSkeletonDebug(skeleton, false, ["root"]); gl.lineWidth(2); - for (var i = 0; i < controlBones.length; i++) { + for (var i = 0; i < controlBones.length; i++) { var bone = skeleton.findBone(controlBones[i]); var colorInner = hoverTargets[i] !== null ? spineDemos.HOVER_COLOR_INNER : spineDemos.NON_HOVER_COLOR_INNER; var colorOuter = hoverTargets[i] !== null ? spineDemos.HOVER_COLOR_OUTER : spineDemos.NON_HOVER_COLOR_OUTER; - renderer.circle(true, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, colorInner); - renderer.circle(false, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, colorOuter); + renderer.circle(true, bone.worldX, bone.worldY, 20, colorInner); + renderer.circle(false, bone.worldX, bone.worldY, 20, colorOuter); } renderer.end(); gl.lineWidth(1); diff --git a/spine-ts/webgl/demos/skins.js b/spine-ts/webgl/demos/skins.js index faa6d21fc..ee64f03a0 100644 --- a/spine-ts/webgl/demos/skins.js +++ b/spine-ts/webgl/demos/skins.js @@ -1,27 +1,27 @@ -var skinsDemo = function(loadingComplete, bgColor) { +var skinsDemo = function(loadingComplete, bgColor) { var canvas, gl, renderer, input, assetManager; - var skeleton, state, offset, bounds; + var skeleton, state, offset, bounds; var timeKeeper, loadingScreen; var playButton, timeLine, isPlaying = true, playTime = 0; var randomizeSkins, lastSkinChange = Date.now() / 1000, clickAnim = 0; var DEMO_NAME = "SkinsDemo"; - if (!bgColor) bgColor = new spine.Color(235 / 255, 239 / 255, 244 / 255, 1); + if (!bgColor) bgColor = new spine.Color(235 / 255, 239 / 255, 244 / 255, 1); function init () { canvas = document.getElementById("skins-canvas"); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; - gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); + gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); - renderer = new spine.webgl.SceneRenderer(canvas, gl); + renderer = new spine.webgl.SceneRenderer(canvas, gl); assetManager = spineDemos.assetManager; - var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; + var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; assetManager.loadTexture(DEMO_NAME, textureLoader, "heroes.png"); assetManager.loadText(DEMO_NAME, "heroes.atlas"); - assetManager.loadJson(DEMO_NAME, "demos.json"); + assetManager.loadJson(DEMO_NAME, "demos.json"); input = new spine.webgl.Input(canvas); - timeKeeper = new spine.TimeKeeper(); + timeKeeper = new spine.TimeKeeper(); loadingScreen = new spine.webgl.LoadingScreen(renderer); requestAnimationFrame(load); } @@ -30,7 +30,7 @@ var skinsDemo = function(loadingComplete, bgColor) { timeKeeper.update(); if (assetManager.isLoadingComplete(DEMO_NAME)) { var atlas = new spine.TextureAtlas(assetManager.get(DEMO_NAME, "heroes.atlas"), function(path) { - return assetManager.get(DEMO_NAME, path); + return assetManager.get(DEMO_NAME, path); }); var atlasLoader = new spine.AtlasAttachmentLoader(atlas); var skeletonJson = new spine.SkeletonJson(atlasLoader); @@ -40,9 +40,9 @@ var skinsDemo = function(loadingComplete, bgColor) { var stateData = new spine.AnimationStateData(skeleton.data); stateData.defaultMix = 0.2; stateData.setMix("roll", "run", 0); - stateData.setMix("jump", "run2", 0); - state = new spine.AnimationState(stateData); - setupAnimations(state); + stateData.setMix("jump", "run2", 0); + state = new spine.AnimationState(stateData); + setupAnimations(state); state.apply(skeleton); skeleton.updateWorldTransform(); offset = new spine.Vector2(); @@ -100,12 +100,9 @@ var skinsDemo = function(loadingComplete, bgColor) { state.addAnimation(0, "crouchIdle", true, 1.5); state.addAnimation(0, "crouchWalk", true, 2); state.addAnimation(0, "crouchIdle", true, 2.5).listener = { - event: function (trackIndex, event) {}, - complete: function (trackIndex, loopCount) {}, start: function (trackIndex) { setupAnimations(state); - }, - end: function (trackIndex) {} + } }; state.setAnimation(1, "empty", false, 0); @@ -113,7 +110,7 @@ var skinsDemo = function(loadingComplete, bgColor) { } function setupUI() { - var list = $("#skins-skin"); + var list = $("#skins-skin"); for (var skin in skeleton.data.skins) { skin = skeleton.data.skins[skin]; if (skin.name == "default") continue; @@ -144,11 +141,11 @@ var skinsDemo = function(loadingComplete, bgColor) { skeleton.setSlotsToSetupPose(); slot.setAttachment(weapon); } - + function swingSword () { - state.setAnimation(5, (clickAnim++ % 2 == 0) ? "meleeSwing2" : "meleeSwing1", false, 0); + state.setAnimation(5, (clickAnim++ % 2 == 0) ? "meleeSwing2" : "meleeSwing1", false, 0); } - + function randomizeSkin () { var result; var count = 0; @@ -161,7 +158,7 @@ var skinsDemo = function(loadingComplete, bgColor) { setSkin(result); $("#skins-skin option").filter(function() { return ($(this).text() == result.name); - }).prop("selected", true); + }).prop("selected", true); } function randomizeAttachments () { @@ -203,22 +200,22 @@ var skinsDemo = function(loadingComplete, bgColor) { renderer.resize(spine.webgl.ResizeMode.Fit); gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); + gl.clear(gl.COLOR_BUFFER_BIT); state.update(delta); state.apply(skeleton); - skeleton.updateWorldTransform(); + skeleton.updateWorldTransform(); - renderer.begin(); + renderer.begin(); renderer.drawSkeleton(skeleton, true); var texture = assetManager.get(DEMO_NAME, "heroes.png"); var width = bounds.x * 1.25; var scale = width / texture.getImage().width; var height = scale * texture.getImage().height; - renderer.drawTexture(texture, offset.x + bounds.x + 190, offset.y + bounds.y / 2 - height / 2 - 5, width, height); + renderer.drawTexture(texture, offset.x + bounds.x + 190, offset.y + bounds.y / 2 - height / 2 - 5, width, height); renderer.end(); - loadingScreen.draw(true); + loadingScreen.draw(true); } init(); diff --git a/spine-ts/webgl/demos/spritesheets.js b/spine-ts/webgl/demos/spritesheets.js index 7faf49926..c68cfeb12 100644 --- a/spine-ts/webgl/demos/spritesheets.js +++ b/spine-ts/webgl/demos/spritesheets.js @@ -5,7 +5,7 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { var canvas, gl, renderer, input, assetManager; var skeleton, animationState, offset, bounds; var skeletonSeq, walkAnim, walkLastTime = 0, walkLastTimePrecise = 0; - var skeletonAtlas; + var skeletonAtlas; var viewportWidth, viewportHeight; var frames = [], currFrame = 0, frameTime = 0, frameScale = 0, FPS = 30; var timeKeeper, loadingScreen, input; @@ -17,17 +17,17 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { function init () { canvas = document.getElementById("spritesheets-canvas"); - canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; - gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); + canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; + gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false }); renderer = new spine.webgl.SceneRenderer(canvas, gl); assetManager = spineDemos.assetManager; - var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; + var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); }; assetManager.loadTexture(DEMO_NAME, textureLoader, "atlas1.png"); assetManager.loadText(DEMO_NAME, "atlas1.atlas"); - assetManager.loadJson(DEMO_NAME, "demos.json"); + assetManager.loadJson(DEMO_NAME, "demos.json"); timeKeeper = new spine.TimeKeeper(); - input = new spine.webgl.Input(canvas); + input = new spine.webgl.Input(canvas); loadingScreen = new spine.webgl.LoadingScreen(renderer); requestAnimationFrame(load); } @@ -36,8 +36,8 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { timeKeeper.update(); if (assetManager.isLoadingComplete(DEMO_NAME)) { skeletonAtlas = new spine.TextureAtlas(assetManager.get(DEMO_NAME, "atlas1.atlas"), function(path) { - return assetManager.get(DEMO_NAME, path); - }); + return assetManager.get(DEMO_NAME, path); + }); var atlasLoader = new spine.AtlasAttachmentLoader(skeletonAtlas); var skeletonJson = new spine.SkeletonJson(atlasLoader); var skeletonData = skeletonJson.readSkeletonData(assetManager.get(DEMO_NAME, "demos.json").raptor); @@ -55,9 +55,9 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { skeletonSeq = new spine.Skeleton(skeletonData); walkAnim = skeletonSeq.data.findAnimation("walk"); - walkAnim.apply(skeletonSeq, 0, 0, true, null); + walkAnim.apply(skeletonSeq, 0, 0, true, null, 1, true, false); skeletonSeq.x += bounds.x + 150; - + viewportWidth = ((700 + bounds.x) - offset.x); viewportHeight = ((0 + bounds.y) - offset.y); resize(); @@ -71,7 +71,7 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { loadingScreen.draw(); requestAnimationFrame(load); } - } + } function setupUI () { timeSlider = $("#spritesheets-timeslider").data("slider"); @@ -95,7 +95,7 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { setAnimation("jump"); }); } - + function setAnimation (name) { animationState.setAnimation(0, name, false); animationState.addAnimation(0, "walk", true, 0); @@ -103,7 +103,7 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { function resize () { renderer.camera.position.x = offset.x + viewportWidth / 2 - 25; - renderer.camera.position.y = offset.y + viewportHeight / 2 - 160; + renderer.camera.position.y = offset.y + viewportHeight / 2 - 160; renderer.camera.viewportWidth = viewportWidth * 1.2; renderer.camera.viewportHeight = viewportHeight * 1.2; renderer.resize(spine.webgl.ResizeMode.Fit); @@ -120,21 +120,21 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { var oldValue = timeSliderLabel.textContent; var newValue = Math.round(timeSlider.get() * 100) + "%"; if (oldValue !== newValue) timeSliderLabel.textContent = newValue; - } + } var animationDuration = animationState.getCurrent(0).animation.duration; - playTime += delta; + playTime += delta; while (playTime >= animationDuration) { playTime -= animationDuration; } - walkLastTimePrecise += delta; + walkLastTimePrecise += delta; while (walkLastTimePrecise - walkLastTime > 1 / FPS) { var newWalkTime = walkLastTime + 1 / FPS; - walkAnim.apply(skeletonSeq, walkLastTime, newWalkTime, true, null); + walkAnim.apply(skeletonSeq, walkLastTime, newWalkTime, true, null, 1, true, false); walkLastTime = newWalkTime; - } - skeletonSeq.updateWorldTransform(); + } + skeletonSeq.updateWorldTransform(); animationState.update(delta); var current = animationState.getCurrent(0); @@ -143,12 +143,12 @@ var spritesheetsDemo = function(loadingComplete, bgColor) { skeleton.updateWorldTransform(); gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); + gl.clear(gl.COLOR_BUFFER_BIT); renderer.begin(); var frame = frames[currFrame]; renderer.drawSkeleton(skeleton, true); - renderer.drawSkeleton(skeletonSeq, true); + renderer.drawSkeleton(skeletonSeq, true); renderer.end(); loadingScreen.draw(true); diff --git a/spine-ts/webgl/demos/transitions.js b/spine-ts/webgl/demos/transitions.js index 859332b77..c1a025485 100644 --- a/spine-ts/webgl/demos/transitions.js +++ b/spine-ts/webgl/demos/transitions.js @@ -86,12 +86,9 @@ var transitionsDemo = function(loadingComplete, bgColor) { state.addAnimation(0, "run", true, mix); state.addAnimation(0, "jump", true, 0.5); state.addAnimation(0, "run", true, mix).listener = { - event: function (trackIndex, event) {}, - complete: function (trackIndex, loopCount) {}, start: function (trackIndex) { setAnimations(state, mix); - }, - end: function (trackIndex) {} + } }; } diff --git a/spine-ts/webgl/example/assets/goblins-mesh.json b/spine-ts/webgl/example/assets/goblins-mesh.json index 8119a57a0..0281818e5 100644 --- a/spine-ts/webgl/example/assets/goblins-mesh.json +++ b/spine-ts/webgl/example/assets/goblins-mesh.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "3Z6FWT/Kylgd8cbSWBEwAsOcPEM", "spine": "3.4.02", "width": 266.87, "height": 349.55, "images": "./images/" }, +"skeleton": { + "hash": "RVwj3d7R/kLKOn5pep0SkQV51Kc", + "spine": "3.5.03-beta", + "width": 266.87, + "height": 349.55, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, @@ -56,7 +63,7 @@ "type": "mesh", "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54327, 0.22589, 0.38361, 0.2089, 0.21605, 0.20043, 0.13242, 0, 0.11519, 0.4527, 0, 0.58399, 0 ], "triangles": [ 5, 6, 4, 6, 7, 4, 4, 7, 3, 2, 9, 1, 9, 10, 1, 10, 12, 1, 12, 13, 1, 1, 13, 0, 10, 11, 12, 3, 8, 2, 8, 9, 2, 7, 8, 3 ], - "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.58, 0.5116, 20, -0.31, -6.16, 0.48839, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.06, 0.49728, 1, 10, 4.56, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.49, 22.4, 1, 2, 18, 65.48, 6.64, 0.50272, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.66, 0.5116, 20, 0.2, 6.09, 0.48839, 1, 20, 30.96, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.78, -1.29, 1 ], + "vertices": [ 1, 20, 38.54, -10.88, 1, 1, 20, 30.96999, -5.92999, 1, 2, 19, 61.47999, -5.57999, 0.5116, 20, -0.31, -6.15999, 0.48838, 2, 18, 64.73, -5.03, 0.5027, 19, -0.4, -5.05999, 0.49728, 1, 10, 4.55999, 23.90999, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.41999, -141.1, 1, 1, 10, -6.48999, 22.39999, 1, 2, 18, 65.48, 6.63999, 0.5027, 19, 0.52999, 6.59, 0.49728, 2, 19, 62.18, 6.65999, 0.5116, 20, 0.2, 6.09, 0.48838, 1, 20, 30.95999, 6.61, 1, 1, 20, 37.25999, 11.09, 1, 1, 20, 79.75, 1.59, 1, 1, 20, 79.77999, -1.28999, 1 ], "hull": 14, "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], "width": 22, @@ -68,7 +75,7 @@ "type": "mesh", "uvs": [ 0.78091, 0.38453, 1, 0.38405, 1, 0.44881, 0.73953, 0.4687, 0.74641, 0.81344, 0.34022, 1, 0.15434, 1, 0.11303, 0.78858, 0.23007, 0.47367, 0, 0.45047, 0, 0.38621, 0.22367, 0.38573, 0.24384, 0, 1, 0 ], "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], - "vertices": [ 15.49, -12.82, 21.13, -13.57, 20.16, -20.49, 13.15, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.79, -53.6, -0.03, -20.36, -5.6, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.24, 26.93, 27.49 ], + "vertices": [ 15.48999, -12.81999, 21.12999, -13.56999, 20.15999, -20.48999, 13.14999, -21.67, 8.13, -58.56, -5.13, -77.04, -9.92, -76.36, -7.78999, -53.59999, -0.02999, -20.36, -5.59999, -17.04, -4.63, -10.17, 1.12, -10.93, 7.46, 30.23999, 26.93, 27.48999 ], "hull": 14, "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 26, @@ -89,7 +96,7 @@ "type": "mesh", "uvs": [ 0, 0.60494, 0.14172, 0.5145, 0.24218, 0.55229, 0.32667, 0.67806, 0.37969, 0.79352, 0.53505, 0.93014, 0.86056, 1, 0.94071, 0.94169, 0.92098, 0.69923, 0.9888, 0.65497, 0.99003, 0.51643, 0.89632, 0.43561, 0.94487, 0.41916, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80754, 0.16044, 0.66698, 0.01997, 0.4734, 0.01805, 0.29215, 0.19893, 0.25392, 0.31823, 0.09117, 0.324, 0, 0.44331, 0.43271, 0.69153, 0.466, 0.47794, 0.35996, 0.31246, 0.73473, 0.68593, 0.72215, 0.57425, 0.88179, 0.5583, 0.80267, 0.51015 ], "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], - "vertices": [ 14.56, 50.42, 23.12, 35.47, 17.45999, 26.36, 11.57, 16.86, 3.74, 11.71, -5.89, -3.91, -11.83, -37.23, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.82, 25.21, -43.15, 26.12, -47.43, 27.35, -53.16, 34.84, -53.46, 35.96, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.03, 43.31, 19.16, 35.59999, 23.41, 35.89, 40.16999, 28.39, 49.87, 10.25, 5.99, 24.2, 2, 35.55, 12.48, 9.39, -25.1, 16.79999, -24.31, 17.2, -40.65, 20.68, -33.02 ], + "vertices": [ 14.56, 50.41999, 23.12, 35.47, 17.45999, 26.36, 11.56999, 16.86, 3.74, 11.71, -5.88999, -3.91, -11.82999, -37.22999, -8.31, -45.63, 7.75, -44.24, 10.39, -51.33, 19.52, -51.81999, 25.20999, -43.15, 26.12, -47.43, 27.35, -53.15999, 34.84, -53.45999, 35.95999, -47.33, 37.11, -41.08, 43.75, -33.97, 53.58, -19.87, 54.5, 0.02999, 43.31, 19.15999, 35.59999, 23.40999, 35.88999, 40.16999, 28.38999, 49.86999, 10.25, 5.98999, 24.2, 2, 35.54999, 12.47999, 9.39, -25.1, 16.79999, -24.30999, 17.2, -40.65, 20.68, -33.02 ], "hull": 24, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], "width": 103, @@ -102,7 +109,7 @@ "type": "mesh", "uvs": [ 0.68992, 0.29284, 1, 0.46364, 1, 0.74643, 0.84089, 1, 0.66344, 1, 0.33765, 0.64284, 0, 0.44124, 0, 0, 0.34295, 0 ], "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], - "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.49, 14.37, -9.62, -0.75, -10.78, -9.84, 2.77, 1.29, 10.25 ], + "vertices": [ 18.6, 8.81, 32.18999, 10.31, 38.02, 1.62, 38.08, -9.63, 32.31, -13.48999, 14.36999, -9.61999, -0.75, -10.77999, -9.84, 2.76999, 1.28999, 10.25 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], "width": 37, @@ -115,7 +122,7 @@ "type": "mesh", "uvs": [ 0.15733, 0.31873, 0.08195, 0.78502, 0.15884, 0.99366, 0.41633, 0.96804, 0.68822, 0.97636, 1, 0.96388, 0.99385, 0.73501, 0.85294, 0.51862, 0.61479, 0.31056, 0.46991, 0, 0.48032, 0.75604, 0.75994, 0.77706 ], "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], - "vertices": [ 2.28, 13.07, -1.76, -1.64, 3.59, -7.8, 20.25, -6.04, 37.91, -5.27, 58.12, -3.71, 57.31, 3.34, 47.78, 9.51, 31.95, 15.05, 21.99, 24.11, 24.03, 0.75, 42.21, 1.16 ], + "vertices": [ 2.27999, 13.06999, -1.75999, -1.63999, 3.58999, -7.8, 20.25, -6.03999, 37.90999, -5.26999, 58.11999, -3.71, 57.31, 3.33999, 47.77999, 9.51, 31.95, 15.05, 21.98999, 24.11, 24.03, 0.75, 42.20999, 1.15999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], "width": 65, @@ -128,7 +135,7 @@ "type": "mesh", "uvs": [ 0.518, 0.12578, 1, 0.16285, 0.99788, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42792, 0.17601, 0, 0.43567, 0 ], "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], - "vertices": [ -3.11, 15.42, 10.83, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.32, -4.58, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.99 ], + "vertices": [ -3.10999, 15.42, 10.82999, 22.27, 15.5, 14.55, 18.35, -8.96, 9.47999, -14.31999, -4.57999, -14.3, -11.63, -2.63, -14.89, 13.68, -7.75, 17.98999 ], "hull": 9, "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], "width": 36, @@ -139,9 +146,9 @@ "left lower leg": { "name": "goblin/left-lower-leg", "type": "mesh", - "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77308, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], + "uvs": [ 0.95508, 0.20749, 0.81927, 0.65213, 0.94754, 0.77307, 0.67842, 0.97346, 0.46463, 1, 0.26845, 1, 0.04963, 0.90706, 0.2106, 0.60115, 0.07478, 0.40195, 0.18545, 0, 0.28857, 0 ], "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], - "vertices": [ -0.19, 6.82, 30.97, 10.96, 37.97, 17.33, 53.88, 12.6, 57.58, 6.31, 59.34, 0.08, 55.04, -8.63, 32.99, -9.33, 20.79, -17.43, -7.27, -21.56, -8.18999, -18.29 ], + "vertices": [ -0.18999, 6.82, 30.96999, 10.96, 37.97, 17.32999, 53.88, 12.6, 57.58, 6.30999, 59.34, 0.07999, 55.04, -8.63, 32.99, -9.32999, 20.79, -17.43, -7.26999, -21.55999, -8.18999, -18.29 ], "hull": 11, "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], "width": 33, @@ -154,7 +161,7 @@ "type": "mesh", "uvs": [ 0.7377, 0.40692, 1, 0.75237, 1, 1, 0.62046, 1, 0.26184, 0.56601, 0, 0.29783, 0, 0, 0.44115, 0 ], "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], - "vertices": [ 15.18, 5.74, 32.16999, 5.32, 41.79, 0.21, 36.63, -9.5, 14.88, -9.72, 0.9, -10.89, -10.66, -4.73999, -4.66, 6.54 ], + "vertices": [ 15.18, 5.73999, 32.16999, 5.32, 41.79, 0.20999, 36.63, -9.5, 14.88, -9.72, 0.89999, -10.89, -10.65999, -4.73999, -4.65999, 6.53999 ], "hull": 8, "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], "width": 29, @@ -167,7 +174,7 @@ "type": "mesh", "uvs": [ 1, 0.12167, 1, 0.54873, 0.91067, 0.78907, 0.76567, 1, 0.3087, 0.9579, 0, 0.68777, 0, 0.219, 0.51961, 0, 0.87552, 0 ], "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], - "vertices": [ 2.33, 13.06, 33.5, 12.57, 51, 9.34, 66.32, 4.31, 63, -10.71, 43.13, -20.58, 8.91, -20.04, -6.79, -2.64, -6.61, 9.1 ], + "vertices": [ 2.32999, 13.06, 33.5, 12.56999, 51, 9.34, 66.31999, 4.30999, 63, -10.71, 43.13, -20.57999, 8.90999, -20.04, -6.78999, -2.64, -6.61, 9.1 ], "hull": 9, "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], "width": 33, @@ -180,7 +187,7 @@ "type": "mesh", "uvs": [ 0.81967, 0.27365, 0.92101, 0.82048, 0.47134, 1, 0.15679, 0.9354, 0, 0.7556, 0.19268, 0.51833, 0.15468, 0.35706, 0, 0.21989, 0.13568, 0, 0.68878, 0, 0.70145, 0.53872 ], "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], - "vertices": [ 18.62, -11.65, -3.98, -13.85, -10.28, 2.76, -6.91, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.74, 12.45, 22.71, 17.64, 31.4, 12.19, 30.12, -7.67, 8.05, -6.71 ], + "vertices": [ 18.62, -11.64999, -3.98, -13.85, -10.27999, 2.75999, -6.90999, 13.89, 0.8, 19.04999, 10.06, 11.51, 16.73999, 12.44999, 22.70999, 17.63999, 31.39999, 12.18999, 30.12, -7.67, 8.05, -6.71 ], "hull": 10, "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], "width": 36, @@ -193,7 +200,7 @@ "type": "mesh", "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], "triangles": [ 1, 2, 3, 1, 3, 0 ], - "vertices": [ 25.38, -20.73, -36.61, -20.73, -36.61, 22.26, 25.38, 22.26 ], + "vertices": [ 25.37999, -20.72999, -36.61, -20.72999, -36.61, 22.26, 25.37999, 22.26 ], "hull": 4, "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], "width": 62, @@ -206,7 +213,7 @@ "type": "mesh", "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24384, 1, 0, 0.86558, 0.20822, 0.10919, 0.50903, 0, 0.85342, 0 ], "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], - "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.89, 41.81, -5.03, 35.53, -11.13, -2.53, -9.2, -8.5, -2.71, -9.09, 5.17999 ], + "vertices": [ -4.75, 8.89, 33.02999, 11.73999, 40.99, 5.88999, 41.81, -5.03, 35.52999, -11.13, -2.52999, -9.19999, -8.5, -2.71, -9.09, 5.17999 ], "hull": 8, "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], "width": 23, @@ -219,7 +226,7 @@ "type": "mesh", "uvs": [ 0.40851, 0.0047, 0.59087, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97532, 0.89391, 0.90385, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65984, 0, 0.46577, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71257, 0.715, 0.74681 ], "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], - "vertices": [ 17.36, 25.99, 29.13, 15.44, 39.89, 10.8, 48.14, 7.24, 53.84, -2.38, 49.43, -6, 34.84, -6.39, 16.84, -6.87, -2.4, -7.38, -7.58, -3.86, -7.78, 3.7, -7.95, 10.1, -2.57, 22.36, 10.84, 25.97, 22.14, 2.75, 37.31, 2.03 ], + "vertices": [ 17.36, 25.98999, 29.12999, 15.43999, 39.88999, 10.8, 48.13999, 7.23999, 53.84, -2.38, 49.43, -6, 34.84, -6.38999, 16.84, -6.86999, -2.4, -7.38, -7.57999, -3.85999, -7.78, 3.7, -7.94999, 10.1, -2.56999, 22.36, 10.84, 25.96999, 22.13999, 2.75, 37.31, 2.02999 ], "hull": 14, "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], "width": 63, @@ -232,7 +239,7 @@ "type": "mesh", "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89823, 0.82004, 0.8259, 0.74285, 0.84223, 0.49993, 0.96356, 0.34102, 0.66023, 0 ], "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], - "vertices": [ -10.82, -9.45, 5.95, -15.34, 18.87999, -14.9, 24, -7.5, 25.69, 5.16, 25.31, 16.07, 18.61, 17.44, 15.84, 14.74, 6.84, 15.02, 0.81, 19.18, -11.41, 7.83 ], + "vertices": [ -10.81999, -9.44999, 5.94999, -15.34, 18.87999, -14.89999, 24, -7.5, 25.69, 5.15999, 25.30999, 16.06999, 18.61, 17.44, 15.84, 14.73999, 6.84, 15.02, 0.81, 19.18, -11.40999, 7.82999 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], "width": 36, @@ -245,7 +252,7 @@ "type": "mesh", "uvs": [ 0.88538, 0.22262, 0.76167, 0.3594, 0.75088, 0.78308, 0.95326, 0.84981, 1, 0.60302 ], "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], - "vertices": [ -2.82, 15.97, 2.4, 11.71, 18.08, 11.9, 20.27, 19.27, 11.09, 20.62 ], + "vertices": [ -2.81999, 15.97, 2.4, 11.71, 18.07999, 11.89999, 20.27, 19.27, 11.09, 20.62 ], "hull": 5, "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], "width": 36, @@ -258,7 +265,7 @@ "type": "mesh", "uvs": [ 1, 0.27261, 0.81312, 0.52592, 0.79587, 0.71795, 0.95544, 0.80988, 0.85193, 0.95493, 0.47241, 1, 0.14033, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30325, 0.60611, 0 ], "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], - "vertices": [ 6.26, 8.46, 23.32, 8.04, 37.09999, 12.89, 41.45, 20.82, 53.07, 21.46, 61.33, 10.06, 65.76999, -1.03, 58.99, -9.18999, 43.02, -9.81, 16.33, -20, -12.79, -9.26 ], + "vertices": [ 6.26, 8.46, 23.31999, 8.03999, 37.09999, 12.89, 41.45, 20.81999, 53.06999, 21.45999, 61.33, 10.06, 65.76999, -1.02999, 58.99, -9.18999, 43.02, -9.81, 16.32999, -20, -12.78999, -9.26 ], "hull": 11, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], "width": 36, @@ -271,7 +278,7 @@ "type": "mesh", "uvs": [ 0.62008, 0.03708, 0.92131, 0.09048, 1, 0.38319, 0.72049, 0.6937, 0.31656, 1, 0, 1, 0, 0.75106, 0.28233, 0.49988 ], "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], - "vertices": [ -3.17, -11.05, -9, -0.57, -1.01, 10.33, 16.69, 11.17, 37.41, 8.2, 45.45, -1.16, 36.95, -8.46, 21.2, -7.47 ], + "vertices": [ -3.17, -11.05, -9, -0.56999, -1.00999, 10.32999, 16.69, 11.17, 37.40999, 8.19999, 45.45, -1.15999, 36.95, -8.46, 21.2, -7.46999 ], "hull": 8, "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], "width": 39, @@ -284,7 +291,7 @@ "type": "mesh", "uvs": [ 0.27018, 0, 0.11618, 0.18177, 0, 0.70688, 0, 0.89577, 0.26668, 1, 0.48718, 1, 0.67618, 0.83532, 1, 0.5161, 1, 0.25543, 0.74618, 0.0571 ], "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], - "vertices": [ -9.85, -10.37, 2.17, -14.07, 35.49, -13.66, 47.29, -12.11, 52.61, -2.26, 51.63, 5.16, 40.50999, 10.18, 19.12999, 18.46999, 2.85, 16.32, -8.39999, 6.14 ], + "vertices": [ -9.85, -10.36999, 2.17, -14.06999, 35.49, -13.65999, 47.29, -12.10999, 52.61, -2.25999, 51.63, 5.15999, 40.50999, 10.18, 19.12999, 18.46999, 2.84999, 16.31999, -8.39999, 6.13999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], "width": 34, @@ -297,7 +304,7 @@ "type": "mesh", "uvs": [ 0, 0.33287, 0.15945, 0.46488, 0.15761, 0.60314, 0.15502, 0.79806, 0.32807, 0.93478, 0.6875, 1, 0.80731, 1, 1, 0.77763, 1, 0.66147, 1, 0.56703, 0.93207, 0.4771, 0.86944, 0.39416, 0.83837, 0.226, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78734, 0.86249, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38316, 0.77692, 0.73446, 0.66478, 0.51012 ], "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], - "vertices": [ 56.93, 27.95, 43.37, 18.23, 30.16, 19.5, 11.53, 21.28, -2.55, 10.69, -10.89, -13.12, -11.59, -21.23, 8.54, -36.12, 19.65, -37.08, 28.68, -37.86, 37.68, -34, 45.98, -30.44, 56.4, -29.07, 84.78, -20.92, 87.9, 15.15, 81.87999, 25.79, 1.67, -21.01, 10.03, 2.18, 25.23, -18.25, 29.98, 0, 48.54, -8.39, 13.98, -21.36, 35.9, -15.6 ], + "vertices": [ 56.93, 27.95, 43.36999, 18.22999, 30.15999, 19.5, 11.52999, 21.28, -2.54999, 10.68999, -10.89, -13.11999, -11.59, -21.22999, 8.53999, -36.11999, 19.64999, -37.08, 28.68, -37.86, 37.68, -34, 45.97999, -30.44, 56.4, -29.06999, 84.77999, -20.92, 87.9, 15.14999, 81.87999, 25.79, 1.66999, -21.01, 10.02999, 2.18, 25.22999, -18.25, 29.97999, 0, 48.54, -8.39, 13.97999, -21.36, 35.9, -15.6 ], "hull": 16, "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], "width": 68, @@ -310,7 +317,7 @@ "type": "mesh", "uvs": [ 0.36097, 0.44959, 0.66297, 0.60591, 1, 0.19486, 1, 0.57117, 0.75897, 1, 0.38697, 1, 0, 0.26433, 0, 0, 0.12497, 0 ], "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], - "vertices": [ -10.56, 12.87, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.39, -31, 21.41, -23.92, 21.41 ], + "vertices": [ -10.56, 12.86999, 6.53, 9.89999, 25.62, 17.70999, 25.62, 10.56, 11.97, 2.41, -9.09, 2.41, -31, 16.38999, -31, 21.40999, -23.92, 21.40999 ], "hull": 9, "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], "width": 55, @@ -323,7 +330,7 @@ "type": "mesh", "uvs": [ 0, 0.32029, 0.14893, 0.59457, 0.22437, 1, 0.35909, 1, 0.50998, 1, 0.79559, 0.58453, 0.9842, 0.28015, 1, 0.00588, 0.46957, 0.17646, 0, 0.03933, 0.48843, 0.59122, 0.48114, 0.43099 ], "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], - "vertices": [ -13.22, 5.56, -8, -2.47, -5.49, -14.27, -0.64, -14.36, 4.78, -14.45, 15.27, -2.58999, 22.22, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.08, 13.71, 4.21, -2.58999, 4.03, 2.05 ], + "vertices": [ -13.22, 5.55999, -8, -2.47, -5.48999, -14.27, -0.63999, -14.35999, 4.78, -14.44999, 15.27, -2.58999, 22.21999, 6.11, 22.92, 14.05, 3.75, 9.43999, -13.07999, 13.71, 4.21, -2.58999, 4.03, 2.04999 ], "hull": 10, "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], "width": 36, @@ -408,7 +415,7 @@ "slots": { "eyes": { "attachment": [ - { "time": 0.7, "name": "eyes closed" }, + { "time": 0.6999, "name": "eyes closed" }, { "time": 0.8, "name": null } ] } @@ -805,7 +812,7 @@ "curve": [ 0.621, 0, 0.75, 1 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ -10.97826, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183, -1.1755, -0.17182, -1.1755, -0.17183, 0, 0, -2.22324, 2.66465, -4.83295, 2.70084, -5.70553, -0.51941, -3.15962, -1.61501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64741, 0.81612, -11.82285, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.1755, -0.17183 ], "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -840,7 +847,7 @@ { "time": 0.7333, "offset": 8, - "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06773, 10.70101 ] + "vertices": [ -2.97737, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72606, 6.30798, 0, 0, -1.48902, 4.88944, -7.06772, 10.70101 ] }, { "time": 0.8333, @@ -868,7 +875,7 @@ "vertices": [ -1.04945, -3.10476 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 6, "vertices": [ -1.4245, -6.30616 ] }, @@ -896,7 +903,7 @@ { "time": 0.3, "offset": 2, - "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01888 ] + "vertices": [ -8.27184, 6.68821, -9.29764, 10.13797, -8.62231, 14.71339, -4.58629, 18.81939, -2.20304, 17.10709, -0.07794, 9.9046, 2.54451, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94624, 2.38007, -4.59398, 10.01887 ] }, { "time": 0.3666, @@ -912,12 +919,12 @@ { "time": 0.7333, "offset": 4, - "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.98509, -14.08367, -7.15892, -11.63193, -5.6792, -4.83544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06163, -6.93844 ] }, { "time": 0.8, "offset": 4, - "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99255, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] + "vertices": [ 0.65731, -3.42049, -0.43952, -6.27239, -2.99254, -7.04183, -3.57946, -5.81596, -2.83959, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79687, -1.2802, 0, 0, 0, 0, -1.03081, -3.46922 ] }, { "time": 0.8666 } ] @@ -1023,7 +1030,7 @@ "vertices": [ -2.37974, -0.05431, -0.49433, 0.19436, -0.90861, 1.16519, -1.60956, 2.70798, 0.96186, 0.80615 ] }, { - "time": 0.7, + "time": 0.6999, "offset": 2, "vertices": [ -0.91714, -2.76567, -0.62214, -3.63489, -0.8494, -2.26772, -2.56076, 0.5297 ] }, @@ -1058,7 +1065,7 @@ "vertices": [ 1.16999, 0, -0.234, -0.93599, -2.92499, 0.35099, 0, 0, 0, 0, 0.49999, -0.24999, -0.64078, -2.07914, -0.64078, -2.07914 ] }, { - "time": 0.7, + "time": 0.6999, "vertices": [ 1.8627, -0.11514, 4.66326, -0.09099, -1.76428, 0.21171, 0, 0, -0.56832, 0.32832, -1.13833, -1.1511, -2.19996, -3.47068, -1.29718, -3.47068, 0, 0, 0, 0, 1.58785, -0.04642, 2.65941, 0.16714 ] }, { @@ -1067,7 +1074,7 @@ }, { "time": 0.8666, - "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.23981, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] + "vertices": [ 2.01969, -0.0214, 8.98545, 0.4446, -0.20937, 0.08022, 0.45919, 0, -0.35919, 0.47279, -1.84159, -1.4488, -0.79153, 1.2642, 0.53285, 1.2398, 0.45919, 0, 0.11759, -0.09759, 3.2839, -0.09025, 5.13115, 0.19388 ] }, { "time": 1, diff --git a/spine-ts/webgl/example/assets/raptor.json b/spine-ts/webgl/example/assets/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-ts/webgl/example/assets/raptor.json +++ b/spine-ts/webgl/example/assets/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-ts/webgl/example/assets/spineboy.json b/spine-ts/webgl/example/assets/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-ts/webgl/example/assets/spineboy.json +++ b/spine-ts/webgl/example/assets/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-ts/webgl/example/assets/stretchyman.json b/spine-ts/webgl/example/assets/stretchyman.json index 63d89f419..1f852d0f2 100644 --- a/spine-ts/webgl/example/assets/stretchyman.json +++ b/spine-ts/webgl/example/assets/stretchyman.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "blOhTH+VBhIluqnZVQ+1mnv7uxQ", "spine": "3.4.02", "width": 264.48, "height": 570.1, "images": "./images/" }, +"skeleton": { + "hash": "+XkMq22e5sbHEXz5aRmd8uvTvH0", + "spine": "3.5.03-beta", + "width": 264.48, + "height": 570.1, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9 }, @@ -7,13 +14,11 @@ { "name": "spine 2", "parent": "spine 1", "length": 41.41, "rotation": 16.47, "x": 34.66 }, { "name": "spine 3", "parent": "spine 2", "length": 34.44, "rotation": 16.17, "x": 41.41 }, { "name": "spine 4", "parent": "spine 3", "length": 37.53, "rotation": -13.63, "x": 34.44 }, - { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "inheritScale": false }, + { "name": "back arm 1", "parent": "spine 4", "length": 32.43, "rotation": -154.35, "x": 15.99, "y": -4.58, "transform": "noScale" }, { "name": "back arm 2", "parent": "back arm 1", "length": 34.16, "rotation": 3.1, "x": 31.88, "y": 0.02 }, { "name": "back arm 3", "parent": "back arm 2", "length": 31.26, "rotation": 9.59, "x": 34.16 }, { "name": "back arm 4", "parent": "back arm 3", "length": 33.3, "rotation": 14.6, "x": 32.03, "y": 0.81 }, { "name": "back arm 5", "parent": "back arm 4", "length": 37.41, "rotation": 11.3, "x": 33.81, "y": 0.02 }, - { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, - { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back foot 1", "parent": "hip", @@ -21,29 +26,28 @@ "rotation": -6.55, "x": -34, "y": -279.68, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, - { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "inheritScale": false }, - { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "inheritScale": false }, + { "name": "back foot 2", "parent": "back foot 1", "length": 32.28, "rotation": 4.34, "x": 33.23, "transform": "noScale" }, + { "name": "back foot 3", "parent": "back foot 2", "length": 15.87, "rotation": 10.06, "x": 32.28, "transform": "noScale" }, + { "name": "back leg 1", "parent": "hip", "length": 41, "rotation": -83.65, "x": 10.4, "y": 1.04, "color": "abe323ff" }, { "name": "back leg 2", "parent": "back leg 1", "length": 41, "rotation": -4.07, "x": 34.56, "color": "abe323ff" }, { "name": "back leg 3", "parent": "back leg 1", "length": 41, "rotation": -5.24, "x": 81.78, "y": -2.29, "color": "abe323ff" }, { "name": "back leg 4", "parent": "back leg 1", "length": 41, "rotation": -16.6, "x": 121.2, "y": -11.27, "color": "abe323ff" }, { "name": "back leg 5", "parent": "back leg 1", "length": 41, "rotation": -32.35, "x": 160.15, "y": -24.85, "color": "abe323ff" }, { "name": "back leg 6", "parent": "back leg 1", "length": 41, "rotation": -30.76, "x": 197.04, "y": -39.98, "color": "abe323ff" }, { "name": "back leg 7", "parent": "back leg 1", "length": 41, "rotation": -30.63, "x": 233.18, "y": -57.32, "color": "abe323ff" }, + { "name": "back leg 8", "parent": "back leg 1", "length": 41, "rotation": -33.78, "x": 267.28, "y": -77.39, "color": "abe323ff" }, { "name": "back leg IK target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, { "name": "back leg IK 1", "parent": "hip", "length": 140.17, "rotation": -88.1, "x": 9.62, "y": -0.38 }, { "name": "back leg IK 2", "parent": "back leg IK 1", "length": 148.96, "rotation": -21.32, "x": 140.17 }, { "name": "belly", "parent": "spine 1", "x": 35.94, "y": -37.69 }, { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.87 }, - { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "inheritScale": false }, + { "name": "front arm 1", "parent": "spine 4", "length": 38.33, "rotation": 118.58, "x": 27.12, "y": 4.89, "transform": "noScale" }, { "name": "front arm 2", "parent": "front arm 1", "length": 35.66, "rotation": -0.43, "x": 38.33 }, { "name": "front arm 3", "parent": "front arm 2", "length": 32.65, "rotation": 14.45, "x": 35.66, "y": -0.01 }, { "name": "front arm 4", "parent": "front arm 3", "length": 29.18, "rotation": 13.89, "x": 32.65 }, - { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "inheritScale": false }, - { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, - { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, + { "name": "front arm 5", "parent": "front arm 4", "length": 46.32, "rotation": 16.09, "x": 29.18, "transform": "noScale" }, { "name": "front foot 1", "parent": "hip", @@ -51,11 +55,11 @@ "rotation": -10.97, "x": -77.04, "y": -285.03, - "inheritRotation": false, - "inheritScale": false + "transform": "onlyTranslation" }, { "name": "front foot 2", "parent": "front foot 1", "length": 29.11, "rotation": 9.6, "x": 26.29 }, { "name": "front foot 3", "parent": "front foot 2", "length": 23.48, "rotation": 8.91, "x": 29.11 }, + { "name": "front leg 1", "parent": "hip", "length": 37.2, "rotation": -88.96, "x": -23.56, "y": -1.99, "color": "abe323ff" }, { "name": "front leg 2", "parent": "front leg 1", "length": 37.2, "rotation": 3.45, "x": 33.74, "color": "abe323ff" }, { "name": "front leg 3", "parent": "front leg 1", "length": 37.2, "rotation": -6.11, "x": 74.4, "y": -1.07, "color": "abe323ff" }, { @@ -94,12 +98,13 @@ "y": -42.55, "color": "abe323ff" }, + { "name": "front leg 8", "parent": "front leg 1", "length": 37.2, "rotation": -31.8, "x": 248.6, "y": -61.02, "color": "abe323ff" }, { "name": "front leg IK target", "parent": "root", "x": -37.73, "y": 5.03, "color": "ff3f00ff" }, { "name": "front leg IK 1", "parent": "hip", "length": 140.66, "rotation": -89.23, "x": -23.98, "y": 1.88 }, { "name": "front leg IK 2", "parent": "front leg IK 1", "length": 155.95, "rotation": -21.49, "x": 140.66, "y": 0.02 }, { "name": "neck 1", "parent": "spine 4", "length": 13.45, "rotation": -30.66, "x": 38.96, "y": -0.83 }, { "name": "neck 2", "parent": "neck 1", "length": 14.13, "rotation": -11.41, "x": 13.45 }, - { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "inheritScale": false } + { "name": "head", "parent": "neck 2", "length": 89.05, "rotation": 6.98, "x": 15.81, "y": 0.22, "transform": "noScale" } ], "slots": [ { "name": "back arm", "bone": "root", "attachment": "back arm" }, @@ -113,12 +118,14 @@ "ik": [ { "name": "back leg IK", + "order": 0, "bones": [ "back leg IK 1", "back leg IK 2" ], "target": "back leg IK target", "bendPositive": false }, { "name": "front leg IK", + "order": 1, "bones": [ "front leg IK 1", "front leg IK 2" ], "target": "front leg IK target", "bendPositive": false @@ -127,6 +134,7 @@ "transform": [ { "name": "back foot position", + "order": 4, "bones": [ "back foot 1" ], "target": "back leg 8", "rotation": 108.8, @@ -140,6 +148,7 @@ }, { "name": "front foot position", + "order": 5, "bones": [ "front foot 1" ], "target": "front leg 8", "rotation": 101.55, @@ -155,6 +164,7 @@ "path": [ { "name": "back leg path", + "order": 2, "bones": [ "back leg 1", "back leg 2", "back leg 3", "back leg 4", "back leg 5", "back leg 6", "back leg 7", "back leg 8" ], "target": "back leg path", "spacingMode": "percent", @@ -163,6 +173,7 @@ }, { "name": "front leg path", + "order": 3, "bones": [ "front leg 1", "front leg 2", "front leg 3", "front leg 4", "front leg 5", "front leg 6", "front leg 7", "front leg 8" ], "target": "front leg path", "spacingMode": "percent", @@ -177,7 +188,7 @@ "type": "mesh", "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42508, 0.25885, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60796, 0.21166, 0.69782, 0.16481, 0.78673, 0.14138, 0.84757, 0.02426, 0.88501, 0.05289, 0.9187, 0.37823, 0.98796, 0.60467, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.6359, 0.81762, 0.55262, 0.74181, 0.38084, 0.69875, 0.37823, 0.60796, 0.39905, 0.50875, 0.51358, 0.38521, 0.66193, 0.2888, 0.85453, 0.18397, 0.97686, 0.0754, 0.9144, 0.00989 ], "triangles": [ 11, 9, 12, 9, 8, 12, 12, 8, 18, 13, 12, 14, 12, 18, 17, 18, 8, 7, 14, 12, 17, 11, 10, 9, 14, 16, 15, 14, 17, 16, 7, 19, 18, 7, 6, 19, 6, 5, 19, 19, 5, 20, 5, 4, 20, 20, 4, 21, 4, 3, 21, 21, 3, 22, 3, 2, 22, 22, 2, 23, 2, 1, 23, 23, 1, 24, 1, 0, 24, 0, 25, 24 ], - "vertices": [ 1, 6, -7.68, -11.48, 1, 1, 6, 4.08, -13.62, 1, 1, 6, 23.48, -9.35, 1, 1, 7, 13.44, -9.22999, 1, 2, 7, 35.2, -9.62, 0.50649, 8, -0.57, -9.64999, 0.4935, 1, 8, 26.03, -6.38, 1, 1, 9, 14.15, -6.11, 1, 2, 9, 31.53, -5.56, 0.66492, 10, -3.33, -5.03, 0.33507, 1, 10, 13.08, -11.25, 1, 1, 10, 24.41, -14.88, 1, 1, 10, 30.15, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.07, -2.33, 1, 1, 10, 55.73, 14.14, 1, 1, 10, 41.39, 18.46999, 1, 1, 10, 37.28, 26.87, 1, 1, 10, 24.65, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.33, 6.77, 0.4788, 10, -1.11, 7.11, 0.52119, 1, 9, 13.77, 6.04, 1, 2, 8, 24.98, 6.17, 0.89217, 9, -5.47, 6.96, 0.10782, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.32, 7.44, 0.40157, 1, 7, 11.07, 8.84, 1, 1, 6, 17.89, 11.87, 1, 1, 6, -4.82, 9.45, 1, 1, 6, -13.68, -0.69, 1 ], + "vertices": [ 1, 6, -7.67999, -11.47999, 1, 1, 6, 4.07999, -13.61999, 1, 1, 6, 23.47999, -9.35, 1, 1, 7, 13.43999, -9.22999, 1, 2, 7, 35.2, -9.61999, 0.50648, 8, -0.56999, -9.64999, 0.49349, 1, 8, 26.03, -6.38, 1, 1, 9, 14.14999, -6.11, 1, 2, 9, 31.53, -5.55999, 0.66491, 10, -3.32999, -5.03, 0.33507, 1, 10, 13.07999, -11.25, 1, 1, 10, 24.40999, -14.88, 1, 1, 10, 30.14999, -24.51, 1, 1, 10, 36.93, -23.53, 1, 1, 10, 54.06999, -2.32999, 1, 1, 10, 55.72999, 14.14, 1, 1, 10, 41.38999, 18.46999, 1, 1, 10, 37.27999, 26.87, 1, 1, 10, 24.64999, 21.67, 1, 1, 10, 9.17, 18.1, 1, 2, 9, 31.32999, 6.76999, 0.47879, 10, -1.11, 7.11, 0.52118, 1, 9, 13.77, 6.03999, 1, 2, 8, 24.97999, 6.17, 0.89217, 9, -5.46999, 6.96, 0.10781, 2, 7, 32.59999, 7.28, 0.59842, 8, -0.31999, 7.44, 0.40156, 1, 7, 11.06999, 8.84, 1, 1, 6, 17.88999, 11.86999, 1, 1, 6, -4.82, 9.44999, 1, 1, 6, -13.68, -0.68999, 1 ], "hull": 26, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], "width": 72, @@ -189,7 +200,7 @@ "type": "mesh", "uvs": [ 0.502, 0.01179, 0.36075, 0.06379, 0.40569, 0.15045, 0.44743, 0.23916, 0.47953, 0.3299, 0.51163, 0.42268, 0.52126, 0.50629, 0.48274, 0.58888, 0.41211, 0.66025, 0.3126, 0.74182, 0.21629, 0.81625, 0.1232, 0.89272, 0.00763, 0.97428, 0.29655, 0.98958, 0.47407, 0.99221, 0.64004, 0.99467, 0.80988, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.83329, 0.94681, 0.71066, 0.9386, 0.57122, 0.9203, 0.41532, 0.89985, 0.3447, 0.89272, 0.36885, 0.87177, 0.42816, 0.82032, 0.502, 0.74793, 0.58225, 0.66942, 0.6593, 0.59092, 0.72992, 0.50527, 0.76524, 0.42166, 0.78129, 0.3248, 0.78771, 0.23406, 0.78771, 0.13924, 0.7235, 0.03728, 0.60152, 0.00567, 0.82116, 0.96897, 0.67872, 0.96396, 0.52111, 0.95739, 0.35935, 0.94213, 0.19388, 0.92921, 0.25375, 0.88158, 0.32792, 0.81839 ], "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], - "vertices": [ 1, 11, -19.79, -5.66, 1, 2, 11, -5.61, -22.28, 0.83363, 16, -41.06, -23.3, 0.16636, 2, 11, 22.31, -21.98, 0.65187, 16, -13.17, -21.88, 0.34812, 3, 11, 50.83, -22.1, 0.3172, 16, 15.33, -20.86, 0.43086, 17, -19.67, -21.08, 0.25193, 4, 11, 79.83999, -23.28, 0.10791, 16, 44.37, -20.87999, 0.35417, 17, 9.3, -19.19, 0.31919, 18, -25.21, -20.06, 0.21871, 4, 16, 74.05, -20.98, 0.16485, 17, 38.93, -17.34, 0.32776, 18, 4.09, -15.38, 0.2983, 19, -30.1, -17.15, 0.20907, 3, 17, 65.53, -17.61, 0.17522, 18, 30.6, -13.1, 0.39172, 19, -4.11, -11.42, 0.43304, 3, 18, 57.03, -15.71, 0.19717, 19, 22.42, -10.53, 0.5297, 20, -12.96, -9.8, 0.27311, 3, 19, 46.04, -13.46, 0.40991, 20, 10.83, -10.17, 0.34747, 21, -24.93, -10.51, 0.24261, 3, 19, 73.37999, -18.69, 0.19432, 20, 38.58, -12.41, 0.37176, 21, 2.89, -10.98, 0.4339, 3, 20, 64.06, -14.98, 0.16664, 21, 28.48, -11.94, 0.56755, 12, -7.52, -11.48, 0.26578, 3, 21, 54.57, -12.36, 0.52113, 12, 18.54999, -10.93, 0.36167, 13, -3.08, 24.95, 0.11717, 4, 21, 82.97, -14.35, 0.35144, 12, 47, -11.86, 0.29521, 13, -13.06, -1.67, 0.25118, 14, -46.29, 1.83, 0.10216, 1, 13, 16.36, -4.67, 1, 2, 13, 34.31, -4.36, 0.53486, 14, 0.74, -4.42999, 0.46513, 3, 13, 51.09, -4.08, 0.1461, 14, 17.49, -5.42, 0.54314, 15, -15.5, -2.75, 0.31075, 2, 14, 34.66999, -4.01, 0.40714, 15, 1.64, -4.36, 0.59285, 2, 14, 45.08, -3.15, 0.25726, 15, 12.05, -5.34, 0.74273, 2, 14, 53.98, 5.81, 0.25311, 15, 22.38, 1.93, 0.74688, 2, 14, 37.18999, 9.56, 0.4029, 15, 6.5, 8.56, 0.59709, 3, 13, 57.07, 14.16, 0.1335, 14, 24.83, 12.32, 0.54644, 15, -5.17999, 13.44, 0.32003, 4, 21, 47.09, 33.09999, 0.13131, 13, 42.64, 19.07, 0.26349, 14, 10.81, 18.31, 0.49745, 15, -17.93, 21.78, 0.10773, 4, 21, 46.45, 16.09, 0.21158, 12, 9.35999, 17.2, 0.10679, 13, 26.5, 24.56, 0.4495, 14, -4.85, 25, 0.2321, 3, 21, 46.8, 8.62, 0.4011, 12, 9.99, 9.75, 0.24543, 13, 19.24, 26.37, 0.35346, 3, 21, 39.7, 8.6, 0.5825, 12, 2.9, 9.47, 0.30791, 13, 21.25, 33.16999, 0.10958, 3, 20, 59.16, 5.88, 0.21954, 21, 22.27, 8.58, 0.57946, 12, -14.51, 8.79, 0.20099, 3, 19, 71.83, 0.47, 0.21583, 20, 34.96, 6.47, 0.32262, 21, -1.92, 7.62, 0.46154, 3, 19, 45.8, 3.95, 0.40553, 20, 8.7, 7.12, 0.38601, 21, -28.16, 6.61, 0.20844, 3, 18, 56.78, 2.13, 0.25409, 19, 19.83, 7.12, 0.53004, 20, -17.45, 7.46, 0.21584, 3, 17, 66.18, 3.45, 0.22413, 18, 29.22, 7.92, 0.34135, 19, -8.25, 9.24, 0.43451, 4, 16, 76.6, 4.5, 0.19364, 17, 39.78, 8.26, 0.28886, 18, 2.48, 10.18, 0.33579, 19, -35.05, 7.97, 0.1817, 4, 11, 82.87999, 7.08, 0.11658, 16, 46.17, 9.57, 0.35727, 17, 9.08, 11.32, 0.35745, 18, -28.35, 10.29, 0.16869, 3, 11, 54.45, 12.1, 0.35356, 16, 17.57, 13.46, 0.44494, 17, -19.70999, 13.31, 0.20148, 2, 11, 24.65, 16.69, 0.65438, 16, -12.39, 16.85, 0.34561, 2, 11, -8.38, 15.21, 0.8533, 16, -45.34, 14.04, 0.14669, 1, 11, -20.18, 4.56, 1, 2, 14, 35.88, 2.53, 0.40509, 15, 3.98, 1.86, 0.5949, 3, 13, 54.37, 5.91, 0.1392, 14, 21.51, 4.29, 0.54494, 15, -9.85, 6.11, 0.31584, 2, 13, 37.78, 7.63, 0.44938, 14, 5.1, 7.26, 0.55061, 3, 21, 65.37999, 20.69, 0.11857, 13, 20.59, 11.34, 0.75134, 14, -11.76, 12.27, 0.13007, 3, 21, 65.41, 1.81, 0.39679, 12, 24.3, 0.23, 0.28257, 13, 2.06, 14.97, 0.32062, 3, 21, 48, 0.07, 0.55395, 12, 6.93, -0.32, 0.33293, 13, 3.37, 30.47, 0.11311, 3, 20, 65.94999, -2.96, 0.19447, 21, 24.95, -1.57, 0.57382, 12, -15.99, -0.42, 0.2317 ], + "vertices": [ 1, 14, -19.79, -5.65999, 1, 2, 14, -5.61, -22.28, 0.83363, 15, -41.06, -23.29999, 0.16636, 2, 14, 22.30999, -21.97999, 0.65187, 15, -13.17, -21.87999, 0.34812, 3, 14, 50.83, -22.1, 0.3172, 15, 15.32999, -20.86, 0.43086, 16, -19.67, -21.07999, 0.25192, 4, 14, 79.83999, -23.28, 0.1079, 15, 44.36999, -20.87999, 0.35416, 16, 9.3, -19.19, 0.31918, 17, -25.20999, -20.05999, 0.21871, 4, 15, 74.05, -20.97999, 0.16484, 16, 38.93, -17.34, 0.32776, 17, 4.09, -15.38, 0.29829, 18, -30.1, -17.14999, 0.20906, 3, 16, 65.52999, -17.61, 0.17521, 17, 30.6, -13.1, 0.39171, 18, -4.11, -11.42, 0.43303, 3, 17, 57.02999, -15.71, 0.19717, 18, 22.42, -10.52999, 0.52969, 19, -12.96, -9.8, 0.27311, 3, 18, 46.04, -13.46, 0.4099, 19, 10.82999, -10.17, 0.34746, 20, -24.93, -10.51, 0.2426, 3, 18, 73.37999, -18.69, 0.19431, 19, 38.58, -12.40999, 0.37176, 20, 2.89, -10.97999, 0.43389, 3, 19, 64.05999, -14.97999, 0.16663, 20, 28.47999, -11.93999, 0.56755, 21, -7.51999, -11.47999, 0.26578, 3, 20, 54.56999, -12.35999, 0.52113, 21, 18.54999, -10.93, 0.36166, 11, -3.07999, 24.95, 0.11716, 4, 20, 82.97, -14.35, 0.35144, 21, 47, -11.85999, 0.29521, 11, -13.06, -1.66999, 0.25117, 12, -46.29, 1.83, 0.10215, 1, 11, 16.36, -4.67, 1, 2, 11, 34.31, -4.36, 0.53486, 12, 0.74, -4.42999, 0.46513, 3, 11, 51.09, -4.07999, 0.14609, 12, 17.48999, -5.42, 0.54313, 13, -15.5, -2.75, 0.31075, 2, 12, 34.66999, -4.01, 0.40713, 13, 1.63999, -4.36, 0.59285, 2, 12, 45.08, -3.15, 0.25725, 13, 12.05, -5.34, 0.74273, 2, 12, 53.97999, 5.80999, 0.2531, 13, 22.37999, 1.92999, 0.74687, 2, 12, 37.18999, 9.56, 0.4029, 13, 6.5, 8.56, 0.59709, 3, 11, 57.06999, 14.15999, 0.1335, 12, 24.82999, 12.31999, 0.54644, 13, -5.17999, 13.43999, 0.32003, 4, 20, 47.09, 33.09999, 0.13131, 11, 42.63999, 19.06999, 0.26348, 12, 10.81, 18.30999, 0.49744, 13, -17.93, 21.78, 0.10773, 4, 20, 46.45, 16.09, 0.21157, 21, 9.35999, 17.2, 0.10678, 11, 26.5, 24.55999, 0.44949, 12, -4.84999, 25, 0.23209, 3, 20, 46.79999, 8.61999, 0.4011, 21, 9.98999, 9.75, 0.24542, 11, 19.23999, 26.37, 0.35346, 3, 20, 39.7, 8.6, 0.58249, 21, 2.9, 9.47, 0.3079, 11, 21.25, 33.16999, 0.10958, 3, 19, 59.15999, 5.88, 0.21953, 20, 22.27, 8.57999, 0.57946, 21, -14.51, 8.78999, 0.20099, 3, 18, 71.83, 0.46999, 0.21582, 19, 34.95999, 6.46999, 0.32262, 20, -1.91999, 7.61999, 0.46154, 3, 18, 45.79999, 3.95, 0.40553, 19, 8.69999, 7.11999, 0.386, 20, -28.15999, 6.61, 0.20844, 3, 17, 56.77999, 2.13, 0.25409, 18, 19.82999, 7.11999, 0.53004, 19, -17.45, 7.46, 0.21583, 3, 16, 66.18, 3.45, 0.22413, 17, 29.21999, 7.92, 0.34134, 18, -8.25, 9.23999, 0.4345, 4, 15, 76.59999, 4.5, 0.19362, 16, 39.77999, 8.26, 0.28885, 17, 2.48, 10.18, 0.33579, 18, -35.04999, 7.96999, 0.1817, 4, 14, 82.87999, 7.07999, 0.11658, 15, 46.16999, 9.56999, 0.35727, 16, 9.07999, 11.31999, 0.35745, 17, -28.35, 10.28999, 0.16868, 3, 14, 54.45, 12.1, 0.35356, 15, 17.56999, 13.46, 0.44494, 16, -19.70999, 13.31, 0.20148, 2, 14, 24.64999, 16.69, 0.65438, 15, -12.39, 16.85, 0.3456, 2, 14, -8.38, 15.21, 0.85329, 15, -45.34, 14.03999, 0.14668, 1, 14, -20.18, 4.55999, 1, 2, 12, 35.88, 2.52999, 0.40509, 13, 3.98, 1.86, 0.5949, 3, 11, 54.36999, 5.90999, 0.1392, 12, 21.51, 4.28999, 0.54493, 13, -9.85, 6.11, 0.31584, 2, 11, 37.77999, 7.63, 0.44938, 12, 5.09999, 7.26, 0.55061, 3, 20, 65.37999, 20.69, 0.11856, 11, 20.59, 11.34, 0.75133, 12, -11.76, 12.27, 0.13007, 3, 20, 65.41, 1.80999, 0.39678, 21, 24.29999, 0.23, 0.28257, 11, 2.05999, 14.97, 0.32062, 3, 20, 48, 0.07, 0.55395, 21, 6.92999, -0.31999, 0.33292, 11, 3.36999, 30.46999, 0.1131, 3, 19, 65.94999, -2.96, 0.19447, 20, 24.95, -1.57, 0.57381, 21, -15.98999, -0.41999, 0.2317 ], "hull": 36, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], "width": 100, @@ -201,7 +212,7 @@ "type": "path", "lengths": [ 137.82, 291.73, 641.11 ], "vertexCount": 9, - "vertices": [ 1, 23, -43.14, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.07, -0.18, 1, 2, 23, 72.07, 13.65, 0.5, 24, -69.11, -16.07, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.02, 0.5, 2, 23, 202.92, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.03, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.81, 1 ] + "vertices": [ 1, 23, -43.13999, 0.61, 1, 1, 23, -1.30999, 0.43, 1, 1, 23, 63.06999, -0.18, 1, 2, 23, 72.06999, 13.64999, 0.5, 24, -69.11, -16.06999, 0.5, 2, 23, 135.74, 0.27, 0.5, 24, -3.96, -2.01999, 0.5, 2, 23, 202.91998, -15.13, 0.5, 24, 65, 14.09, 0.5, 1, 24, 71.08999, -2.02999, 1, 1, 24, 149.06, -1.74, 1, 1, 23, 368.47, -1.80999, 1 ] } }, "body": { @@ -209,7 +220,7 @@ "type": "mesh", "uvs": [ 0.35966, 0.01351, 0.26863, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39791, 0.19457, 0.40451, 0.24271, 0.38076, 0.27893, 0.35969, 0.3004, 0.34119, 0.31925, 0.34988, 0.34325, 0.35834, 0.36658, 0.36551, 0.40163, 0.37233, 0.43498, 0.38396, 0.4944, 0.3956, 0.5597, 0.39883, 0.59858, 0.40141, 0.62955, 0.40215, 0.65661, 0.34609, 0.71563, 0.27077, 0.78175, 0.22009, 0.82127, 0.17617, 0.85552, 0.13115, 0.88832, 0.08238, 0.92385, 0.00341, 0.97959, 0.18836, 0.99126, 0.32172, 0.99284, 0.46265, 0.9945, 0.61643, 0.98608, 0.71617, 0.97182, 0.6185, 0.9582, 0.48967, 0.95042, 0.39458, 0.94083, 0.27771, 0.92903, 0.23407, 0.9232, 0.26691, 0.89774, 0.3068, 0.8668, 0.34202, 0.83414, 0.38369, 0.7955, 0.45642, 0.72873, 0.52707, 0.66845, 0.56032, 0.63344, 0.57541, 0.60108, 0.59357, 0.56214, 0.61643, 0.49731, 0.63513, 0.43962, 0.64344, 0.40462, 0.7708, 0.39011, 0.84584, 0.37024, 0.90982, 0.35331, 0.9674, 0.31914, 0.97301, 0.28585, 0.96448, 0.23351, 0.8952, 0.16809, 0.79345, 0.12642, 0.75178, 0.10878, 0.71799, 0.09448, 0.66816, 0.07236, 0.61342, 0.04807, 0.47867, 0.0141, 0.49845, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.8097, 0.24505, 0.72828, 0.17901, 0.68147, 0.13901, 0.59191, 0.0971, 0.3904, 0.09012, 0.53695, 0.14981, 0.57562, 0.19616, 0.64483, 0.25076, 0.79855, 0.33476, 0.6175, 0.97166, 0.4773, 0.97061, 0.23795, 0.95673, 0.15271, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30353, 0.50695, 0.34527, 0.50634, 0.43735, 0.50334, 0.49589, 0.51085, 0.32558, 0.50355, 0.41057, 0.19542, 0.8924, 0.36492, 0.96409 ], "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], - "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.42, 12.41, 0.24858, 5, 22.32, 18.17, 0.75141, 2, 4, 39.47, 25.24, 0.44331, 5, -1.05999, 25.71, 0.55668, 3, 3, 48.02, 29.46, 0.3743, 4, 14.54, 26.45, 0.47619, 5, -25.57, 21.01, 0.1495, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.64611, 4, -8.99, 30.49, 0.24146, 3, 32, -45.21, -8.8, 0.10611, 2, 28.68, 30.39, 0.49532, 3, 2.88, 30.84, 0.39856, 3, 32, -28.91, -12.44, 0.25801, 2, 12.15, 32.79, 0.60893, 3, -12.28, 37.83, 0.13304, 3, 32, -18.5, -14.05, 0.28713, 2, 2.33999, 35.97, 0.51935, 26, -7.59, 18.95, 0.1935, 4, 32, -10.78, -18.35, 0.28478, 25, -42.03, 75.56, 0.10294, 2, -6.36, 37.31, 0.37493, 26, -10.2, 10.25, 0.23733, 3, 32, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.2, -0.66, 0.33772, 4, 32, 10.64, -16.31, 0.3269, 37, -24.05, -14.89, 0.16082, 2, -27.57, 33.66, 0.14432, 26, -6.36, -11.04, 0.36794, 4, 32, 28.49, -15.62, 0.24236, 37, -9.54, -15.11, 0.27028, 38, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 32, 41.59, -14.89, 0.2176, 37, 6.92, -15.34, 0.33285, 38, -26.85, -17.48, 0.20377, 26, -1.29999, -43.27, 0.24577, 3, 37, 33.82, -15.8, 0.47178, 38, 0, -15.85, 0.42626, 39, -31.79, -17.82, 0.10194, 3, 37, 63.38, -16.48, 0.2126, 38, 29.52, -14.21, 0.42737, 39, -2.42, -14.38, 0.36002, 3, 38, 49.78, -15.51, 0.30177, 39, 14.85, -13.08, 0.47126, 40, -21.14, -15.63, 0.22694, 3, 38, 61.09, -13.4, 0.15443, 39, 29.03, -11.64, 0.50848, 40, -3.26, -12.45, 0.33708, 2, 39, 41.23, -10.79, 0.28077, 40, 8.39999, -8.79, 0.71921, 2, 40, 36.23, -8.59, 0.56512, 41, -3.02, -8.83, 0.43487, 3, 40, 67.93, -10.06, 0.16322, 41, 28.68, -7.81, 0.53712, 42, -8.10999, -7.69, 0.29965, 3, 41, 47.76, -8.47, 0.402, 42, 10.97, -7.89, 0.4513, 33, -26.34, -6.21, 0.14668, 3, 41, 64.61, -8.06, 0.25016, 42, 27.8, -8.39999, 0.46039, 33, -12.76, -8.81, 0.28943, 4, 41, 79.12, -10.24, 0.11858, 42, 42.33, -8.03, 0.26981, 33, 4.53, -8.37, 0.48104, 34, -1.55, 35.59999, 0.13056, 2, 33, 20.84, -9.18999, 0.72799, 34, -5.37, 19.54999, 0.272, 1, 34, -11.5, -7.29, 1, 4, 33, 43.23, 16.27, 0.2746, 34, 15.1, -7.51, 0.48158, 35, -12.29, -5.54, 0.12942, 36, -41.75999, 0.94, 0.11439, 4, 33, 36.99, 33.93999, 0.18804, 34, 33.7, -4.57, 0.34252, 35, 6.53, -5.75, 0.18296, 36, -23.19, -2.18, 0.28646, 3, 34, 53.35, -1.58, 0.21646, 35, 26.4, -6.08, 0.26516, 36, -3.61, -5.59, 0.51836, 2, 35, 47.99, -1.76, 0.15752, 36, 18.37, -4.66, 0.84247, 1, 36, 33.16, -0.11, 1, 2, 35, 47.97, 10.84, 0.17387, 36, 20.31, 7.79, 0.82612, 4, 33, 9.83, 48.43, 0.17571, 34, 53.28, 18.69, 0.17038, 35, 29.73, 13.92, 0.136, 36, 2.76, 13.66, 0.5179, 4, 33, 11.45, 34.57, 0.26313, 34, 39.25999, 20.54999, 0.23037, 35, 16.20999, 18.09, 0.15679, 36, -9.93999, 19.87999, 0.3497, 4, 33, 12.4, 17.12999, 0.37056, 34, 22.1, 22.5, 0.30409, 35, -0.37, 22.87, 0.18235, 36, -25.59, 27.17, 0.14297, 3, 33, 12.34, 10.43, 0.44639, 34, 15.56, 23.91, 0.2976, 35, -6.59, 25.36, 0.256, 5, 41, 75.94999, 9.06, 0.10562, 42, 38.15, 11.08, 0.25494, 33, 1.65, 10.97, 0.33578, 34, 17.98, 34.75, 0.16322, 35, -2.38, 35.64, 0.14041, 3, 41, 62.61, 10.94, 0.26063, 42, 26.04, 10.62, 0.49791, 33, -15.14, 10.14, 0.24144, 3, 41, 47.27, 9.67, 0.40348, 42, 9.53, 10.18999, 0.4787, 33, -26.59, 11.93, 0.11781, 3, 40, 69.23, 6.97, 0.16043, 41, 28.63, 9.26, 0.53934, 42, -7.94, 9.38, 0.30019, 2, 40, 37.36, 8, 0.57647, 41, -3.21, 7.8, 0.42351, 2, 39, 45.48, 7.1, 0.29349, 40, 8.38, 9.60999, 0.7065, 3, 38, 62.84, 9, 0.15445, 39, 29.4, 10.82, 0.49324, 40, -8.12, 9.49, 0.35229, 3, 38, 52.14, 9.27, 0.30575, 39, 12.84, 11.73, 0.46742, 40, -26.12, 8.77, 0.22682, 3, 37, 66.66, 11.26, 0.21798, 38, 30.61, 13.69, 0.42844, 39, -3.05, 13.53, 0.35357, 3, 37, 37.7, 16.76, 0.48245, 38, 1.30999, 16.92, 0.41751, 39, -32.49, 14.97, 0.10002, 4, 32, 44.34, 22.11, 0.23459, 37, 11.91, 21.43, 0.43853, 38, -24.76, 19.56, 0.20679, 2, -58.28, -7.19, 0.12007, 4, 32, 28.54, 23.57, 0.31079, 37, -3.76, 23.83, 0.19157, 25, -76.76, 29.22, 0.2153, 2, -42.42, -7.45, 0.2823, 3, 32, 22.31, 41.64, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37848, 3, 32, 19.77, 51.42, 0.1392, 25, -59.84, 2.52, 0.47895, 2, -23.89, -35.16, 0.38184, 3, 32, 6.03, 61.53, 0.10543, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.16, -13.13, 0.67426, 2, -1.22, -50.82, 0.32573, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.49, 0.89018, 2, 37.39, -48.18, 0.10981, 3, 25, 30.4, 0.96, 0.43019, 2, 66.35, -36.72, 0.16237, 3, 19.96999, -44.2, 0.40743, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.21, 0.31834, 2, 3, 50.68, -30.61, 0.51066, 4, 0.38, -31.99, 0.48933, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.28, 0.12041, 3, 3, 69.4, -22.88, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.52, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.55, -19.37, 0.1738, 5, 26.05, -13.63, 0.82619, 5, 32, 20.79, 3.26, 0.38867, 37, -12.73, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10105, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.24, 0.13748, 4, 32, 2.68, 26.81, 0.26409, 25, -50.86, 29.21, 0.2337, 2, -16.39, -8.72999, 0.34628, 26, 35.78, -0.48, 0.15592, 3, 32, -15.65, 28.57, 0.15678, 25, -33.53, 28.78, 0.29159, 2, 2.02, -9.1, 0.55161, 1, 25, -28.17, 8.37, 1, 1, 25, -5.01, 10.99, 1, 3, 25, 24.12, 24.17, 0.12051, 2, 60.06, -13.51, 0.21384, 3, 20.53, -20.16, 0.66563, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.65, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58729, 5, -3.66, 7.65, 0.4127, 2, 3, 39.52, 3.1, 0.47136, 4, -0.95, 3.49, 0.52863, 1, 3, 17.87999, 2.56, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 32, -2.63, 46, 0.10032, 25, -45.41, 10.26, 0.52611, 2, -9.64, -27.46, 0.37355, 2, 35, 47.98, 4.75, 0.16597, 36, 19.37, 1.77, 0.83402, 4, 33, 19.54999, 50.48, 0.12624, 34, 53.3, 9.5, 0.16908, 35, 28.21, 4.85, 0.24846, 36, -0.13, 4.94, 0.4562, 4, 33, 26.31, 16.82, 0.32786, 34, 18.95999, 9.25, 0.38307, 35, -5.68, 10.34, 0.15879, 36, -32.77, 15.61, 0.13026, 2, 33, 16.95999, -0.03, 0.66864, 34, 4.23, 21.71, 0.33135, 3, 33, 28.1, 2.85, 0.4826, 34, 4.91, 10.14, 0.31302, 35, -19.37999, 13.57, 0.20437, 3, 41, 63.21, -0.58, 0.21068, 42, 25.96, 0.78, 0.49386, 33, -11.01, 1.48, 0.29543, 3, 32, -14.83, 8.08, 0.24448, 25, -33.34, 51.23, 0.16324, 2, 2.58999, 13.53, 0.59226, 4, 32, 3.37, 4.96, 0.28616, 25, -51.81, 51.13, 0.16476, 2, -15.86, 13.44, 0.31891, 26, 13.85, -0.52, 0.23015, 4, 32, 46.08, 3.58, 0.24089, 37, 9.06, 3.09, 0.41151, 38, -28.46, 0.64, 0.21862, 26, 17.5, -43.07, 0.12896, 3, 37, 37.22, 1.25, 0.47744, 38, -0.08, 1.25, 0.42162, 39, -36.25, -5.25, 0.10092, 4, 32, -5.23, 6.29, 0.25594, 25, -43.1, 51.32, 0.15578, 2, -7.16, 13.62, 0.42092, 26, 14.16, 8.17, 0.16734, 4, 32, 33.03, 3.37, 0.36684, 37, -3.96, 3.6, 0.31093, 2, -45.32, 9.82, 0.17306, 26, 15.75, -30.14, 0.14914, 4, 41, 77.5, -1.16, 0.11479, 42, 40.23, 0.95, 0.26888, 33, 3.05, 0.72, 0.44972, 34, 7.66, 35.32, 0.16659, 4, 33, 22.72, 34.66999, 0.2209, 34, 37.18, 9.38, 0.26955, 35, 12.29, 7.43, 0.20636, 36, -15.46, 9.95, 0.30317 ], + "vertices": [ 1, 5, 30.85, 2.44, 1, 2, 4, 60.41999, 12.40999, 0.24857, 5, 22.31999, 18.17, 0.75141, 2, 4, 39.47, 25.23999, 0.4433, 5, -1.05999, 25.70999, 0.55668, 3, 3, 48.02, 29.45999, 0.3743, 4, 14.53999, 26.45, 0.47619, 5, -25.56999, 21.01, 0.14949, 3, 2, 50.36, 32.58, 0.11242, 3, 24.29, 26.79, 0.6461, 4, -8.98999, 30.48999, 0.24145, 3, 35, -45.20999, -8.8, 0.1061, 2, 28.68, 30.38999, 0.49531, 3, 2.88, 30.84, 0.39855, 3, 35, -28.90999, -12.43999, 0.258, 2, 12.14999, 32.79, 0.60892, 3, -12.27999, 37.83, 0.13303, 3, 35, -18.5, -14.05, 0.28712, 2, 2.33999, 35.97, 0.51934, 26, -7.59, 18.95, 0.19349, 4, 35, -10.77999, -18.35, 0.28477, 25, -42.02999, 75.55999, 0.10294, 2, -6.36, 37.31, 0.37492, 26, -10.19999, 10.25, 0.23733, 3, 35, 0.92, -16.95, 0.34086, 2, -17.28, 35.45, 0.32139, 26, -8.19999, -0.66, 0.33772, 4, 35, 10.64, -16.30999, 0.3269, 36, -24.04999, -14.89, 0.16082, 2, -27.56999, 33.65999, 0.14431, 26, -6.36, -11.03999, 0.36794, 4, 35, 28.48999, -15.61999, 0.24235, 36, -9.53999, -15.10999, 0.27028, 37, -45.5, -19.11, 0.12131, 26, -3.64, -27.87, 0.36603, 4, 35, 41.59, -14.89, 0.2176, 36, 6.92, -15.34, 0.33285, 37, -26.85, -17.47999, 0.20376, 26, -1.29999, -43.27, 0.24577, 3, 36, 33.81999, -15.8, 0.47178, 37, 0, -15.85, 0.42625, 38, -31.79, -17.81999, 0.10193, 3, 36, 63.38, -16.47999, 0.21259, 37, 29.52, -14.21, 0.42737, 38, -2.42, -14.38, 0.36002, 3, 37, 49.77999, -15.51, 0.30177, 38, 14.85, -13.07999, 0.47126, 39, -21.13999, -15.63, 0.22694, 3, 37, 61.09, -13.39999, 0.15443, 38, 29.03, -11.64, 0.50848, 39, -3.25999, -12.44999, 0.33708, 2, 38, 41.22999, -10.78999, 0.28077, 39, 8.39999, -8.78999, 0.71921, 2, 39, 36.22999, -8.59, 0.56511, 40, -3.01999, -8.82999, 0.43487, 3, 39, 67.93, -10.06, 0.16322, 40, 28.68, -7.80999, 0.53711, 41, -8.10999, -7.69, 0.29965, 3, 40, 47.75999, -8.47, 0.402, 41, 10.97, -7.88999, 0.45129, 42, -26.34, -6.21, 0.14667, 3, 40, 64.61, -8.06, 0.25016, 41, 27.79999, -8.39999, 0.46039, 42, -12.76, -8.81, 0.28942, 4, 40, 79.12, -10.23999, 0.11857, 41, 42.33, -8.02999, 0.2698, 42, 4.53, -8.36999, 0.48104, 32, -1.54999, 35.59999, 0.13055, 2, 42, 20.84, -9.18999, 0.72798, 32, -5.36999, 19.54999, 0.272, 1, 32, -11.5, -7.28999, 1, 4, 42, 43.22999, 16.27, 0.27459, 32, 15.1, -7.51, 0.48157, 33, -12.28999, -5.53999, 0.12941, 34, -41.75999, 0.93999, 0.11439, 4, 42, 36.99, 33.93999, 0.18804, 32, 33.7, -4.57, 0.34251, 33, 6.53, -5.75, 0.18296, 34, -23.19, -2.18, 0.28646, 3, 32, 53.34999, -1.58, 0.21646, 33, 26.39999, -6.07999, 0.26515, 34, -3.60999, -5.59, 0.51836, 2, 33, 47.99, -1.75999, 0.15751, 34, 18.37, -4.65999, 0.84246, 1, 34, 33.15999, -0.10999, 1, 2, 33, 47.97, 10.84, 0.17386, 34, 20.30999, 7.78999, 0.82612, 4, 42, 9.82999, 48.43, 0.1757, 32, 53.27999, 18.69, 0.17037, 33, 29.72999, 13.92, 0.136, 34, 2.75999, 13.65999, 0.51789, 4, 42, 11.44999, 34.56999, 0.26313, 32, 39.25999, 20.54999, 0.23037, 33, 16.20999, 18.09, 0.15679, 34, -9.93999, 19.87999, 0.3497, 4, 42, 12.39999, 17.12999, 0.37055, 32, 22.1, 22.5, 0.30408, 33, -0.37, 22.87, 0.18234, 34, -25.59, 27.17, 0.14297, 3, 42, 12.34, 10.43, 0.44639, 32, 15.56, 23.90999, 0.2976, 33, -6.59, 25.36, 0.256, 5, 40, 75.94999, 9.06, 0.10561, 41, 38.15, 11.07999, 0.25494, 42, 1.64999, 10.97, 0.33577, 32, 17.97999, 34.75, 0.16322, 33, -2.38, 35.63999, 0.14041, 3, 40, 62.61, 10.93999, 0.26063, 41, 26.04, 10.61999, 0.4979, 42, -15.14, 10.14, 0.24143, 3, 40, 47.27, 9.67, 0.40347, 41, 9.52999, 10.18999, 0.4787, 42, -26.59, 11.93, 0.11781, 3, 39, 69.23, 6.96999, 0.16042, 40, 28.62999, 9.26, 0.53934, 41, -7.94, 9.38, 0.30019, 2, 39, 37.36, 8, 0.57647, 40, -3.21, 7.8, 0.4235, 2, 38, 45.47999, 7.09999, 0.29348, 39, 8.38, 9.60999, 0.70649, 3, 37, 62.84, 9, 0.15444, 38, 29.39999, 10.81999, 0.49323, 39, -8.11999, 9.48999, 0.35229, 3, 37, 52.13999, 9.27, 0.30575, 38, 12.84, 11.72999, 0.46742, 39, -26.12, 8.77, 0.22682, 3, 36, 66.66, 11.26, 0.21797, 37, 30.61, 13.68999, 0.42844, 38, -3.04999, 13.52999, 0.35357, 3, 36, 37.7, 16.76, 0.48245, 37, 1.30999, 16.92, 0.41751, 38, -32.49, 14.97, 0.10001, 4, 35, 44.34, 22.11, 0.23458, 36, 11.90999, 21.43, 0.43852, 37, -24.76, 19.55999, 0.20679, 2, -58.27999, -7.19, 0.12007, 4, 35, 28.54, 23.56999, 0.31079, 36, -3.75999, 23.82999, 0.19156, 25, -76.76, 29.21999, 0.21529, 2, -42.41999, -7.44999, 0.28229, 3, 35, 22.30999, 41.63999, 0.18196, 25, -69.83, 12.46, 0.43955, 2, -34.84, -25, 0.37847, 3, 35, 19.77, 51.41999, 0.1392, 25, -59.84, 2.51999, 0.47894, 2, -23.88999, -35.15999, 0.38183, 3, 35, 6.03, 61.52999, 0.10542, 25, -52.7, -5.88, 0.51007, 2, -17.1, -43.61, 0.38449, 2, 25, -37.15999, -13.13, 0.67426, 2, -1.22, -50.81999, 0.32572, 1, 25, -22.09, -13.05, 1, 2, 25, 1.45, -10.48999, 0.89017, 2, 37.38999, -48.18, 0.10981, 3, 25, 30.39999, 0.95999, 0.43018, 2, 66.34999, -36.72, 0.16236, 3, 19.96999, -44.2, 0.40742, 2, 3, 41.58, -34.52, 0.68164, 4, -9.43999, -33.20999, 0.31834, 2, 3, 50.68, -30.61, 0.51065, 4, 0.37999, -31.98999, 0.48932, 3, 3, 58.06, -27.44, 0.26484, 4, 8.35, -31, 0.61474, 5, -18.04, -36.27999, 0.12041, 3, 3, 69.4, -22.87999, 0.17395, 4, 20.5, -29.77, 0.5644, 5, -6.51999, -32.22, 0.26164, 2, 4, 33.86, -28.42, 0.29085, 5, 6.13, -27.76, 0.70914, 2, 4, 56.54999, -19.37, 0.1738, 5, 26.04999, -13.63, 0.82618, 5, 35, 20.79, 3.25999, 0.38866, 36, -12.72999, 4.03, 0.17697, 25, -69.83999, 50.18, 0.10104, 2, -36.22, 13.38, 0.1958, 26, 13.97, -19.23999, 0.13748, 4, 35, 2.68, 26.80999, 0.26409, 25, -50.86, 29.20999, 0.2337, 2, -16.38999, -8.72999, 0.34628, 26, 35.77999, -0.47999, 0.15591, 3, 35, -15.64999, 28.56999, 0.15678, 25, -33.52999, 28.78, 0.29159, 2, 2.01999, -9.1, 0.5516, 1, 25, -28.17, 8.36999, 1, 1, 25, -5.01, 10.98999, 1, 3, 25, 24.12, 24.17, 0.1205, 2, 60.06, -13.51, 0.21383, 3, 20.53, -20.15999, 0.66562, 2, 3, 39.63, -17.84, 0.59512, 4, -6.67, -16.64999, 0.40487, 3, 3, 60.95, -9.85999, 0.26251, 4, 16.02, -14.92, 0.55541, 5, -14.38, -18.84, 0.18206, 2, 4, 32.68, 8.3, 0.58728, 5, -3.66, 7.65, 0.41269, 2, 3, 39.52, 3.09999, 0.47135, 4, -0.94999, 3.49, 0.52863, 1, 3, 17.87999, 2.55999, 1, 2, 2, 27.01, -3.63, 0.67245, 3, -8.35999, -1.30999, 0.32754, 3, 35, -2.63, 46, 0.10031, 25, -45.40999, 10.26, 0.5261, 2, -9.64, -27.45999, 0.37354, 2, 33, 47.97999, 4.75, 0.16596, 34, 19.37, 1.76999, 0.83402, 4, 42, 19.54999, 50.47999, 0.12624, 32, 53.29999, 9.5, 0.16908, 33, 28.20999, 4.84999, 0.24845, 34, -0.12999, 4.94, 0.4562, 4, 42, 26.30999, 16.81999, 0.32785, 32, 18.95999, 9.25, 0.38306, 33, -5.67999, 10.34, 0.15879, 34, -32.77, 15.60999, 0.13026, 2, 42, 16.95999, -0.02999, 0.66864, 32, 4.23, 21.70999, 0.33134, 3, 42, 28.1, 2.84999, 0.4826, 32, 4.90999, 10.14, 0.31301, 33, -19.37999, 13.56999, 0.20437, 3, 40, 63.20999, -0.57999, 0.21067, 41, 25.95999, 0.77999, 0.49386, 42, -11.01, 1.48, 0.29543, 3, 35, -14.82999, 8.07999, 0.24447, 25, -33.34, 51.22999, 0.16324, 2, 2.58999, 13.52999, 0.59226, 4, 35, 3.36999, 4.96, 0.28615, 25, -51.81, 51.13, 0.16475, 2, -15.85999, 13.43999, 0.31891, 26, 13.85, -0.51999, 0.23014, 4, 35, 46.08, 3.57999, 0.24088, 36, 9.06, 3.08999, 0.4115, 37, -28.45999, 0.63999, 0.21862, 26, 17.5, -43.06999, 0.12895, 3, 36, 37.22, 1.25, 0.47743, 37, -0.07999, 1.25, 0.42162, 38, -36.25, -5.25, 0.10091, 4, 35, -5.23, 6.28999, 0.25593, 25, -43.09999, 51.31999, 0.15578, 2, -7.15999, 13.61999, 0.42092, 26, 14.15999, 8.17, 0.16733, 4, 35, 33.02999, 3.36999, 0.36684, 36, -3.96, 3.59999, 0.31093, 2, -45.31999, 9.81999, 0.17305, 26, 15.75, -30.13999, 0.14914, 4, 40, 77.5, -1.15999, 0.11479, 41, 40.22999, 0.94999, 0.26888, 42, 3.04999, 0.72, 0.44971, 32, 7.65999, 35.31999, 0.16659, 4, 42, 22.71999, 34.66999, 0.22089, 32, 37.18, 9.38, 0.26954, 33, 12.28999, 7.42999, 0.20635, 34, -15.46, 9.94999, 0.30316 ], "hull": 60, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], "width": 141, @@ -221,7 +232,7 @@ "type": "mesh", "uvs": [ 0.714, 0.00566, 0.67107, 0.08129, 0.60221, 0.15433, 0.53632, 0.21682, 0.44558, 0.28704, 0.34898, 0.35134, 0.29096, 0.3894, 0.25238, 0.41472, 0.22423, 0.4427, 0.19483, 0.47193, 0.15998, 0.50657, 0.09138, 0.59567, 0.05498, 0.70865, 0.02988, 0.81366, 0.01048, 0.94262, 0.10494, 0.98984, 0.25391, 0.9742, 0.31482, 0.88906, 0.28834, 0.82868, 0.13606, 0.74572, 0.14334, 0.71487, 0.18317, 0.62253, 0.25217, 0.5422, 0.29537, 0.50981, 0.33787, 0.47794, 0.38451, 0.45012, 0.43581, 0.41953, 0.5471, 0.36549, 0.68845, 0.29831, 0.74855, 0.35527, 0.85873, 0.38229, 0.99674, 0.37644, 0.95353, 0.33244, 0.91355, 0.29171, 0.87464, 0.25208, 0.83758, 0.21434, 0.78082, 0.12598, 0.78194, 0.06829, 0.63219, 0.23719, 0.66924, 0.15783, 0.75532, 0.20966, 0.7161, 0.11136 ], "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], - "vertices": [ 1, 47, 21.66, 6.07, 1, 2, 46, 18.12999, 3.37, 0.16553, 47, 3.91, 4.23, 0.83446, 3, 27, -6.12, -15.23, 0.20965, 46, -0.04, 8.85, 0.53629, 5, 43.44, 6.81, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.88821, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.57, -9.68999, 0.30995, 28, 12.31, -9.60999, 0.69004, 2, 28, 24.21, -9.37, 0.86562, 29, -13.42, -6.2, 0.13437, 2, 28, 32.12, -9.21, 0.73143, 29, -5.72, -8.02, 0.26856, 2, 28, 39.34999, -7.58, 0.54007, 29, 1.68, -8.24, 0.45992, 2, 28, 46.9, -5.88, 0.29036, 29, 9.41, -8.47999, 0.70963, 2, 29, 18.58, -8.76, 0.66539, 30, -15.75, -5.12, 0.3346, 1, 30, 6.03, -8.58, 1, 2, 30, 31.42, -5.97, 0.39256, 31, 0.49, -6.36, 0.60743, 1, 31, 23.79, -9.31, 1, 1, 31, 52.37, -11.28, 1, 1, 31, 62.39, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.48, 1, 1, 31, 25.99, 28.24, 1, 1, 31, 8.33, 5.63, 1, 2, 30, 28.81, 6.64, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.66, 11.07, 0.10767, 29, 18.26, 6.74, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.87, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.35, 9.85999, 0.40816, 2, 28, 23.72, 9.68999, 0.83035, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.2992, 28, 13.67, 9.97, 0.70079, 2, 27, 32.18, 12.59, 0.84686, 28, -6.23, 12.54, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47199, 4, 29.16, -0.35, 0.528, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.45, -29.43, 1, 2, 5, -8.22999, -31.56, 0.51928, 4, 19, -28.73, 0.4807, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.69, -14.54, 0.25481, 47, 2.13, -14.4, 0.32231, 5, 42.47, -19.81, 0.42286, 1, 47, 13.63, -8.89, 1, 1, 27, 3.55, 0.9, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.33, 0.49989, 1, 5, 25.66, -11.24, 1, 3, 46, 13.39, -4.64, 0.33234, 47, 0.86, -4.56, 0.48165, 5, 48.11, -11.65, 0.186 ], + "vertices": [ 1, 47, 21.65999, 6.07, 1, 2, 46, 18.12999, 3.36999, 0.16552, 47, 3.91, 4.23, 0.83446, 3, 27, -6.11999, -15.22999, 0.20964, 46, -0.03999, 8.85, 0.53628, 5, 43.43999, 6.80999, 0.25404, 1, 27, 10.35999, -12.02, 1, 2, 27, 30.62, -10.09, 0.8882, 28, -7.63, -10.14999, 0.11178, 2, 27, 50.56999, -9.68999, 0.30994, 28, 12.31, -9.60999, 0.69003, 2, 28, 24.20999, -9.36999, 0.86562, 29, -13.42, -6.19999, 0.13436, 2, 28, 32.11999, -9.21, 0.73142, 29, -5.71999, -8.02, 0.26855, 2, 28, 39.34999, -7.57999, 0.54006, 29, 1.67999, -8.23999, 0.45991, 2, 28, 46.9, -5.88, 0.29036, 29, 9.40999, -8.47999, 0.70963, 2, 29, 18.57999, -8.76, 0.66539, 30, -15.75, -5.11999, 0.3346, 1, 30, 6.03, -8.57999, 1, 2, 30, 31.42, -5.96999, 0.39256, 31, 0.49, -6.36, 0.60742, 1, 31, 23.79, -9.31, 1, 1, 31, 52.36999, -11.27999, 1, 1, 31, 62.38999, 2.71, 1, 1, 31, 58.29, 24.2, 1, 1, 31, 39.22, 32.47999, 1, 1, 31, 25.98999, 28.23999, 1, 1, 31, 8.32999, 5.63, 1, 2, 30, 28.80999, 6.63999, 0.48313, 31, 1.48, 6.48, 0.51686, 1, 30, 7.61, 5.9, 1, 3, 28, 51.65999, 11.06999, 0.10767, 29, 18.26, 6.73999, 0.55899, 30, -12.34, 10, 0.33333, 2, 28, 42.18, 10.25, 0.31463, 29, 8.86999, 8.31, 0.68536, 2, 28, 32.86, 9.43999, 0.59183, 29, -0.34999, 9.85999, 0.40816, 2, 28, 23.71999, 9.68999, 0.83034, 29, -9.13, 12.38, 0.16964, 2, 27, 52.08, 9.88, 0.29919, 28, 13.67, 9.97, 0.70078, 2, 27, 32.18, 12.59, 0.84685, 28, -6.23, 12.53999, 0.15312, 1, 5, 9.42, 3.38, 1, 2, 5, -5.05, -1.59, 0.47198, 4, 29.15999, -0.34999, 0.52799, 1, 4, 16.12999, -11.35, 1, 1, 4, 7.44999, -29.43, 1, 2, 5, -8.22999, -31.55999, 0.51928, 4, 19, -28.72999, 0.48069, 1, 5, 1.99, -28.42, 1, 1, 5, 11.96, -25.36, 1, 1, 5, 21.44, -22.45, 1, 3, 46, 12.68999, -14.53999, 0.25481, 47, 2.13, -14.39999, 0.32231, 5, 42.47, -19.80999, 0.42285, 1, 47, 13.63, -8.89, 1, 1, 27, 3.54999, 0.89999, 1, 2, 46, 1.71, -0.73, 0.5001, 5, 40.06, -2.32999, 0.49988, 1, 5, 25.65999, -11.23999, 1, 3, 46, 13.39, -4.63999, 0.33234, 47, 0.86, -4.55999, 0.48164, 5, 48.11, -11.64999, 0.186 ], "hull": 38, "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], "width": 145, @@ -233,7 +244,7 @@ "type": "path", "lengths": [ 140.43, 297.34, 652.04 ], "vertexCount": 9, - "vertices": [ 1, 44, -40.7, -0.41, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.42, 0.33, 1, 2, 44, 82.92, 8.49, 0.5, 45, -58.75, -8.53, 0.5, 2, 44, 141.34, 0.52, 0.5, 45, 0.45, 0.71, 0.5, 2, 44, 208.26, -14.83, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.81, 1.41, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.76, 1 ] + "vertices": [ 1, 44, -40.7, -0.40999, 1, 1, 44, 1.48, -0.27, 1, 1, 44, 75.41999, 0.33, 1, 2, 44, 82.91999, 8.48999, 0.5, 45, -58.75, -8.52999, 0.5, 2, 44, 141.34, 0.51999, 0.5, 45, 0.44999, 0.70999, 0.5, 2, 44, 208.26, -14.82999, 0.5, 45, 68.83, 18.53, 0.5, 1, 45, 73.80999, 1.40999, 1, 1, 45, 156.57, 0.98, 1, 1, 44, 380.59, 0.75999, 1 ] } }, "head": { @@ -241,7 +252,7 @@ "type": "mesh", "uvs": [ 0.49583, 0.01984, 0.3073, 0.05802, 0.14319, 0.17024, 0.0279, 0.36227, 0.04553, 0.57745, 0.16625, 0.73247, 0.18795, 0.84353, 0.30324, 0.96963, 0.42124, 0.91063, 0.58535, 0.94649, 0.76303, 0.93261, 0.8694, 0.78599, 0.96783, 0.65033, 0.93351, 0.55575, 0.91494, 0.50457, 0.93281, 0.4436, 0.96241, 0.34261, 0.84983, 0.16792, 0.70199, 0.06496, 0.71827, 0.40045, 0.55822, 0.46524, 0.67191, 0.56924, 0.61248, 0.74982, 0.29238, 0.552, 0.68707, 0.30096, 0.49719, 0.316, 0.38868, 0.29286, 0.30595, 0.24312, 0.32494, 0.40508, 0.4036, 0.55663, 0.63282, 0.6862, 0.75489, 0.67579, 0.72156, 0.43445, 0.60178, 0.47123, 0.67975, 0.53995, 0.86841, 0.4929 ], "triangles": [ 7, 6, 8, 10, 9, 22, 9, 8, 22, 10, 22, 11, 22, 8, 23, 23, 8, 5, 8, 6, 5, 11, 22, 31, 22, 30, 31, 11, 31, 12, 23, 29, 22, 22, 29, 30, 5, 4, 23, 29, 20, 30, 30, 21, 31, 30, 20, 21, 31, 13, 12, 31, 14, 13, 31, 21, 14, 4, 3, 23, 21, 35, 14, 21, 34, 35, 20, 33, 21, 21, 33, 34, 23, 28, 29, 20, 29, 28, 20, 28, 25, 25, 28, 26, 23, 3, 28, 27, 3, 2, 3, 27, 28, 34, 32, 35, 34, 33, 32, 14, 35, 15, 15, 35, 19, 32, 33, 19, 33, 20, 19, 20, 24, 19, 20, 25, 24, 16, 15, 19, 19, 35, 32, 28, 27, 26, 19, 24, 16, 24, 17, 16, 18, 24, 25, 25, 26, 0, 24, 18, 17, 18, 25, 0, 27, 1, 26, 26, 1, 0, 27, 2, 1 ], - "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.33, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.14, 26.24, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.06, 1, 1, 47, 10.7, -8.62, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.7, -44.64, 1, 1, 48, 27.89, -48.41, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.91, -45.89, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.05, 1, 1, 48, 86.81, -25.91, 1, 1, 48, 92.45, -10.29, 1, 1, 48, 60.63, -22.97, 1, 1, 48, 49.77, -12.03, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.73, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.7, 1, 1, 48, 63.85, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.66, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.39, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.07, -38.41999, 1 ], + "vertices": [ 1, 48, 90.83, 8.14, 1, 1, 48, 81.69999, 22.32999, 1, 1, 48, 66.16, 32, 1, 1, 48, 44.34, 34.97, 1, 1, 48, 24.13999, 26.23999, 1, 1, 48, 12.71, 11.09, 1, 1, 47, 17.77, 6.05999, 1, 1, 47, 10.69999, -8.61999, 1, 1, 48, 2.94, -15.85, 1, 1, 48, 4.23, -30.53, 1, 1, 48, 10.69999, -44.63999, 1, 1, 48, 27.88999, -48.40999, 1, 1, 48, 43.79, -51.9, 1, 1, 48, 51.90999, -45.88999, 1, 1, 48, 56.29, -42.63, 1, 1, 48, 62.68, -42.04, 1, 1, 48, 73.26, -41.04999, 1, 1, 48, 86.80999, -25.90999, 1, 1, 48, 92.44999, -10.28999, 1, 1, 48, 60.63, -22.96999, 1, 1, 48, 49.77, -12.02999, 1, 1, 48, 43.04, -24.87, 1, 1, 48, 23.94, -26.1, 1, 1, 48, 33.72999, 6.84, 1, 1, 48, 69.3, -17.04999, 1, 1, 48, 62.36, -1.97, 1, 1, 48, 61.45, 7.69999, 1, 1, 48, 63.84999, 16.18, 1, 1, 48, 48.81, 9.14, 1, 1, 48, 36.5, -2.43, 1, 1, 48, 30.65999, -25.62, 1, 1, 48, 35.18999, -35.29, 1, 1, 48, 57.45, -24.38999, 1, 1, 48, 50.45, -15.81, 1, 1, 48, 46.09, -24.53, 1, 1, 48, 56.06999, -38.41999, 1 ], "hull": 19, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 32, 34, 34, 36, 0, 36, 28, 30, 30, 32, 30, 38, 38, 40, 40, 42, 42, 28, 20, 22, 22, 24, 22, 44, 44, 46, 32, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 24, 26, 26, 28, 62, 26, 64, 66, 66, 40, 66, 68, 68, 70, 70, 64 ], "width": 87, @@ -260,11 +271,11 @@ { "time": 0.3333, "angle": -31.29 }, { "time": 0.5333, "angle": -44.75 }, { "time": 0.7333, "angle": -25.49 }, - { "time": 0.9, "angle": -9.45 }, + { "time": 0.8999, "angle": -9.45 }, { "time": 1.0666, "angle": 30.27 }, { "time": 1.2333, "angle": -10.1 }, { "time": 1.6333, "angle": -41.47 }, - { "time": 1.8, "angle": 30.27 } + { "time": 1.7999, "angle": 30.27 } ], "translate": [ { "time": 0, "x": -57.43, "y": -40.92 }, @@ -284,7 +295,7 @@ { "time": 0.4333, "x": 344.29, "y": -134.94 }, { "time": 0.5333, "x": 543.13, "y": -81.1 }, { "time": 0.7333, "x": 569.68, "y": -62.13 }, - { "time": 0.9, "x": 591.8, "y": -46.32 }, + { "time": 0.8999, "x": 591.8, "y": -46.32 }, { "time": 1.0666, "x": 653.14, @@ -296,7 +307,7 @@ { "time": 1.3333, "x": 986.94, "y": -153.35 }, { "time": 1.4333, "x": 1178.19, "y": -111.88 }, { "time": 1.6333, "x": 1195.1, "y": -62.1 }, - { "time": 1.8, "x": 1246.53, "y": -40.92 } + { "time": 1.7999, "x": 1246.53, "y": -40.92 } ] }, "front leg IK target": { @@ -311,32 +322,32 @@ "curve": [ 0.532, 0, 0.75, 1 ] }, { "time": 0.7333, "x": 566.43, "y": 107.27 }, - { "time": 0.9, "x": 1215.89, "y": 68.21 }, + { "time": 0.8999, "x": 1215.89, "y": 68.21 }, { "time": 1.0666, "x": 1235.47, "y": 15.8 }, { "time": 1.2333, "x": 1235.47, "y": 0.97 }, { "time": 1.5666, "x": 1230.15, "y": 3.76 }, { "time": 1.7, "x": 1244, "y": 26.76 }, - { "time": 1.8, "x": 1253.53, "y": 44.61 } + { "time": 1.7999, "x": 1253.53, "y": 44.61 } ] }, "front foot 1": { "rotate": [ { "time": 0, "angle": -48.38, "curve": "stepped" }, { "time": 0.3333, "angle": -48.38 }, - { "time": 0.7, "angle": -121.34 }, + { "time": 0.6999, "angle": -121.34 }, { "time": 0.8, "angle": -80.19 }, - { "time": 0.9, "angle": 45.59 }, + { "time": 0.8999, "angle": 45.59 }, { "time": 1.0666, "angle": 2.1 }, { "time": 1.2333, "angle": 4.65 }, { "time": 1.5666, "angle": 5.66 }, - { "time": 1.8, "angle": -48.38 } + { "time": 1.7999, "angle": -48.38 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.6, "x": 1, "y": 1 }, { "time": 0.6333, "x": 0.954, "y": 1 }, { "time": 0.7666, "x": 0.82, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1 }, { "time": 1.0666, "x": 0.851, "y": 1 }, { "time": 1.3666, "x": 1, "y": 1 } ] @@ -348,12 +359,12 @@ { "time": 0.5, "angle": 34.84 }, { "time": 0.5333, "angle": 30.32 }, { "time": 0.5666, "angle": 61.67 }, - { "time": 0.7, "angle": -19.47 }, - { "time": 0.9, "angle": -0.12 }, + { "time": 0.6999, "angle": -19.47 }, + { "time": 0.8999, "angle": -0.12 }, { "time": 1.0666, "angle": -7.21 }, { "time": 1.2333, "angle": -11.34 }, { "time": 1.5666, "angle": -11.23 }, - { "time": 1.8, "angle": 36.32 } + { "time": 1.7999, "angle": 36.32 } ] }, "back leg IK target": { @@ -361,15 +372,15 @@ { "time": 0, "x": 516.79, "y": 86.68 }, { "time": 0.1666, "x": 523.71, "y": 16.63 }, { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, - { "time": 0.7, "x": 523.03, "y": -5 }, - { "time": 0.9, "x": 551.31, "y": 41.86 }, + { "time": 0.6999, "x": 523.03, "y": -5 }, + { "time": 0.8999, "x": 551.31, "y": 41.86 }, { "time": 1.0666, "x": 554.24, "y": 44.45 }, { "time": 1.1333, "x": 555.44, "y": 44.74 }, { "time": 1.2, "x": 556.6, "y": 46.19, "curve": "stepped" }, { "time": 1.4333, "x": 556.6, "y": 46.19 }, { "time": 1.5, "x": 746.96, "y": 74.82 }, { "time": 1.6333, "x": 1127.68, "y": 103.61 }, - { "time": 1.8, "x": 1820.75, "y": 86.68 } + { "time": 1.7999, "x": 1820.75, "y": 86.68 } ] }, "back foot 1": { @@ -377,32 +388,32 @@ { "time": 0, "angle": 74.17 }, { "time": 0.1666, "angle": -17.01 }, { "time": 0.3333, "angle": 5.05 }, - { "time": 0.7, "angle": 3.74 }, - { "time": 0.9, "angle": -65.56 }, + { "time": 0.6999, "angle": 3.74 }, + { "time": 0.8999, "angle": -65.56 }, { "time": 1.6333, "angle": -92.52 }, - { "time": 1.8, "angle": 74.17 } + { "time": 1.7999, "angle": 74.17 } ], "scale": [ { "time": 0, "x": 0.824, "y": 1 }, { "time": 0.1666, "x": 0.754, "y": 1 }, { "time": 0.3333, "x": 0.589, "y": 1 }, { "time": 0.5666, "x": 0.909, "y": 1 }, - { "time": 0.9, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 1.4, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 1.3999, "x": 1, "y": 1 }, { "time": 1.5, "x": 0.844, "y": 1 }, - { "time": 1.8, "x": 0.824, "y": 1 } + { "time": 1.7999, "x": 0.824, "y": 1 } ] }, "back foot 2": { "rotate": [ { "time": 0, "angle": 8.13 }, { "time": 0.1666, "angle": -3.21 }, - { "time": 0.7, "angle": -1.14 }, - { "time": 0.9, "angle": 34.12 }, + { "time": 0.6999, "angle": -1.14 }, + { "time": 0.8999, "angle": 34.12 }, { "time": 1.4333, "angle": 46.68 }, { "time": 1.5333, "angle": -15.6 }, { "time": 1.6333, "angle": -11.91 }, - { "time": 1.8, "angle": 8.13 } + { "time": 1.7999, "angle": 8.13 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -416,12 +427,12 @@ { "time": 0.1666, "angle": -37.29 }, { "time": 0.3333, "angle": 30.66 }, { - "time": 0.9, + "time": 0.8999, "angle": -53.28, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 36 }, - { "time": 1.8, "angle": -39.71 } + { "time": 1.7999, "angle": -39.71 } ] }, "neck 1": { @@ -434,7 +445,7 @@ { "time": 1.1666, "angle": 23.95 }, { "time": 1.2333, "angle": 36.37 }, { "time": 1.6333, "angle": 41.16 }, - { "time": 1.8, "angle": 21.95 } + { "time": 1.7999, "angle": 21.95 } ] }, "neck 2": { @@ -444,11 +455,11 @@ { "time": 0.2666, "angle": 8.84 }, { "time": 0.3333, "angle": 30.71 }, { "time": 0.7333, "angle": -3.36 }, - { "time": 0.9, "angle": -17.57 }, + { "time": 0.8999, "angle": -17.57 }, { "time": 1.1666, "angle": 2.19 }, { "time": 1.2333, "angle": 15.25 }, { "time": 1.6333, "angle": 4.41 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "head": { @@ -459,11 +470,11 @@ { "time": 0.3333, "angle": 13.1 }, { "time": 0.5, "angle": 13.1 }, { "time": 0.7333, "angle": -18.9 }, - { "time": 0.9, "angle": -41.77 }, + { "time": 0.8999, "angle": -41.77 }, { "time": 1.1666, "angle": -4 }, { "time": 1.2333, "angle": -2.35 }, { "time": 1.6333, "angle": -22.89 }, - { "time": 1.8, "angle": -22.93 } + { "time": 1.7999, "angle": -22.93 } ] }, "back arm 1": { @@ -472,11 +483,11 @@ { "time": 0.1666, "angle": -18.65 }, { "time": 0.3333, "angle": 324.98 }, { "time": 0.5666, "angle": -6.41 }, - { "time": 0.9, "angle": -14.83 }, + { "time": 0.8999, "angle": -14.83 }, { "time": 1.0666, "angle": -16.9 }, { "time": 1.2333, "angle": 1.49 }, - { "time": 1.4, "angle": 2.56 }, - { "time": 1.8, "angle": -17.23 } + { "time": 1.3999, "angle": 2.56 }, + { "time": 1.7999, "angle": -17.23 } ], "translate": [ { "time": 0, "x": -14.25, "y": -6.6 } @@ -494,7 +505,7 @@ { "time": 1.2333, "x": 0.956, "y": 1 }, { "time": 1.4333, "x": 2.315, "y": 1 }, { "time": 1.6333, "x": 0.774, "y": 1 }, - { "time": 1.8, "x": 2.186, "y": 1 } + { "time": 1.7999, "x": 2.186, "y": 1 } ] }, "front leg 1": { @@ -518,18 +529,18 @@ "y": 1, "curve": [ 0.532, 0, 0.75, 1 ] }, - { "time": 0.7, "x": 1, "y": 1 }, - { "time": 0.9, "x": 2.248, "y": 1 }, + { "time": 0.6999, "x": 1, "y": 1 }, + { "time": 0.8999, "x": 2.248, "y": 1 }, { "time": 1.0666, "x": 2.002, "y": 1 }, { "time": 1.2333, "x": 1.495, "y": 1 }, { - "time": 1.3, + "time": 1.2999, "x": 1.047, "y": 1, "curve": [ 0.339, 0.58, 0.764, 1 ] }, { "time": 1.4333, "x": 0.779, "y": 0.762 }, - { "time": 1.8, "x": 1, "y": 1 } + { "time": 1.7999, "x": 1, "y": 1 } ] }, "front leg IK 2": { @@ -543,12 +554,12 @@ { "time": 0.1666, "angle": 17.37 }, { "time": 0.3333, "angle": 31.94 }, { - "time": 0.9, + "time": 0.8999, "angle": 4.76, "curve": [ 0.708, 0.01, 0.75, 1 ] }, { "time": 1.2333, "angle": 39.96 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "spine 2": { @@ -561,7 +572,7 @@ { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -6.69 }, { "time": 1.6333, "angle": -2.5 }, - { "time": 1.8, "angle": -3.49 } + { "time": 1.7999, "angle": -3.49 } ] }, "spine 3": { @@ -571,11 +582,11 @@ { "time": 0.3333, "angle": -9.02 }, { "time": 0.5, "angle": -2.65 }, { "time": 0.7333, "angle": -10.53 }, - { "time": 0.9, "angle": -16.16 }, + { "time": 0.8999, "angle": -16.16 }, { "time": 1.1666, "angle": -11.57 }, { "time": 1.2333, "angle": -9.02 }, { "time": 1.6333, "angle": -7.26 }, - { "time": 1.8, "angle": -20.41 } + { "time": 1.7999, "angle": -20.41 } ] }, "back arm 3": { @@ -584,22 +595,22 @@ { "time": 0.1666, "angle": 53.14 }, { "time": 0.3333, "angle": 116.25 }, { "time": 0.5666, "angle": 35.72 }, - { "time": 0.9, "angle": 39.32 }, + { "time": 0.8999, "angle": 39.32 }, { "time": 1.0666, "angle": 41.19 }, { "time": 1.2333, "angle": 78.09 }, - { "time": 1.4, "angle": 36.16 }, - { "time": 1.8, "angle": 26.23 } + { "time": 1.3999, "angle": 36.16 }, + { "time": 1.7999, "angle": 26.23 } ] }, "back foot 3": { "rotate": [ { "time": 0, "angle": 11.35 }, - { "time": 0.7, "angle": -4.24 }, - { "time": 0.9, "angle": 25.48, "curve": "stepped" }, + { "time": 0.6999, "angle": -4.24 }, + { "time": 0.8999, "angle": 25.48, "curve": "stepped" }, { "time": 1.4333, "angle": 25.48 }, { "time": 1.5333, "angle": -30.51 }, { "time": 1.6333, "angle": -20.54 }, - { "time": 1.8, "angle": 11.35 } + { "time": 1.7999, "angle": 11.35 } ], "scale": [ { "time": 0, "x": 1, "y": 1 }, @@ -614,11 +625,11 @@ { "time": 0.3333, "angle": -24.32 }, { "time": 0.5, "angle": -13.37 }, { "time": 0.7333, "angle": 21.61 }, - { "time": 0.9, "angle": 46.61 }, + { "time": 0.8999, "angle": 46.61 }, { "time": 1.1666, "angle": -28.69 }, { "time": 1.2333, "angle": -43.33 }, { "time": 1.6333, "angle": 24.89 }, - { "time": 1.8, "angle": 10.81 } + { "time": 1.7999, "angle": 10.81 } ] }, "spine 4": { @@ -628,11 +639,11 @@ { "time": 0.3333, "angle": -0.82 }, { "time": 0.5, "angle": 4.13 }, { "time": 0.7333, "angle": -3.74 }, - { "time": 0.9, "angle": -9.37 }, + { "time": 0.8999, "angle": -9.37 }, { "time": 1.1666, "angle": -9.02 }, { "time": 1.2333, "angle": -0.82 }, { "time": 1.6333, "angle": 3.81 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "front foot 2": { @@ -642,12 +653,12 @@ { "time": 0.3333, "angle": -0.2 }, { "time": 0.5, "angle": 22.72 }, { "time": 0.5333, "angle": 26.87 }, - { "time": 0.7, "angle": -39.25 }, - { "time": 0.9, "angle": 11.26 }, + { "time": 0.6999, "angle": -39.25 }, + { "time": 0.8999, "angle": 11.26 }, { "time": 1.0666, "angle": -18.17 }, { "time": 1.2333, "angle": -2.64 }, { "time": 1.5666, "angle": -5.84 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ] }, "belly": { @@ -660,7 +671,7 @@ { "time": 1.1, "x": -0.44, "y": -1.45 }, { "time": 1.2333, "x": 12.37, "y": 2.32 }, { "time": 1.3666, "x": 11.51, "y": 5.52 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "butt": { @@ -669,7 +680,7 @@ { "time": 0.7666, "x": 9.88, "y": -25.41 }, { "time": 0.8333, "x": 15.89, "y": -41.88 }, { "time": 1.2333, "x": -12.49, "y": -32.99 }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] } }, @@ -688,7 +699,7 @@ { "time": 1.4333, "offset": 110, - "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56073, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + "vertices": [ 2.52801, 0.00428, -0.03569, -4.90118, -3.71691, -3.19396, -4.88018, -0.43807, 5.17279, -0.0625, 5.1499, -0.47689, -0.07238, -10.06842, -7.6351, -6.56072, 6.64205, -0.09958, 6.61151, -0.62642, -0.09275, -12.93914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] }, { "time": 1.5 } ] @@ -698,11 +709,11 @@ { "time": 1.4333 }, { "time": 1.5, - "vertices": [ 4.67718, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17206 ] + "vertices": [ 4.67718, -35.44354, 0, 0, -11.37145, 49.53738, -20.9989, -109.72335, 65.45837, -90.53627, -9.56652, -24.74755, 11.45202, -23.93551, -19.07189, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30163, -100.17205 ] }, { "time": 1.5666, - "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62085, -280.84912 ] + "vertices": [ -0.9635, -22.43963, 0, 0, -13.80389, 27.61459, -41.00646, -55.15969, 7.62652, -96.25755, -24.12603, -24.11285, 7.19531, -37.8742, -31.47302, 7.7796, -12.34545, -3.32328, 26.55981, -38.73887, 0, 0, -13.62084, -280.84912 ] }, { "time": 1.6666 } ] @@ -713,7 +724,7 @@ { "time": 0.3333, "offset": 164, - "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28855, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] + "vertices": [ -0.01179, 0.02892, 0.00916, 0.0298, 0, 0, 1.17781, 0.89835, 1.48062, -0.04942, -6.68858, -1.30628, 4.38937, 4.03925, 4.59583, 3.27733, 5.6365, -0.11034, -4.92264, -0.8036, 4.54262, 1.06504, 3.29334, 0.58413, 2.94213, -1.40271, -4.28854, -0.56444, 5.07102, -0.21189, 2.9589, -0.75665, 1.83513, -2.22983, -4.31061, 0.62609, 6.11537, -0.87568, 3.79229, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17403, 0.22007, 0.27403, 0.06015 ] }, { "time": 0.5333, @@ -746,11 +757,11 @@ { "time": 0.5666 }, { "time": 0.6333, - "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] + "vertices": [ 0.16365, -9.90768, 0, 0, -1.90419, 16.99049, 16.55858, -93.67209, 21.4361, -76.03694, -0.72391, -31.37989, 8.21379, -30.29725, -24.90732, 16.177, -28.83566, 5.62575, 82.90021, -63.82897, 0, 0, -39.50021, -13.99932 ] }, { - "time": 0.7, - "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + "time": 0.6999, + "vertices": [ 0.20397, -12.34891, 0, 0, -2.37338, 21.17691, 20.63858, -116.75268, 26.71791, -94.77227, -0.90228, -39.11182, 10.23765, -37.76242, -31.04443, 20.16297, -35.9407, 7.01193, 22.68159, 24.72714, 0, 0, -292.39255, -342.79443 ] }, { "time": 0.8 } ] diff --git a/spine-ts/webgl/example/assets/tank.json b/spine-ts/webgl/example/assets/tank.json index cab50642b..b483fe274 100644 --- a/spine-ts/webgl/example/assets/tank.json +++ b/spine-ts/webgl/example/assets/tank.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "6mxwgn4gKXrDy2eixknadUxKY1c", "spine": "3.4.02", "width": 1914.53, "height": 964.05, "images": "./images/" }, +"skeleton": { + "hash": "3D6Wg/yburZo4+HY07odCSnGNKI", + "spine": "3.5.03-beta", + "width": 1914.53, + "height": 964.05, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "tankRoot", "parent": "root", "y": 200 }, @@ -15,8 +22,8 @@ { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, { "name": "cannonConnector", "parent": "guntower", "x": -235.04, "y": 96.07 }, { "name": "cannonTarget", "parent": "tankRoot", "x": -1486.66, "y": 351.82, "color": "ff3f00ff" }, - { "name": "cannon", "parent": "cannonConnector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, - { "name": "cannonTip", "parent": "cannon", "x": 946.68, "color": "ff4000ff" }, + { "name": "cannon", "parent": "cannonConnector", "length": 946.67, "rotation": 180, "color": "ff4000ff" }, + { "name": "cannonTip", "parent": "cannon", "x": 946.67, "color": "ff4000ff" }, { "name": "machineGunTarget", "parent": "tankRoot", "x": -1474, "y": 559.42, "color": "ff3f00ff" }, { "name": "machinegun-mount", @@ -83,7 +90,7 @@ { "name": "tread34", "parent": "tread33", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread35", "parent": "tread34", "length": 82, "x": 82, "color": "e64344ff" }, { "name": "tread36", "parent": "tread35", "length": 82, "x": 82, "color": "e64344ff" }, - { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.56 }, + { "name": "wheel-midCenter", "parent": "tankRoot", "y": -114.55 }, { "name": "treadCollider1", "parent": "wheel-midCenter", "x": -329.57, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider2", "parent": "wheel-midCenter", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, { "name": "treadCollider3", "parent": "wheel-midCenter", "y": -85.44, "color": "ff00fbff" }, @@ -305,11 +312,13 @@ "ik": [ { "name": "cannonTarget", + "order": 0, "bones": [ "cannon" ], "target": "cannonTarget" }, { "name": "machineGunTarget", + "order": 1, "bones": [ "machinegun" ], "target": "machineGunTarget", "mix": 0 @@ -318,15 +327,17 @@ "transform": [ { "name": "wheel-big", + "order": 8, "bones": [ "wheel-big2" ], "target": "wheel-big1", - "rotation": 65.6, + "rotation": 65.59, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, { "name": "wheel-mid1", + "order": 3, "bones": [ "wheel-mid2", "wheel-mid4" ], "target": "wheel-mid1", "rotation": 93, @@ -336,6 +347,7 @@ }, { "name": "wheel-mid2", + "order": 4, "bones": [ "wheel-mid3", "wheel-mid5" ], "target": "wheel-mid1", "rotation": -89, @@ -345,6 +357,7 @@ }, { "name": "wheel-mid3", + "order": 5, "bones": [ "wheel-mid6" ], "target": "wheel-mid1", "rotation": -152.6, @@ -354,6 +367,7 @@ }, { "name": "wheel-small1", + "order": 6, "bones": [ "wheel-small2" ], "target": "wheel-small1", "rotation": 87, @@ -363,6 +377,7 @@ }, { "name": "wheel-small2", + "order": 7, "bones": [ "wheel-small3" ], "target": "wheel-small1", "rotation": 54.9, @@ -374,6 +389,7 @@ "path": [ { "name": "treads", + "order": 2, "bones": [ "tread", "tread2", @@ -423,7 +439,7 @@ "type": "mesh", "uvs": [ 0.64286, 0.07875, 0.65354, 0.15349, 0.66324, 0.22137, 0.67367, 0.29433, 0.68383, 0.36543, 0.69359, 0.43374, 0.7031, 0.50029, 0.71311, 0.5703, 0.72327, 0.64138, 0.73406, 0.71688, 0.7444, 0.78929, 0.75614, 0.8714, 0.76905, 0.9431, 1, 0.9431, 1, 1, 0, 1, 0, 0.9431, 0.20105, 0.9431, 0.20105, 0.87093, 0.21461, 0.78846, 0.22651, 0.71606, 0.23885, 0.64098, 0.25035, 0.57104, 0.26206, 0.49983, 0.27306, 0.4329, 0.2843, 0.36453, 0.29592, 0.29381, 0.308, 0.22037, 0.319, 0.15345, 0.33141, 0.07795, 0.34423, 0, 0.6316, 0 ], "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], - "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 3, 9, 84.73, -3.37, 0.0625, 10, 42.73, -3.37, 0.625, 11, 0.73, -3.37, 0.3125, 3, 9, 64.16, -3.59, 0.3125, 10, 22.16, -3.59, 0.625, 11, -19.83, -3.59, 0.0625, 3, 8, 84.06, -3.82, 0.0625, 9, 42.06, -3.82, 0.625, 10, 0.06, -3.82, 0.3125, 3, 8, 62.51, -4.04, 0.3125, 9, 20.51, -4.04, 0.625, 10, -21.48, -4.04, 0.0625, 3, 7, 83.81, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.65, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.91, 0.3125, 7, 20.9, -4.91, 0.625, 8, -21.09, -4.91, 0.0625, 3, 5, 5.14, 80.01999, 0.0625, 6, 40.02, -5.14, 0.625, 7, -1.97, -5.14, 0.3125, 3, 5, 5.37, 58.08, 0.375, 6, 18.08, -5.37, 0.5625, 7, -23.91, -5.37, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.91, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 10.99, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.99, 11.48, 1, 1, 5, -6.57, 11.48, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.27, 58.33, 0.375, 6, 18.33, 6.27, 0.5625, 7, -23.66, 6.27, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.74, 0.3125, 7, 21.02, 5.74, 0.625, 8, -20.96999, 5.74, 0.0625, 3, 6, 84.21, 5.49, 0.0625, 7, 42.21, 5.49, 0.625, 8, 0.21, 5.49, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.07, 4.98999, 0.0625, 8, 42.07, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.78, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.21, 4.73999, 0.0625, 3, 8, 84.21, 4.48, 0.0625, 9, 42.21, 4.48, 0.625, 10, 0.21, 4.48, 0.3125, 3, 9, 64.46, 4.21999, 0.3125, 10, 22.46, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.74, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], + "vertices": [ 2, 10, 65.37999, -3.14, 0.3125, 11, 23.37999, -3.14, 0.6875, 3, 9, 84.73, -3.36999, 0.0625, 10, 42.72999, -3.36999, 0.625, 11, 0.73, -3.36999, 0.3125, 3, 9, 64.16, -3.58999, 0.3125, 10, 22.15999, -3.58999, 0.625, 11, -19.82999, -3.58999, 0.0625, 3, 8, 84.05999, -3.81999, 0.0625, 9, 42.06, -3.81999, 0.625, 10, 0.05999, -3.81999, 0.3125, 3, 8, 62.50999, -4.03999, 0.3125, 9, 20.51, -4.03999, 0.625, 10, -21.47999, -4.03999, 0.0625, 3, 7, 83.80999, -4.25, 0.0625, 8, 41.81, -4.25, 0.625, 9, -0.18, -4.25, 0.3125, 3, 7, 63.65, -4.46, 0.3125, 8, 21.64999, -4.46, 0.625, 9, -20.34, -4.46, 0.0625, 3, 6, 84.43, -4.67999, 0.0625, 7, 42.43, -4.67999, 0.625, 8, 0.43, -4.67999, 0.3125, 3, 6, 62.9, -4.90999, 0.3125, 7, 20.89999, -4.90999, 0.625, 8, -21.09, -4.90999, 0.0625, 3, 5, 5.13999, 80.01999, 0.0625, 6, 40.02, -5.13999, 0.625, 7, -1.97, -5.13999, 0.3125, 3, 5, 5.36999, 58.08, 0.375, 6, 18.07999, -5.36999, 0.5625, 7, -23.90999, -5.36999, 0.0625, 1, 5, 5.63, 33.2, 1, 1, 5, 5.90999, 11.47999, 1, 1, 5, 11, 11.47999, 1, 1, 5, 10.98999, -5.75, 1, 1, 5, -11, -5.75, 1, 1, 5, -10.98999, 11.47999, 1, 1, 5, -6.57, 11.47999, 1, 1, 5, -6.57, 33.34, 1, 3, 5, -6.26999, 58.33, 0.375, 6, 18.32999, 6.26999, 0.5625, 7, -23.65999, 6.26999, 0.0625, 3, 5, -6.01, 80.26999, 0.0625, 6, 40.27, 6.01, 0.625, 7, -1.72, 6.01, 0.3125, 3, 6, 63.02, 5.73999, 0.3125, 7, 21.02, 5.73999, 0.625, 8, -20.96999, 5.73999, 0.0625, 3, 6, 84.20999, 5.48999, 0.0625, 7, 42.20999, 5.48999, 0.625, 8, 0.20999, 5.48999, 0.3125, 3, 7, 63.79, 5.23, 0.3125, 8, 21.79, 5.23, 0.625, 9, -20.2, 5.23, 0.0625, 3, 7, 84.06999, 4.98999, 0.0625, 8, 42.06999, 4.98999, 0.625, 9, 0.07, 4.98999, 0.3125, 3, 8, 62.77999, 4.73999, 0.3125, 9, 20.78, 4.73999, 0.625, 10, -21.20999, 4.73999, 0.0625, 3, 8, 84.20999, 4.48, 0.0625, 9, 42.20999, 4.48, 0.625, 10, 0.20999, 4.48, 0.3125, 3, 9, 64.45999, 4.21999, 0.3125, 10, 22.45999, 4.21999, 0.625, 11, -19.53, 4.21999, 0.0625, 3, 9, 84.73999, 3.98, 0.0625, 10, 42.74, 3.98, 0.625, 11, 0.74, 3.98, 0.3125, 2, 10, 65.62, 3.7, 0.3125, 11, 23.62, 3.7, 0.6875, 1, 11, 47.24, 3.42, 1, 1, 11, 47.24, -2.89, 1 ], "hull": 32, "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], "width": 22, @@ -441,7 +457,7 @@ "type": "mesh", "uvs": [ 1, 0.03236, 1, 0.10602, 0.90987, 0.32859, 0.81975, 0.55116, 0.72962, 0.77372, 0.6395, 0.99629, 0.42157, 0.99629, 0.20364, 0.99629, 0, 0.85433, 0, 0.69901, 0.02267, 0.52884, 0, 0.31444, 0.21601, 0.12998, 0.43367, 0, 0.63546, 0.0037, 0.48407, 0.77059, 0.31496, 0.52496, 0.64132, 0.19648, 0.21516, 0.76765, 0.58345, 0.5647, 0.68444, 0.40146, 0.46758, 0.36649, 0.28934, 0.34603 ], "triangles": [ 21, 22, 12, 11, 12, 22, 17, 21, 13, 17, 13, 14, 21, 12, 13, 21, 17, 20, 16, 22, 21, 10, 11, 22, 10, 22, 16, 19, 21, 20, 16, 21, 19, 18, 10, 16, 9, 10, 18, 15, 16, 19, 18, 16, 15, 8, 9, 18, 7, 8, 18, 6, 18, 15, 7, 18, 6, 14, 0, 1, 17, 14, 1, 2, 17, 1, 20, 17, 2, 3, 20, 2, 19, 20, 3, 4, 19, 3, 15, 19, 4, 5, 15, 4, 6, 15, 5 ], - "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.13, 1, 1, 12, 25.81, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.03, 0.66666, 1, 14, 53.27, 61.01, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.17, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.66, -56.13, 1, 2, 12, -28.43, 74.37, 0.41, 14, 28.43, -74.39, 0.58999, 2, 12, -4.91, 72.94999, 0.52, 14, 4.91, -72.94999, 0.48, 2, 12, -21.87, -30.57, 0.49, 14, 21.87, 30.56, 0.51, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.92, 0.49, 14, 4.25, -46.92, 0.51, 1, 14, 51.98, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.77, 0.51, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.51, 1, 14, 23.71, -23.98, 1, 1, 14, 43.68, -26.76, 1 ], + "vertices": [ 1, 12, 35.90999, 69.08, 1, 1, 12, 35.90999, 59.13, 1, 1, 12, 25.80999, 29.09, 1, 1, 12, 15.72, -0.94999, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.04, 1, 2, 12, -28.87, -61.04, 0.33333, 14, 28.87, 61.02999, 0.66666, 1, 14, 53.27, 61.00999, 1, 1, 14, 76.08, 41.83, 1, 1, 14, 71.16999, 21.62, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.37, -29.12, 1, 1, 14, 50.65999, -56.13, 1, 2, 12, -28.43, 74.37, 0.40999, 14, 28.43, -74.38999, 0.58999, 2, 12, -4.90999, 72.94999, 0.51999, 14, 4.90999, -72.94999, 0.47999, 2, 12, -21.87, -30.56999, 0.49, 14, 21.87, 30.55999, 0.50998, 1, 14, 40.81, -2.59999, 1, 2, 12, -4.25, 46.91999, 0.49, 14, 4.25, -46.91999, 0.50998, 1, 14, 51.97999, 30.14999, 1, 2, 12, -10.73999, -2.77999, 0.49, 14, 10.73999, 2.76999, 0.50998, 2, 12, 0.56, 19.25, 0.49, 14, -0.56, -19.25, 0.50998, 1, 14, 23.70999, -23.97999, 1, 1, 14, 43.68, -26.76, 1 ], "hull": 15, "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], "width": 112, @@ -796,7 +812,7 @@ "closed": true, "lengths": [ 182.41, 349, 472.77, 602.99, 780.46, 1052.96, 1133.44, 1218.43, 1298.34, 1382.7, 1465.57, 1546.11, 1628.02, 1707.73, 1794.36, 1876.75, 2158.69, 2321.34, 2438.56, 2579.42, 2745.35, 2919.23 ], "vertexCount": 66, - "vertices": [ 1, 83, 11.23, 41.86, 1, 1, 83, 0.78, 41.93999, 1, 1, 83, -34.72, 42.23, 1, 1, 63, -104.21, 0.41, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.64, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.13, 40.81, 1, 1, 81, -27.38, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.21, 96.63, 1, 1, 65, 43.87, 87.71, 1, 1, 65, 16.18, 103.34, 1, 1, 65, -33.66999, 94.2, 1, 1, 65, -99.35, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.92, 1, 1, 65, -33.53, -109.36, 1, 1, 69, -83.56, -66.08999, 1, 1, 69, -2.16, -67.89, 1, 2, 69, 56.68, -41.48, 0.67999, 58, -24.31, -41.49, 0.32, 1, 58, -26.58, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.41, -46.51, 0.74399, 58, 30.2, -46.51, 0.256, 1, 71, -0.32, -68.92, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.9, -44.73, 0.28799, 1, 59, -22.8, 16.24, 1, 1, 59, -1.42, 16.24, 1, 1, 59, 20.46999, 16.24, 1, 2, 73, -47.21, -47.45, 0.744, 59, 36.00999, -47.46, 0.25599, 1, 73, -0.28, -69.65, 1, 2, 73, 45.23, -47.26, 0.736, 60, -37.48, -47.26, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.13, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.39, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.57, -48.34, 0.25599, 1, 61, -20.89, 15.83, 1, 1, 61, -1.25, 15.83, 1, 1, 61, 15.78, 15.83, 1, 2, 77, -52.49, -48.21, 0.75999, 61, 28.45, -48.21, 0.24, 1, 77, -2.5, -68.92, 1, 2, 77, 55.72, -47.82, 0.752, 62, -28.88, -47.82, 0.248, 1, 62, -21.64, 16.69, 1, 1, 62, -0.48, 16.69, 1, 1, 62, 20.73, 16.69, 1, 2, 79, -53.65, -48.89, 0.76, 62, 25.96, -48.89, 0.23999, 1, 79, 2.27, -69.65, 1, 1, 79, 44.94, -69.74, 1, 1, 65, 1172.98, -85.6, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.07, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.52, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.07, 42.29, 1, 1, 85, 0.24, 42.74, 1, 1, 85, -29.63, 43.28, 1, 1, 64, -86.64, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.42, -0.89, 1 ], + "vertices": [ 1, 83, 11.22999, 41.86, 1, 1, 83, 0.77999, 41.93999, 1, 1, 83, -34.72, 42.22999, 1, 1, 63, -104.20999, 0.40999, 1, 1, 63, 0.07, 0.55, 1, 1, 63, 68.8, 0.63999, 1, 1, 81, 20.5, 43.47, 1, 1, 81, 1.12999, 40.81, 1, 1, 81, -27.37999, 36.84, 1, 1, 65, 147.06, 105, 1, 1, 65, 96.20999, 96.62999, 1, 1, 65, 43.86999, 87.70999, 1, 1, 65, 16.18, 103.33999, 1, 1, 65, -33.66999, 94.19999, 1, 1, 65, -99.34999, 81.25, 1, 1, 65, -122.04, -1.69, 1, 1, 65, -83.58, -47.91999, 1, 1, 65, -33.52999, -109.36, 1, 1, 69, -83.55999, -66.08999, 1, 1, 69, -2.16, -67.88999, 1, 2, 69, 56.68, -41.47999, 0.67998, 58, -24.30999, -41.49, 0.31999, 1, 58, -26.57999, 16.69, 1, 1, 58, -2.69, 16.69, 1, 1, 58, 13.51, 16.69, 1, 2, 71, -52.40999, -46.50999, 0.74399, 58, 30.2, -46.50999, 0.256, 1, 71, -0.31999, -68.91999, 1, 2, 71, 52.09, -44.72, 0.712, 59, -28.89999, -44.72999, 0.28799, 1, 59, -22.79999, 16.23999, 1, 1, 59, -1.41999, 16.23999, 1, 1, 59, 20.46999, 16.23999, 1, 2, 73, -47.20999, -47.45, 0.744, 59, 36.00999, -47.45999, 0.25598, 1, 73, -0.28, -69.65, 1, 2, 73, 45.22999, -47.25999, 0.736, 60, -37.47999, -47.25999, 0.26399, 1, 60, -23.76, 15.27, 1, 1, 60, -0.12999, 15.27, 1, 1, 60, 24.45, 15.27, 1, 2, 75, -47.36, -48.7, 0.74399, 60, 33.52, -48.7, 0.256, 1, 75, -0.49, -70.38999, 1, 2, 75, 49.09, -48.33, 0.744, 61, -33.56999, -48.34, 0.25598, 1, 61, -20.88999, 15.82999, 1, 1, 61, -1.25, 15.82999, 1, 1, 61, 15.77999, 15.82999, 1, 2, 77, -52.49, -48.20999, 0.75998, 61, 28.45, -48.20999, 0.23999, 1, 77, -2.5, -68.91999, 1, 2, 77, 55.72, -47.81999, 0.75199, 62, -28.87999, -47.81999, 0.24799, 1, 62, -21.63999, 16.69, 1, 1, 62, -0.47999, 16.69, 1, 1, 62, 20.72999, 16.69, 1, 2, 79, -53.65, -48.88999, 0.75999, 62, 25.95999, -48.88999, 0.23998, 1, 79, 2.26999, -69.65, 1, 1, 79, 44.93999, -69.73999, 1, 1, 65, 1172.98, -85.59999, 1, 1, 65, 1190.53, -42.24, 1, 1, 65, 1215.63, 19.75, 1, 1, 65, 1175.55, 76.62, 1, 1, 65, 1134.22, 95.06999, 1, 1, 65, 1128.4, 97.66, 1, 1, 65, 1081.79, 87.47, 1, 1, 65, 1017.16, 92.51999, 1, 1, 65, 977.9, 95.58, 1, 1, 85, 47.06999, 42.29, 1, 1, 85, 0.23999, 42.74, 1, 1, 85, -29.62999, 43.27999, 1, 1, 64, -86.63999, 1.35, 1, 1, 64, 0.49, 0.25, 1, 1, 64, 92.41999, -0.88999, 1 ], "color": "ff8819ff" } }, @@ -903,7 +919,7 @@ { "time": 1.2333, "angle": -19.78 }, { "time": 1.4666, "angle": 0 }, { "time": 1.6, "angle": 28.87 }, - { "time": 1.8, "angle": 0 } + { "time": 1.7999, "angle": 0 } ], "translate": [ { "time": 1.1, "x": 0, "y": 0 }, @@ -913,7 +929,7 @@ "y": 58.66, "curve": [ 0.352, 0, 0.828, 0.92 ] }, - { "time": 1.8, "x": 0, "y": 0 } + { "time": 1.7999, "x": 0, "y": 0 } ] }, "wheel-midRoot2": { @@ -932,8 +948,8 @@ "rotate": [ { "time": 1.5333, "angle": 0 }, { "time": 1.6333, "angle": -18.67 }, - { "time": 1.8, "angle": 0 }, - { "time": 1.9, "angle": 29.49 }, + { "time": 1.7999, "angle": 0 }, + { "time": 1.8999, "angle": 29.49 }, { "time": 2.0666, "angle": 0 } ], "translate": [ @@ -944,7 +960,7 @@ "curve": [ 0.16, 0.25, 0.813, 0.82 ] }, { - "time": 1.8, + "time": 1.7999, "x": 0, "y": 59.03, "curve": [ 0.376, 0.26, 0.879, 0.79 ] @@ -1027,14 +1043,14 @@ { "time": 2.4333, "angle": -23.6 }, { "time": 2.5666, "angle": 6.49 }, { "time": 2.6666, "angle": 29.93 }, - { "time": 2.8, "angle": -0.13 } + { "time": 2.7999, "angle": -0.13 } ], "translate": [ { "time": 2.3333, "x": 0, "y": 0 }, { "time": 2.4333, "x": 0, "y": 36.34 }, { "time": 2.5, "x": 0, "y": 56.39 }, { "time": 2.5666, "x": 0, "y": 61.34 }, - { "time": 2.8, "x": 0, "y": 2.04 } + { "time": 2.7999, "x": 0, "y": 2.04 } ] }, "wheel-midRoot6": { @@ -1051,7 +1067,7 @@ "y": 51.86, "curve": [ 0.346, 0, 0.852, 0.7 ] }, - { "time": 2.8, "x": 0, "y": 0 } + { "time": 2.7999, "x": 0, "y": 0 } ] }, "wheel-mid1": { @@ -1064,22 +1080,22 @@ { "time": 0.8, "angle": 120 }, { "time": 1.2333, "angle": 240 }, { "time": 1.6, "angle": 0 }, - { "time": 1.9, "angle": 120 }, + { "time": 1.8999, "angle": 120 }, { "time": 2.1666, "angle": 240 }, { "time": 2.4, "angle": 0 }, { "time": 2.5666, "angle": 120 }, { "time": 2.7333, "angle": 240 }, { "time": 2.9333, "angle": 0 }, - { "time": 3.1, "angle": 120 }, + { "time": 3.0999, "angle": 120 }, { "time": 3.2666, "angle": 240 }, { "time": 3.4333, "angle": 0 }, { "time": 3.6333, "angle": 120 }, - { "time": 3.8, "angle": 240 }, + { "time": 3.7999, "angle": 240 }, { "time": 3.9666, "angle": 0 }, { "time": 4.1666, "angle": 120 }, { "time": 4.3333, "angle": 240 }, { "time": 4.5, "angle": 0 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": 240 }, { "time": 5.2666, "angle": -67.99 } ] @@ -1113,7 +1129,7 @@ "curve": [ 0.188, 0.16, 0.75, 1 ] }, { - "time": 5.2, + "time": 5.1999, "angle": 4.47, "curve": [ 0.416, 0.01, 0.75, 1 ] }, @@ -1134,7 +1150,7 @@ }, { "time": 1.1, "angle": 120 }, { "time": 1.5333, "angle": 240 }, - { "time": 1.8, "angle": 360 }, + { "time": 1.7999, "angle": 360 }, { "time": 2.0333, "angle": 120 }, { "time": 2.2666, "angle": 240 }, { "time": 2.4666, "angle": 360 }, @@ -1143,11 +1159,11 @@ { "time": 3.1333, "angle": 360 }, { "time": 3.3666, "angle": 120 }, { "time": 3.5666, "angle": 240 }, - { "time": 3.8, "angle": -24 }, + { "time": 3.7999, "angle": -24 }, { "time": 4.0333, "angle": 120 }, { "time": 4.2333, "angle": 240 }, { "time": 4.4666, "angle": -24 }, - { "time": 4.7, "angle": 120 }, + { "time": 4.6999, "angle": 120 }, { "time": 4.8666, "angle": -143.99 }, { "time": 5.0666, @@ -1162,7 +1178,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 29.44 }, + { "time": 1.7999, "x": 0, "y": 29.44 }, { "time": 2.3333, "x": 0, "y": -0.52 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1176,7 +1192,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.4666, "x": 0, "y": 0 }, - { "time": 1.8, "x": 0, "y": 8.5 }, + { "time": 1.7999, "x": 0, "y": 8.5 }, { "time": 2.3333, "x": 0, "y": 34.74 }, { "time": 2.5666, "x": 0, "y": 5.2 }, { "time": 2.6666, "x": 0, "y": -11.05, "curve": "stepped" }, @@ -1193,7 +1209,7 @@ "angle": 0, "curve": [ 0.504, 0.11, 0.931, 0.71 ] }, - { "time": 0.7, "angle": 120 }, + { "time": 0.6999, "angle": 120 }, { "time": 1.1, "angle": 240 }, { "time": 1.4666, "angle": 360 }, { "time": 1.7666, "angle": 120 }, @@ -1204,7 +1220,7 @@ { "time": 2.7, "angle": 360 }, { "time": 2.8333, "angle": 120 }, { "time": 2.9666, "angle": 240 }, - { "time": 3.1, "angle": 360 }, + { "time": 3.0999, "angle": 360 }, { "time": 3.2333, "angle": 120 }, { "time": 3.3666, "angle": 240 }, { "time": 3.5, "angle": 360 }, @@ -1216,11 +1232,11 @@ { "time": 4.3, "angle": 360 }, { "time": 4.4333, "angle": 120 }, { "time": 4.5666, "angle": 240 }, - { "time": 4.7, "angle": 360 }, + { "time": 4.6999, "angle": 360 }, { "time": 4.8333, "angle": 120 }, { "time": 5, "angle": 240 }, { - "time": 5.2, + "time": 5.1999, "angle": -25.64, "curve": [ 0.181, 0.26, 0.75, 1 ] }, @@ -1245,7 +1261,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 2.3, + "time": 2.2999, "angle": 0.84, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1296,7 +1312,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1358,7 +1374,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1385,7 +1401,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1447,7 +1463,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1474,7 +1490,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1536,7 +1552,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1563,7 +1579,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1625,7 +1641,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1652,7 +1668,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1714,7 +1730,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1741,7 +1757,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 1.4, + "time": 1.3999, "angle": 0.61, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1803,7 +1819,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 6.1, + "time": 6.0999, "angle": -0.29, "curve": [ 0.25, 0, 0.75, 1 ] }, @@ -1844,7 +1860,7 @@ "angle": 6.15, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 5.6, "angle": -1.26 } + { "time": 5.5999, "angle": -1.26 } ] }, "cannon": { @@ -1879,7 +1895,7 @@ "time": 0, "curve": [ 0.549, 0, 0.907, 0.84 ] }, - { "time": 3.0333, "position": 0.51 }, + { "time": 3.0333, "position": 0.5099 }, { "time": 4.8666, "position": 0.9794 }, { "time": 5.2666, @@ -1888,7 +1904,7 @@ }, { "time": 5.5333, - "position": 1.02, + "position": 1.0199, "curve": [ 0.279, 0.32, 0.694, 0.99 ] }, { "time": 5.8333, "position": 1.021 } diff --git a/spine-ts/webgl/example/assets/vine.json b/spine-ts/webgl/example/assets/vine.json index 6fc78dc14..f4f48a1a2 100644 --- a/spine-ts/webgl/example/assets/vine.json +++ b/spine-ts/webgl/example/assets/vine.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "OTxn8PebJnSmjY8665bH7m360tk", "spine": "3.4.02", "width": 227.32, "height": 841.06, "images": "./images/" }, +"skeleton": { + "hash": "Lb8yfqsfTuFiRtjhPw5ZzTEPxik", + "spine": "3.5.03-beta", + "width": 227.32, + "height": 841.06, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "vine1", "parent": "root", "length": 74, "rotation": 90, "x": 339.09, "y": -467.15, "color": "f700ffff" }, @@ -27,6 +34,7 @@ "path": [ { "name": "vine-path", + "order": 0, "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], "target": "vine-path", "rotateMode": "chainScale" @@ -39,7 +47,7 @@ "type": "mesh", "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15384, 1, 0.1923, 1, 0.23076, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38461, 1, 0.42307, 1, 0.46153, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65384, 1, 0.6923, 1, 0.73076, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88461, 1, 0.92307, 1, 0.96153, 1, 1, 0.5, 1, 0, 1, 0, 0.96153, 0, 0.92307, 0, 0.88461, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73076, 0, 0.6923, 0, 0.65384, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46153, 0, 0.42307, 0, 0.38461, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23076, 0, 0.1923, 0, 0.15384, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15384, 0.5, 0.1923, 0.5, 0.23076, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38461, 0.5, 0.42307, 0.5, 0.46153, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65384, 0.5, 0.6923, 0.5, 0.73076, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88461, 0.5, 0.92307, 0.5, 0.96153 ], "triangles": [ 55, 0, 1, 56, 1, 2, 55, 1, 56, 56, 2, 3, 54, 55, 56, 57, 56, 3, 57, 3, 4, 53, 54, 57, 58, 57, 4, 53, 57, 58, 58, 4, 5, 52, 53, 58, 59, 58, 5, 54, 56, 57, 52, 58, 59, 59, 5, 6, 51, 52, 59, 60, 59, 6, 51, 59, 60, 60, 6, 7, 50, 51, 60, 61, 60, 7, 50, 60, 61, 61, 7, 8, 49, 50, 61, 62, 61, 8, 49, 61, 62, 62, 8, 9, 48, 49, 62, 63, 62, 9, 48, 62, 63, 63, 9, 10, 47, 48, 63, 64, 63, 10, 47, 63, 64, 64, 10, 11, 46, 47, 64, 65, 64, 11, 46, 64, 65, 65, 11, 12, 45, 46, 65, 66, 65, 12, 45, 65, 66, 66, 12, 13, 44, 45, 66, 67, 66, 13, 44, 66, 67, 67, 13, 14, 43, 44, 67, 68, 67, 14, 43, 67, 68, 68, 14, 15, 42, 43, 68, 69, 68, 15, 42, 68, 69, 69, 15, 16, 41, 42, 69, 70, 69, 16, 41, 69, 70, 70, 16, 17, 40, 41, 70, 71, 70, 17, 40, 70, 71, 71, 17, 18, 39, 40, 71, 72, 71, 18, 39, 71, 72, 72, 18, 19, 38, 39, 72, 73, 72, 19, 38, 72, 73, 73, 19, 20, 37, 38, 73, 74, 73, 20, 37, 73, 74, 74, 20, 21, 36, 37, 74, 75, 74, 21, 36, 74, 75, 75, 21, 22, 35, 36, 75, 76, 75, 22, 35, 75, 76, 76, 22, 23, 34, 35, 76, 77, 76, 23, 34, 76, 77, 77, 23, 24, 33, 77, 78, 78, 24, 25, 32, 33, 78, 79, 78, 25, 32, 78, 79, 33, 34, 77, 78, 77, 24, 31, 32, 79, 80, 79, 26, 31, 79, 80, 80, 26, 27, 30, 31, 80, 29, 80, 27, 30, 80, 29, 29, 27, 28, 79, 25, 26 ], - "vertices": [ 4, 10, 294, 33.89, 3.2E-4, 11, 220, 33.89, 0.01648, 12, 146, 33.89, 0.21526, 13, 72, 33.89, 0.76791, 3, 11, 220, -0.1, 0.00752, 12, 146, -0.1, 0.16869, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.2E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21526, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00195, 11, 183, -34.09999, 0.04739, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61714, 5, 9, 294, -34.09999, 2.4E-4, 10, 220, -34.09999, 0.01163, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.35531, 5, 9, 257, -34.09999, 0.00195, 10, 183, -34.09999, 0.04663, 11, 109, -34.09999, 0.31166, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.4E-4, 9, 220, -34.09999, 0.01163, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48685, 12, -1.99, -34.09999, 0.31174, 13, -75.99, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00195, 9, 183, -34.09999, 0.04663, 10, 109, -34.09999, 0.31166, 11, 35, -34.09999, 0.48685, 12, -38.99, -34.09999, 0.14101, 13, -112.99, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.4E-4, 8, 220, -34.09999, 0.01163, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48685, 11, -1.99, -34.09999, 0.31166, 12, -75.99, -34.09999, 0.04663, 13, -149.99, -34.09999, 0.00195, 7, 7, 257, -34.09999, 0.00195, 8, 183, -34.09999, 0.04663, 9, 109, -34.09999, 0.31166, 10, 35, -34.09999, 0.48685, 11, -38.99, -34.09999, 0.14101, 12, -112.99, -34.09999, 0.01163, 13, -186.99, -34.09999, 2.4E-4, 7, 6, 294, -34.09999, 2.4E-4, 7, 220, -34.09999, 0.01163, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48685, 10, -1.99, -34.09999, 0.31166, 11, -75.99, -34.09999, 0.04663, 12, -149.99, -34.09999, 0.00195, 7, 6, 257, -34.09999, 0.00195, 7, 183, -34.09999, 0.04663, 8, 109, -34.09999, 0.31166, 9, 35, -34.09999, 0.48685, 10, -38.99, -34.09999, 0.14101, 11, -112.99, -34.09999, 0.01163, 12, -186.99, -34.09999, 2.4E-4, 7, 5, 294, -34.09999, 2.4E-4, 6, 220, -34.09999, 0.01163, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48685, 9, -1.99, -34.09999, 0.31166, 10, -75.99, -34.09999, 0.04663, 11, -149.99, -34.09999, 0.00195, 7, 5, 257, -34.09999, 0.00195, 6, 183, -34.09999, 0.04663, 7, 109, -34.09999, 0.31166, 8, 35, -34.09999, 0.48685, 9, -38.99, -34.09999, 0.14101, 10, -112.99, -34.09999, 0.01163, 11, -186.99, -34.09999, 2.4E-4, 7, 4, 294, -34.09999, 2.4E-4, 5, 220, -34.09999, 0.01163, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48685, 8, -1.99, -34.09999, 0.31166, 9, -75.99, -34.09999, 0.04663, 10, -149.99, -34.09999, 0.00195, 7, 4, 257, -34.09999, 0.00195, 5, 183, -34.09999, 0.04663, 6, 109, -34.09999, 0.31166, 7, 35, -34.09999, 0.48685, 8, -38.99, -34.09999, 0.14101, 9, -112.99, -34.09999, 0.01163, 10, -186.99, -34.09999, 2.4E-4, 7, 3, 294, -34.09999, 2.4E-4, 4, 220, -34.09999, 0.01163, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48685, 7, -1.99, -34.09999, 0.31166, 8, -75.99, -34.09999, 0.04663, 9, -149.99, -34.09999, 0.00195, 7, 3, 257, -34.09999, 0.00195, 4, 183, -34.09999, 0.04663, 5, 109, -34.09999, 0.31166, 6, 35, -34.09999, 0.48685, 7, -38.99, -34.09999, 0.14101, 8, -112.99, -34.09999, 0.01163, 9, -186.99, -34.09999, 2.4E-4, 7, 2, 294, -34.09999, 2.4E-4, 3, 220, -34.09999, 0.01163, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48685, 6, -1.99, -34.09999, 0.31166, 7, -75.99, -34.09999, 0.04663, 8, -149.99, -34.09999, 0.00195, 7, 2, 257, -34.09999, 0.00195, 3, 183, -34.09999, 0.04663, 4, 109, -34.09999, 0.31166, 5, 35, -34.09999, 0.48685, 6, -38.99, -34.09999, 0.14101, 7, -112.99, -34.09999, 0.01163, 8, -186.99, -34.09999, 2.4E-4, 7, 1, 294, -34.09999, 2.4E-4, 2, 220, -34.09999, 0.01163, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48685, 5, -1.99, -34.09999, 0.31166, 6, -75.99, -34.09999, 0.04663, 7, -149.99, -34.09999, 0.00195, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31166, 4, 35, -34.09999, 0.48685, 5, -38.99, -34.09999, 0.14101, 6, -112.99, -34.09999, 0.01163, 7, -186.99, -34.09999, 2.4E-4, 6, 1, 220, -34.09999, 0.01033, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48685, 4, -1.99, -34.09999, 0.31166, 5, -75.99, -34.09999, 0.04663, 6, -149.99, -34.09999, 0.00195, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48685, 4, -38.99, -34.09999, 0.14101, 5, -112.99, -34.09999, 0.01163, 6, -186.99, -34.09999, 2.4E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51233, 3, -1.99, -34.09999, 0.31166, 4, -75.99, -34.09999, 0.04663, 5, -149.99, -34.09999, 0.00195, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54594, 3, -38.99, -34.09999, 0.14101, 4, -112.99, -34.09999, 0.01163, 5, -186.99, -34.09999, 2.4E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39738, 3, -75.99, -34.09999, 0.04663, 4, -149.99, -34.09999, 0.00195, 4, 1, 35, -34.09999, 0.77978, 2, -38.99, -34.09999, 0.20825, 3, -112.99, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.4E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.99, -34.09999, 0.10696, 3, -149.99, -34.09999, 0.00271, 3, 1, -1.99, -0.1, 0.9264, 2, -75.99, -0.1, 0.07272, 3, -149.99, -0.1, 8.6E-4, 3, 1, -1.99, 33.89, 0.89032, 2, -75.99, 33.89, 0.10696, 3, -149.99, 33.89, 0.00271, 4, 1, 35, 33.89, 0.77978, 2, -38.99, 33.89, 0.20825, 3, -112.99, 33.89, 0.01171, 4, -186.99, 33.89, 2.4E-4, 4, 1, 72, 33.89, 0.55403, 2, -1.99, 33.89, 0.39738, 3, -75.99, 33.89, 0.04663, 4, -149.99, 33.89, 0.00195, 5, 1, 109, 33.89, 0.30116, 2, 35, 33.89, 0.54594, 3, -38.99, 33.89, 0.14101, 4, -112.99, 33.89, 0.01163, 5, -186.99, 33.89, 2.4E-4, 5, 1, 146, 33.89, 0.1274, 2, 72, 33.89, 0.51233, 3, -1.99, 33.89, 0.31166, 4, -75.99, 33.89, 0.04663, 5, -149.99, 33.89, 0.00195, 6, 1, 183, 33.89, 0.04058, 2, 109, 33.89, 0.31966, 3, 35, 33.89, 0.48685, 4, -38.99, 33.89, 0.14101, 5, -112.99, 33.89, 0.01163, 6, -186.99, 33.89, 2.4E-4, 6, 1, 220, 33.89, 0.01033, 2, 146, 33.89, 0.14256, 3, 72, 33.89, 0.48685, 4, -1.99, 33.89, 0.31166, 5, -75.99, 33.89, 0.04663, 6, -149.99, 33.89, 0.00195, 7, 1, 257, 33.89, 0.0017, 2, 183, 33.89, 0.04687, 3, 109, 33.89, 0.31166, 4, 35, 33.89, 0.48685, 5, -38.99, 33.89, 0.14101, 6, -112.99, 33.89, 0.01163, 7, -186.99, 33.89, 2.4E-4, 7, 1, 294, 33.89, 2.4E-4, 2, 220, 33.89, 0.01163, 3, 146, 33.89, 0.14101, 4, 72, 33.89, 0.48685, 5, -1.99, 33.89, 0.31166, 6, -75.99, 33.89, 0.04663, 7, -149.99, 33.89, 0.00195, 7, 2, 257, 33.89, 0.00195, 3, 183, 33.89, 0.04663, 4, 109, 33.89, 0.31166, 5, 35, 33.89, 0.48685, 6, -38.99, 33.89, 0.14101, 7, -112.99, 33.89, 0.01163, 8, -186.99, 33.89, 2.4E-4, 7, 2, 294, 33.89, 2.4E-4, 3, 220, 33.89, 0.01163, 4, 146, 33.89, 0.14101, 5, 72, 33.89, 0.48685, 6, -1.99, 33.89, 0.31166, 7, -75.99, 33.89, 0.04663, 8, -149.99, 33.89, 0.00195, 7, 3, 257, 33.89, 0.00195, 4, 183, 33.89, 0.04663, 5, 109, 33.89, 0.31166, 6, 35, 33.89, 0.48685, 7, -38.99, 33.89, 0.14101, 8, -112.99, 33.89, 0.01163, 9, -186.99, 33.89, 2.4E-4, 7, 3, 294, 33.89, 2.4E-4, 4, 220, 33.89, 0.01163, 5, 146, 33.89, 0.14101, 6, 72, 33.89, 0.48685, 7, -1.99, 33.89, 0.31166, 8, -75.99, 33.89, 0.04663, 9, -149.99, 33.89, 0.00195, 7, 4, 257, 33.89, 0.00195, 5, 183, 33.89, 0.04663, 6, 109, 33.89, 0.31166, 7, 35, 33.89, 0.48685, 8, -38.99, 33.89, 0.14101, 9, -112.99, 33.89, 0.01163, 10, -186.99, 33.89, 2.4E-4, 7, 4, 294, 33.89, 2.4E-4, 5, 220, 33.89, 0.01163, 6, 146, 33.89, 0.14101, 7, 72, 33.89, 0.48685, 8, -1.99, 33.89, 0.31166, 9, -75.99, 33.89, 0.04663, 10, -149.99, 33.89, 0.00195, 7, 5, 257, 33.89, 0.00195, 6, 183, 33.89, 0.04663, 7, 109, 33.89, 0.31166, 8, 35, 33.89, 0.48685, 9, -38.99, 33.89, 0.14101, 10, -112.99, 33.89, 0.01163, 11, -186.99, 33.89, 2.4E-4, 7, 5, 294, 33.89, 2.4E-4, 6, 220, 33.89, 0.01163, 7, 146, 33.89, 0.14101, 8, 72, 33.89, 0.48685, 9, -1.99, 33.89, 0.31166, 10, -75.99, 33.89, 0.04663, 11, -149.99, 33.89, 0.00195, 7, 6, 257, 33.89, 0.00195, 7, 183, 33.89, 0.04663, 8, 109, 33.89, 0.31166, 9, 35, 33.89, 0.48685, 10, -38.99, 33.89, 0.14101, 11, -112.99, 33.89, 0.01163, 12, -186.99, 33.89, 2.4E-4, 7, 6, 294, 33.89, 2.4E-4, 7, 220, 33.89, 0.01163, 8, 146, 33.89, 0.14101, 9, 72, 33.89, 0.48685, 10, -1.99, 33.89, 0.31166, 11, -75.99, 33.89, 0.04663, 12, -149.99, 33.89, 0.00195, 7, 7, 257, 33.89, 0.00195, 8, 183, 33.89, 0.04663, 9, 109, 33.89, 0.31166, 10, 35, 33.89, 0.48685, 11, -38.99, 33.89, 0.14101, 12, -112.99, 33.89, 0.01163, 13, -186.99, 33.89, 2.4E-4, 7, 7, 294, 33.89, 2.4E-4, 8, 220, 33.89, 0.01163, 9, 146, 33.89, 0.14101, 10, 72, 33.89, 0.48685, 11, -1.99, 33.89, 0.31166, 12, -75.99, 33.89, 0.04663, 13, -149.99, 33.89, 0.00195, 6, 8, 257, 33.89, 0.00195, 9, 183, 33.89, 0.04663, 10, 109, 33.89, 0.31166, 11, 35, 33.89, 0.48685, 12, -38.99, 33.89, 0.14101, 13, -112.99, 33.89, 0.01188, 6, 8, 294, 33.89, 2.4E-4, 9, 220, 33.89, 0.01163, 10, 146, 33.89, 0.14101, 11, 72, 33.89, 0.48685, 12, -1.99, 33.89, 0.31174, 13, -75.99, 33.89, 0.0485, 5, 9, 257, 33.89, 0.00195, 10, 183, 33.89, 0.04663, 11, 109, 33.89, 0.31166, 12, 35, 33.89, 0.48761, 13, -38.99, 33.89, 0.15212, 5, 9, 294, 33.89, 2.4E-4, 10, 220, 33.89, 0.01163, 11, 146, 33.89, 0.14109, 12, 72, 33.89, 0.49171, 13, -1.99, 33.89, 0.35531, 4, 10, 257, 33.89, 0.00195, 11, 183, 33.89, 0.04739, 12, 109, 33.89, 0.33351, 13, 35, 33.89, 0.61714, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31658, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00542, 11, 146, -0.1, 0.11402, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33273, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03045, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00542, 10, 146, -0.1, 0.11402, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.99, -0.1, 0.0311, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03045, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11402, 13, -112.99, -0.1, 0.00542, 6, 8, 220, -0.1, 0.00542, 9, 146, -0.1, 0.11402, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.99, -0.1, 0.03045, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03045, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11402, 12, -112.99, -0.1, 0.00542, 6, 7, 220, -0.1, 0.00542, 8, 146, -0.1, 0.11402, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.99, -0.1, 0.03045, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03045, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11402, 11, -112.99, -0.1, 0.00542, 6, 6, 220, -0.1, 0.00542, 7, 146, -0.1, 0.11402, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.99, -0.1, 0.03045, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03045, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11402, 10, -112.99, -0.1, 0.00542, 6, 5, 220, -0.1, 0.00542, 6, 146, -0.1, 0.11402, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.99, -0.1, 0.03045, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03045, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11402, 9, -112.99, -0.1, 0.00542, 6, 4, 220, -0.1, 0.00542, 5, 146, -0.1, 0.11402, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.99, -0.1, 0.03045, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03045, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11402, 8, -112.99, -0.1, 0.00542, 6, 3, 220, -0.1, 0.00542, 4, 146, -0.1, 0.11402, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.99, -0.1, 0.03045, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03045, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11402, 7, -112.99, -0.1, 0.00542, 6, 2, 220, -0.1, 0.00542, 3, 146, -0.1, 0.11402, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.99, -0.1, 0.03045, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03045, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11402, 6, -112.99, -0.1, 0.00542, 6, 1, 220, -0.1, 0.00477, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.99, -0.1, 0.03045, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11402, 5, -112.99, -0.1, 0.00542, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.99, -0.1, 0.03045, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11402, 4, -112.99, -0.1, 0.00542, 4, 1, 72, -0.1, 0.55929, 2, -1.99, -0.1, 0.40959, 3, -75.99, -0.1, 0.03045, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81845, 2, -38.99, -0.1, 0.17611, 3, -112.99, -0.1, 0.00542 ], + "vertices": [ 4, 10, 294, 33.88999, 3.1E-4, 11, 220, 33.88999, 0.01648, 12, 146, 33.88999, 0.21525, 13, 72, 33.88999, 0.76791, 3, 11, 220, -0.1, 0.00751, 12, 146, -0.1, 0.16868, 13, 72, -0.1, 0.82378, 4, 10, 294, -34.09999, 3.1E-4, 11, 220, -34.09999, 0.01648, 12, 146, -34.09999, 0.21525, 13, 72, -34.09999, 0.76791, 4, 10, 257, -34.09999, 0.00194, 11, 183, -34.09999, 0.04738, 12, 109, -34.09999, 0.33351, 13, 35, -34.09999, 0.61713, 5, 9, 294, -34.09999, 2.3E-4, 10, 220, -34.09999, 0.01162, 11, 146, -34.09999, 0.14109, 12, 72, -34.09999, 0.49171, 13, -1.99, -34.09999, 0.3553, 5, 9, 257, -34.09999, 0.00194, 10, 183, -34.09999, 0.04662, 11, 109, -34.09999, 0.31165, 12, 35, -34.09999, 0.48761, 13, -38.99, -34.09999, 0.15212, 6, 8, 294, -34.09999, 2.3E-4, 9, 220, -34.09999, 0.01162, 10, 146, -34.09999, 0.14101, 11, 72, -34.09999, 0.48684, 12, -1.99, -34.09999, 0.31174, 13, -75.98999, -34.09999, 0.0485, 6, 8, 257, -34.09999, 0.00194, 9, 183, -34.09999, 0.04662, 10, 109, -34.09999, 0.31165, 11, 35, -34.09999, 0.48684, 12, -38.99, -34.09999, 0.14101, 13, -112.98999, -34.09999, 0.01188, 7, 7, 294, -34.09999, 2.3E-4, 8, 220, -34.09999, 0.01162, 9, 146, -34.09999, 0.14101, 10, 72, -34.09999, 0.48684, 11, -1.99, -34.09999, 0.31165, 12, -75.98999, -34.09999, 0.04662, 13, -149.99, -34.09999, 0.00194, 7, 7, 257, -34.09999, 0.00194, 8, 183, -34.09999, 0.04662, 9, 109, -34.09999, 0.31165, 10, 35, -34.09999, 0.48684, 11, -38.99, -34.09999, 0.14101, 12, -112.98999, -34.09999, 0.01162, 13, -186.99, -34.09999, 2.3E-4, 7, 6, 294, -34.09999, 2.3E-4, 7, 220, -34.09999, 0.01162, 8, 146, -34.09999, 0.14101, 9, 72, -34.09999, 0.48684, 10, -1.99, -34.09999, 0.31165, 11, -75.98999, -34.09999, 0.04662, 12, -149.99, -34.09999, 0.00194, 7, 6, 257, -34.09999, 0.00194, 7, 183, -34.09999, 0.04662, 8, 109, -34.09999, 0.31165, 9, 35, -34.09999, 0.48684, 10, -38.99, -34.09999, 0.14101, 11, -112.98999, -34.09999, 0.01162, 12, -186.99, -34.09999, 2.3E-4, 7, 5, 294, -34.09999, 2.3E-4, 6, 220, -34.09999, 0.01162, 7, 146, -34.09999, 0.14101, 8, 72, -34.09999, 0.48684, 9, -1.99, -34.09999, 0.31165, 10, -75.98999, -34.09999, 0.04662, 11, -149.99, -34.09999, 0.00194, 7, 5, 257, -34.09999, 0.00194, 6, 183, -34.09999, 0.04662, 7, 109, -34.09999, 0.31165, 8, 35, -34.09999, 0.48684, 9, -38.99, -34.09999, 0.14101, 10, -112.98999, -34.09999, 0.01162, 11, -186.99, -34.09999, 2.3E-4, 7, 4, 294, -34.09999, 2.3E-4, 5, 220, -34.09999, 0.01162, 6, 146, -34.09999, 0.14101, 7, 72, -34.09999, 0.48684, 8, -1.99, -34.09999, 0.31165, 9, -75.98999, -34.09999, 0.04662, 10, -149.99, -34.09999, 0.00194, 7, 4, 257, -34.09999, 0.00194, 5, 183, -34.09999, 0.04662, 6, 109, -34.09999, 0.31165, 7, 35, -34.09999, 0.48684, 8, -38.99, -34.09999, 0.14101, 9, -112.98999, -34.09999, 0.01162, 10, -186.99, -34.09999, 2.3E-4, 7, 3, 294, -34.09999, 2.3E-4, 4, 220, -34.09999, 0.01162, 5, 146, -34.09999, 0.14101, 6, 72, -34.09999, 0.48684, 7, -1.99, -34.09999, 0.31165, 8, -75.98999, -34.09999, 0.04662, 9, -149.99, -34.09999, 0.00194, 7, 3, 257, -34.09999, 0.00194, 4, 183, -34.09999, 0.04662, 5, 109, -34.09999, 0.31165, 6, 35, -34.09999, 0.48684, 7, -38.99, -34.09999, 0.14101, 8, -112.98999, -34.09999, 0.01162, 9, -186.99, -34.09999, 2.3E-4, 7, 2, 294, -34.09999, 2.3E-4, 3, 220, -34.09999, 0.01162, 4, 146, -34.09999, 0.14101, 5, 72, -34.09999, 0.48684, 6, -1.99, -34.09999, 0.31165, 7, -75.98999, -34.09999, 0.04662, 8, -149.99, -34.09999, 0.00194, 7, 2, 257, -34.09999, 0.00194, 3, 183, -34.09999, 0.04662, 4, 109, -34.09999, 0.31165, 5, 35, -34.09999, 0.48684, 6, -38.99, -34.09999, 0.14101, 7, -112.98999, -34.09999, 0.01162, 8, -186.99, -34.09999, 2.3E-4, 7, 1, 294, -34.09999, 2.3E-4, 2, 220, -34.09999, 0.01162, 3, 146, -34.09999, 0.14101, 4, 72, -34.09999, 0.48684, 5, -1.99, -34.09999, 0.31165, 6, -75.98999, -34.09999, 0.04662, 7, -149.99, -34.09999, 0.00194, 7, 1, 257, -34.09999, 0.0017, 2, 183, -34.09999, 0.04687, 3, 109, -34.09999, 0.31165, 4, 35, -34.09999, 0.48684, 5, -38.99, -34.09999, 0.14101, 6, -112.98999, -34.09999, 0.01162, 7, -186.99, -34.09999, 2.3E-4, 6, 1, 220, -34.09999, 0.01032, 2, 146, -34.09999, 0.14256, 3, 72, -34.09999, 0.48684, 4, -1.99, -34.09999, 0.31165, 5, -75.98999, -34.09999, 0.04662, 6, -149.99, -34.09999, 0.00194, 6, 1, 183, -34.09999, 0.04058, 2, 109, -34.09999, 0.31966, 3, 35, -34.09999, 0.48684, 4, -38.99, -34.09999, 0.14101, 5, -112.98999, -34.09999, 0.01162, 6, -186.99, -34.09999, 2.3E-4, 5, 1, 146, -34.09999, 0.1274, 2, 72, -34.09999, 0.51232, 3, -1.99, -34.09999, 0.31165, 4, -75.98999, -34.09999, 0.04662, 5, -149.99, -34.09999, 0.00194, 5, 1, 109, -34.09999, 0.30116, 2, 35, -34.09999, 0.54593, 3, -38.99, -34.09999, 0.14101, 4, -112.98999, -34.09999, 0.01162, 5, -186.99, -34.09999, 2.3E-4, 4, 1, 72, -34.09999, 0.55403, 2, -1.99, -34.09999, 0.39737, 3, -75.98999, -34.09999, 0.04662, 4, -149.99, -34.09999, 0.00194, 4, 1, 35, -34.09999, 0.77977, 2, -38.99, -34.09999, 0.20825, 3, -112.98999, -34.09999, 0.01171, 4, -186.99, -34.09999, 2.3E-4, 3, 1, -1.99, -34.09999, 0.89032, 2, -75.98999, -34.09999, 0.10695, 3, -149.99, -34.09999, 0.0027, 3, 1, -1.99, -0.1, 0.9264, 2, -75.98999, -0.1, 0.07271, 3, -149.99, -0.1, 8.5E-4, 3, 1, -1.99, 33.88999, 0.89032, 2, -75.98999, 33.88999, 0.10695, 3, -149.99, 33.88999, 0.0027, 4, 1, 35, 33.88999, 0.77977, 2, -38.99, 33.88999, 0.20825, 3, -112.98999, 33.88999, 0.01171, 4, -186.99, 33.88999, 2.3E-4, 4, 1, 72, 33.88999, 0.55403, 2, -1.99, 33.88999, 0.39737, 3, -75.98999, 33.88999, 0.04662, 4, -149.99, 33.88999, 0.00194, 5, 1, 109, 33.88999, 0.30116, 2, 35, 33.88999, 0.54593, 3, -38.99, 33.88999, 0.14101, 4, -112.98999, 33.88999, 0.01162, 5, -186.99, 33.88999, 2.3E-4, 5, 1, 146, 33.88999, 0.1274, 2, 72, 33.88999, 0.51232, 3, -1.99, 33.88999, 0.31165, 4, -75.98999, 33.88999, 0.04662, 5, -149.99, 33.88999, 0.00194, 6, 1, 183, 33.88999, 0.04058, 2, 109, 33.88999, 0.31966, 3, 35, 33.88999, 0.48684, 4, -38.99, 33.88999, 0.14101, 5, -112.98999, 33.88999, 0.01162, 6, -186.99, 33.88999, 2.3E-4, 6, 1, 220, 33.88999, 0.01032, 2, 146, 33.88999, 0.14256, 3, 72, 33.88999, 0.48684, 4, -1.99, 33.88999, 0.31165, 5, -75.98999, 33.88999, 0.04662, 6, -149.99, 33.88999, 0.00194, 7, 1, 257, 33.88999, 0.0017, 2, 183, 33.88999, 0.04687, 3, 109, 33.88999, 0.31165, 4, 35, 33.88999, 0.48684, 5, -38.99, 33.88999, 0.14101, 6, -112.98999, 33.88999, 0.01162, 7, -186.99, 33.88999, 2.3E-4, 7, 1, 294, 33.88999, 2.3E-4, 2, 220, 33.88999, 0.01162, 3, 146, 33.88999, 0.14101, 4, 72, 33.88999, 0.48684, 5, -1.99, 33.88999, 0.31165, 6, -75.98999, 33.88999, 0.04662, 7, -149.99, 33.88999, 0.00194, 7, 2, 257, 33.88999, 0.00194, 3, 183, 33.88999, 0.04662, 4, 109, 33.88999, 0.31165, 5, 35, 33.88999, 0.48684, 6, -38.99, 33.88999, 0.14101, 7, -112.98999, 33.88999, 0.01162, 8, -186.99, 33.88999, 2.3E-4, 7, 2, 294, 33.88999, 2.3E-4, 3, 220, 33.88999, 0.01162, 4, 146, 33.88999, 0.14101, 5, 72, 33.88999, 0.48684, 6, -1.99, 33.88999, 0.31165, 7, -75.98999, 33.88999, 0.04662, 8, -149.99, 33.88999, 0.00194, 7, 3, 257, 33.88999, 0.00194, 4, 183, 33.88999, 0.04662, 5, 109, 33.88999, 0.31165, 6, 35, 33.88999, 0.48684, 7, -38.99, 33.88999, 0.14101, 8, -112.98999, 33.88999, 0.01162, 9, -186.99, 33.88999, 2.3E-4, 7, 3, 294, 33.88999, 2.3E-4, 4, 220, 33.88999, 0.01162, 5, 146, 33.88999, 0.14101, 6, 72, 33.88999, 0.48684, 7, -1.99, 33.88999, 0.31165, 8, -75.98999, 33.88999, 0.04662, 9, -149.99, 33.88999, 0.00194, 7, 4, 257, 33.88999, 0.00194, 5, 183, 33.88999, 0.04662, 6, 109, 33.88999, 0.31165, 7, 35, 33.88999, 0.48684, 8, -38.99, 33.88999, 0.14101, 9, -112.98999, 33.88999, 0.01162, 10, -186.99, 33.88999, 2.3E-4, 7, 4, 294, 33.88999, 2.3E-4, 5, 220, 33.88999, 0.01162, 6, 146, 33.88999, 0.14101, 7, 72, 33.88999, 0.48684, 8, -1.99, 33.88999, 0.31165, 9, -75.98999, 33.88999, 0.04662, 10, -149.99, 33.88999, 0.00194, 7, 5, 257, 33.88999, 0.00194, 6, 183, 33.88999, 0.04662, 7, 109, 33.88999, 0.31165, 8, 35, 33.88999, 0.48684, 9, -38.99, 33.88999, 0.14101, 10, -112.98999, 33.88999, 0.01162, 11, -186.99, 33.88999, 2.3E-4, 7, 5, 294, 33.88999, 2.3E-4, 6, 220, 33.88999, 0.01162, 7, 146, 33.88999, 0.14101, 8, 72, 33.88999, 0.48684, 9, -1.99, 33.88999, 0.31165, 10, -75.98999, 33.88999, 0.04662, 11, -149.99, 33.88999, 0.00194, 7, 6, 257, 33.88999, 0.00194, 7, 183, 33.88999, 0.04662, 8, 109, 33.88999, 0.31165, 9, 35, 33.88999, 0.48684, 10, -38.99, 33.88999, 0.14101, 11, -112.98999, 33.88999, 0.01162, 12, -186.99, 33.88999, 2.3E-4, 7, 6, 294, 33.88999, 2.3E-4, 7, 220, 33.88999, 0.01162, 8, 146, 33.88999, 0.14101, 9, 72, 33.88999, 0.48684, 10, -1.99, 33.88999, 0.31165, 11, -75.98999, 33.88999, 0.04662, 12, -149.99, 33.88999, 0.00194, 7, 7, 257, 33.88999, 0.00194, 8, 183, 33.88999, 0.04662, 9, 109, 33.88999, 0.31165, 10, 35, 33.88999, 0.48684, 11, -38.99, 33.88999, 0.14101, 12, -112.98999, 33.88999, 0.01162, 13, -186.99, 33.88999, 2.3E-4, 7, 7, 294, 33.88999, 2.3E-4, 8, 220, 33.88999, 0.01162, 9, 146, 33.88999, 0.14101, 10, 72, 33.88999, 0.48684, 11, -1.99, 33.88999, 0.31165, 12, -75.98999, 33.88999, 0.04662, 13, -149.99, 33.88999, 0.00194, 6, 8, 257, 33.88999, 0.00194, 9, 183, 33.88999, 0.04662, 10, 109, 33.88999, 0.31165, 11, 35, 33.88999, 0.48684, 12, -38.99, 33.88999, 0.14101, 13, -112.98999, 33.88999, 0.01188, 6, 8, 294, 33.88999, 2.3E-4, 9, 220, 33.88999, 0.01162, 10, 146, 33.88999, 0.14101, 11, 72, 33.88999, 0.48684, 12, -1.99, 33.88999, 0.31174, 13, -75.98999, 33.88999, 0.0485, 5, 9, 257, 33.88999, 0.00194, 10, 183, 33.88999, 0.04662, 11, 109, 33.88999, 0.31165, 12, 35, 33.88999, 0.48761, 13, -38.99, 33.88999, 0.15212, 5, 9, 294, 33.88999, 2.3E-4, 10, 220, 33.88999, 0.01162, 11, 146, 33.88999, 0.14109, 12, 72, 33.88999, 0.49171, 13, -1.99, 33.88999, 0.3553, 4, 10, 257, 33.88999, 0.00194, 11, 183, 33.88999, 0.04738, 12, 109, 33.88999, 0.33351, 13, 35, 33.88999, 0.61713, 4, 10, 257, -0.1, 6.5E-4, 11, 183, -0.1, 0.03067, 12, 109, -0.1, 0.31657, 13, 35, -0.1, 0.65209, 4, 10, 220, -0.1, 0.00541, 11, 146, -0.1, 0.11401, 12, 72, -0.1, 0.5478, 13, -1.99, -0.1, 0.33272, 5, 9, 257, -0.1, 6.5E-4, 10, 183, -0.1, 0.03044, 11, 109, -0.1, 0.30373, 12, 35, -0.1, 0.54592, 13, -38.99, -0.1, 0.11923, 5, 9, 220, -0.1, 0.00541, 10, 146, -0.1, 0.11401, 11, 72, -0.1, 0.5457, 12, -1.99, -0.1, 0.30373, 13, -75.98999, -0.1, 0.03109, 6, 8, 257, -0.1, 6.5E-4, 9, 183, -0.1, 0.03044, 10, 109, -0.1, 0.30373, 11, 35, -0.1, 0.5457, 12, -38.99, -0.1, 0.11401, 13, -112.98999, -0.1, 0.00541, 6, 8, 220, -0.1, 0.00541, 9, 146, -0.1, 0.11401, 10, 72, -0.1, 0.5457, 11, -1.99, -0.1, 0.30373, 12, -75.98999, -0.1, 0.03044, 13, -149.99, -0.1, 6.5E-4, 6, 7, 257, -0.1, 6.5E-4, 8, 183, -0.1, 0.03044, 9, 109, -0.1, 0.30373, 10, 35, -0.1, 0.5457, 11, -38.99, -0.1, 0.11401, 12, -112.98999, -0.1, 0.00541, 6, 7, 220, -0.1, 0.00541, 8, 146, -0.1, 0.11401, 9, 72, -0.1, 0.5457, 10, -1.99, -0.1, 0.30373, 11, -75.98999, -0.1, 0.03044, 12, -149.99, -0.1, 6.5E-4, 6, 6, 257, -0.1, 6.5E-4, 7, 183, -0.1, 0.03044, 8, 109, -0.1, 0.30373, 9, 35, -0.1, 0.5457, 10, -38.99, -0.1, 0.11401, 11, -112.98999, -0.1, 0.00541, 6, 6, 220, -0.1, 0.00541, 7, 146, -0.1, 0.11401, 8, 72, -0.1, 0.5457, 9, -1.99, -0.1, 0.30373, 10, -75.98999, -0.1, 0.03044, 11, -149.99, -0.1, 6.5E-4, 6, 5, 257, -0.1, 6.5E-4, 6, 183, -0.1, 0.03044, 7, 109, -0.1, 0.30373, 8, 35, -0.1, 0.5457, 9, -38.99, -0.1, 0.11401, 10, -112.98999, -0.1, 0.00541, 6, 5, 220, -0.1, 0.00541, 6, 146, -0.1, 0.11401, 7, 72, -0.1, 0.5457, 8, -1.99, -0.1, 0.30373, 9, -75.98999, -0.1, 0.03044, 10, -149.99, -0.1, 6.5E-4, 6, 4, 257, -0.1, 6.5E-4, 5, 183, -0.1, 0.03044, 6, 109, -0.1, 0.30373, 7, 35, -0.1, 0.5457, 8, -38.99, -0.1, 0.11401, 9, -112.98999, -0.1, 0.00541, 6, 4, 220, -0.1, 0.00541, 5, 146, -0.1, 0.11401, 6, 72, -0.1, 0.5457, 7, -1.99, -0.1, 0.30373, 8, -75.98999, -0.1, 0.03044, 9, -149.99, -0.1, 6.5E-4, 6, 3, 257, -0.1, 6.5E-4, 4, 183, -0.1, 0.03044, 5, 109, -0.1, 0.30373, 6, 35, -0.1, 0.5457, 7, -38.99, -0.1, 0.11401, 8, -112.98999, -0.1, 0.00541, 6, 3, 220, -0.1, 0.00541, 4, 146, -0.1, 0.11401, 5, 72, -0.1, 0.5457, 6, -1.99, -0.1, 0.30373, 7, -75.98999, -0.1, 0.03044, 8, -149.99, -0.1, 6.5E-4, 6, 2, 257, -0.1, 6.5E-4, 3, 183, -0.1, 0.03044, 4, 109, -0.1, 0.30373, 5, 35, -0.1, 0.5457, 6, -38.99, -0.1, 0.11401, 7, -112.98999, -0.1, 0.00541, 6, 2, 220, -0.1, 0.00541, 3, 146, -0.1, 0.11401, 4, 72, -0.1, 0.5457, 5, -1.99, -0.1, 0.30373, 6, -75.98999, -0.1, 0.03044, 7, -149.99, -0.1, 6.5E-4, 6, 1, 257, -0.1, 6.5E-4, 2, 183, -0.1, 0.03044, 3, 109, -0.1, 0.30373, 4, 35, -0.1, 0.5457, 5, -38.99, -0.1, 0.11401, 6, -112.98999, -0.1, 0.00541, 6, 1, 220, -0.1, 0.00476, 2, 146, -0.1, 0.11467, 3, 72, -0.1, 0.5457, 4, -1.99, -0.1, 0.30373, 5, -75.98999, -0.1, 0.03044, 6, -149.99, -0.1, 6.5E-4, 5, 1, 183, -0.1, 0.02676, 2, 109, -0.1, 0.30807, 3, 35, -0.1, 0.5457, 4, -38.99, -0.1, 0.11401, 5, -112.98999, -0.1, 0.00541, 5, 1, 146, -0.1, 0.09905, 2, 72, -0.1, 0.5661, 3, -1.99, -0.1, 0.30373, 4, -75.98999, -0.1, 0.03044, 5, -149.99, -0.1, 6.5E-4, 4, 1, 109, -0.1, 0.27658, 2, 35, -0.1, 0.60395, 3, -38.99, -0.1, 0.11401, 4, -112.98999, -0.1, 0.00541, 4, 1, 72, -0.1, 0.55928, 2, -1.99, -0.1, 0.40959, 3, -75.98999, -0.1, 0.03044, 4, -149.99, -0.1, 6.5E-4, 3, 1, 35, -0.1, 0.81844, 2, -38.99, -0.1, 0.1761, 3, -112.98999, -0.1, 0.00541 ], "hull": 56, "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], "width": 68, @@ -51,7 +59,7 @@ "type": "path", "lengths": [ 223.68, 474.79, 780.31, 992.69, 1196.43, 2277.75 ], "vertexCount": 18, - "vertices": [ 1, 14, -31.64, 22.49, 1, 1, 14, -2.73, -6.56, 1, 1, 14, 56.89, -69, 1, 1, 14, 115.57, 75.01, 1, 1, 14, 198.6, 53.37, 1, 2, 14, 332.76, 19.74, 0.8, 15, 36.41, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.232, 15, -21.1, -68.01999, 0.76799, 1, 15, 96.09, -93.88, 1, 2, 15, 229.75, -122.63, 0.664, 16, -63.18, -122.45, 0.33599, 2, 15, 242.53, 29.31, 0.52, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.42, 47.85, 0.80799, 17, -63.65, 48.41, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.56, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.81, 6.41, 0.784, 1, 17, 138.78, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.02, 1 ] + "vertices": [ 1, 14, -31.63999, 22.48999, 1, 1, 14, -2.73, -6.55999, 1, 1, 14, 56.88999, -69, 1, 1, 14, 115.56999, 75.01, 1, 1, 14, 198.6, 53.36999, 1, 2, 14, 332.76, 19.73999, 0.8, 15, 36.40999, 19.12999, 0.19999, 2, 14, 276.72, -68.37, 0.23199, 15, -21.1, -68.01999, 0.76798, 1, 15, 96.08999, -93.87999, 1, 2, 15, 229.75, -122.62999, 0.66399, 16, -63.18, -122.44999, 0.33599, 2, 15, 242.52998, 29.30999, 0.51999, 16, -49.97, 29.45, 0.47999, 1, 16, 66.72, 38.65, 1, 2, 16, 183.41998, 47.84999, 0.80799, 17, -63.65, 48.40999, 0.192, 2, 16, 177.29, -41.22, 0.77599, 17, -70.55999, -40.61, 0.224, 2, 16, 265.5, -16.18, 0.488, 17, 17.86, -16.34, 0.51199, 2, 16, 343.25, 7.25, 0.21599, 17, 95.80999, 6.40999, 0.78399, 1, 17, 138.77998, 45.72, 1, 1, 17, 212.86, 5.44, 1, 1, 14, 1094.34, -1.01999, 1 ] } } } @@ -110,7 +118,7 @@ "angle": 5.65, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": 1.35 } + { "time": 7.5999, "angle": 1.35 } ], "scale": [ { @@ -126,7 +134,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.568, 0.99 ] @@ -151,7 +159,7 @@ "angle": -8.18, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.96 } + { "time": 7.5999, "angle": -0.96 } ], "scale": [ { @@ -167,7 +175,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -197,7 +205,7 @@ "angle": -15.24, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.16 } + { "time": 7.5999, "angle": -0.16 } ], "scale": [ { @@ -213,7 +221,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] @@ -243,7 +251,7 @@ "angle": 15.02, "curve": [ 0.25, 0, 0.75, 1 ] }, - { "time": 7.6, "angle": -0.5 } + { "time": 7.5999, "angle": -0.5 } ], "scale": [ { @@ -259,7 +267,7 @@ "curve": [ 0.25, 0, 0.75, 1 ] }, { - "time": 7.6, + "time": 7.5999, "x": 1, "y": 1, "curve": [ 0.25, 0, 0.75, 1 ] diff --git a/spine-ts/webgl/example/index.html b/spine-ts/webgl/example/index.html index f293a04f3..5998a0f8f 100644 --- a/spine-ts/webgl/example/index.html +++ b/spine-ts/webgl/example/index.html @@ -38,8 +38,8 @@ function init () { canvas.width = window.innerWidth; canvas.height = window.innerHeight; var config = { alpha: false }; - gl = canvas.getContext("webgl", config) || canvas.getContext("experimental-webgl", config); - + gl = canvas.getContext("webgl", config) || canvas.getContext("experimental-webgl", config); + // Create a simple shader, mesh, model-view-projection matrix and SkeletonRenderer. shader = spine.webgl.Shader.newColoredTextured(gl); batcher = new spine.webgl.PolygonBatcher(gl); @@ -71,7 +71,7 @@ function init () { assetManager.loadTexture("assets/goblins.png"); assetManager.loadText("assets/vine.json"); assetManager.loadText("assets/vine.atlas"); - assetManager.loadTexture("assets/vine.png"); + assetManager.loadTexture("assets/vine.png"); assetManager.loadText("assets/stretchyman.json"); assetManager.loadText("assets/stretchyman.atlas"); assetManager.loadTexture("assets/stretchyman.png"); @@ -82,11 +82,11 @@ function load () { // Wait until the AssetManager has loaded all resources, then load the skeletons. if (assetManager.isLoadingComplete()) { skeletons["raptor"] = loadSkeleton("raptor", "walk", false); - skeletons["spineboy"] = loadSkeleton("spineboy", "run", false); + skeletons["spineboy"] = loadSkeleton("spineboy", "run", false); skeletons["tank"] = loadSkeleton("tank", "drive", false); skeletons["goblins"] = loadSkeleton("goblins-mesh", "walk", false, "goblin"); skeletons["vine"] = loadSkeleton("vine", "animation", false); - skeletons["stretchyman"] = loadSkeleton("stretchyman", "sneak", false); + skeletons["stretchyman"] = loadSkeleton("stretchyman", "sneak", false); setupUI(); requestAnimationFrame(render); } else { @@ -100,7 +100,7 @@ function loadSkeleton (name, initialAnimation, premultipliedAlpha, skin) { // Load the texture atlas using name.atlas and name.png from the AssetManager. // The function passed to TextureAtlas is used to resolve relative paths. atlas = new spine.TextureAtlas(assetManager.get("assets/" + name + ".atlas"), function(path) { - return assetManager.get("assets/" + path); + return assetManager.get("assets/" + path); }); // Create a AtlasAttachmentLoader that resolves region, mesh, boundingbox and path attachments @@ -108,28 +108,34 @@ function loadSkeleton (name, initialAnimation, premultipliedAlpha, skin) { // Create a SkeletonJson instance for parsing the .json file. var skeletonJson = new spine.SkeletonJson(atlasLoader); - - // Set the scale to apply during parsing, parse the file, and create a new skeleton. + + // Set the scale to apply during parsing, parse the file, and create a new skeleton. var skeletonData = skeletonJson.readSkeletonData(assetManager.get("assets/" + name + ".json")); var skeleton = new spine.Skeleton(skeletonData); skeleton.setSkinByName(skin); - var bounds = calculateBounds(skeleton); + var bounds = calculateBounds(skeleton); // Create an AnimationState, and set the initial animation in looping mode. var animationState = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); animationState.setAnimation(0, initialAnimation, true); animationState.addListener({ - event: function(trackIndex, event) { - // console.log("Event on track " + trackIndex + ": " + JSON.stringify(event)); + start: function(track) { + console.log("Animation on track " + track.trackIndex + " started"); }, - complete: function(trackIndex, loopCount) { - // console.log("Animation on track " + trackIndex + " completed, loop count: " + loopCount); + interrupt: function(track) { + console.log("Animation on track " + track.trackIndex + " interrupted"); }, - start: function(trackIndex) { - // console.log("Animation on track " + trackIndex + " started"); + end: function(track) { + console.log("Animation on track " + track.trackIndex + " ended"); }, - end: function(trackIndex) { - // console.log("Animation on track " + trackIndex + " ended"); + disposed: function(track) { + console.log("Animation on track " + track.trackIndex + " disposed"); + }, + complete: function(track) { + console.log("Animation on track " + track.trackIndex + " completed"); + }, + event: function(track, event) { + console.log("Event on track " + track.trackIndex + ": " + JSON.stringify(event)); } }) @@ -137,7 +143,7 @@ function loadSkeleton (name, initialAnimation, premultipliedAlpha, skin) { return { skeleton: skeleton, state: animationState, bounds: bounds, premultipliedAlpha: premultipliedAlpha }; } -function calculateBounds(skeleton) { +function calculateBounds(skeleton) { skeleton.setToSetupPose(); skeleton.updateWorldTransform(); var offset = new spine.Vector2(); @@ -173,7 +179,7 @@ function setupUI () { var skeleton = skeletons[activeSkeleton].skeleton; var animationName = $("#animationList option:selected").text(); skeleton.setToSetupPose(); - state.setAnimation(0, animationName, true); + state.setAnimation(0, animationName, true); }) } @@ -190,7 +196,7 @@ function setupUI () { skinList.append(option); } - skinList.change(function() { + skinList.change(function() { var skeleton = skeletons[activeSkeleton].skeleton; var skinName = $("#skinList option:selected").text(); skeleton.setSkinByName(skinName); @@ -236,7 +242,7 @@ function render () { skeletonRenderer.premultipliedAlpha = premultipliedAlpha; skeletonRenderer.draw(batcher, skeleton); batcher.end(); - + shader.unbind(); // draw debug information diff --git a/spine-ts/webgl/example/test.html b/spine-ts/webgl/example/test.html new file mode 100644 index 000000000..4ae4d0990 --- /dev/null +++ b/spine-ts/webgl/example/test.html @@ -0,0 +1,81 @@ + + + + + + + + + \ No newline at end of file diff --git a/spine-ts/widget/example/assets/raptor.json b/spine-ts/widget/example/assets/raptor.json index b81f95cd1..f7cd2f875 100644 --- a/spine-ts/widget/example/assets/raptor.json +++ b/spine-ts/widget/example/assets/raptor.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "xc68H5wnObEhNawCC1Fp/vJNrv4", "spine": "3.4.02", "width": 1223.72, "height": 1055.62, "images": "./images/" }, +"skeleton": { + "hash": "NYDebVH+Ht9WSskWgX4h79z2c4w", + "spine": "3.5.03-beta", + "width": 1223.72, + "height": 1055.62, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "root" }, { "name": "hip", "parent": "root", "rotation": 3.15, "x": -136.78, "y": 415.47, "color": "fbff00ff" }, @@ -37,7 +44,7 @@ "rotation": 9.2, "x": 43.68, "y": 0.06, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_rear_arm_goal", "parent": "saddle", "x": -30.43, "y": -100.08, "color": "ff0001ff" }, @@ -81,7 +88,7 @@ "y": -0.02, "scaleX": 0.73, "scaleY": 0.823, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "15ff00ff" }, { @@ -102,7 +109,7 @@ "rotation": 13.9, "x": 39.98, "y": -0.89, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "ffffffff" }, { "name": "spineboy_front_arm_goal", "parent": "saddle", "x": -50.7, "y": -96.93, "color": "ff0004ff" }, @@ -145,7 +152,7 @@ "rotation": -6.13, "x": 84.49, "y": -0.34, - "inheritRotation": false, + "transform": "noRotationOrReflection", "color": "e07800ff" }, { "name": "rear_hand", "parent": "rear_arm2", "length": 45.8, "rotation": -76.28, "x": 85.8, "y": 0.1, "color": "e07800ff" }, @@ -236,50 +243,59 @@ "ik": [ { "name": "front_arm_goal", + "order": 0, "bones": [ "front_arm", "front_bracer" ], "target": "front_arm_target" }, { "name": "front_foot_goal", + "order": 2, "bones": [ "front_leg3", "front_foot1" ], "target": "front_foot_goal" }, { "name": "front_leg_goal", + "order": 1, "bones": [ "front_leg1", "front_leg2" ], "target": "front_leg_goal", "bendPositive": false }, { "name": "rear_arm_goal", + "order": 3, "bones": [ "back_arm", "back_bracer" ], "target": "rear_arm_target" }, { "name": "rear_foot_goal", + "order": 5, "bones": [ "rear_leg3", "rear_foot1" ], "target": "rear_foot_goal" }, { "name": "rear_leg_goal", + "order": 4, "bones": [ "rear_leg1", "rear_leg2" ], "target": "rear_leg_goal", "bendPositive": false }, { "name": "spineboy_front_leg_goal", + "order": 6, "bones": [ "front_thigh", "lower_leg" ], "target": "spineboy_front_arm_goal", "bendPositive": false }, { "name": "spineboy_rear_leg_goal", + "order": 7, "bones": [ "back_thigh", "back_knee" ], "target": "spineboy_rear_arm_goal", "bendPositive": false }, { "name": "stirrup", + "order": 8, "bones": [ "stirrup_strap1", "stirrup_strap2" ], "target": "stirrup" } @@ -323,7 +339,7 @@ "type": "mesh", "uvs": [ 0.71081, 0.16149, 0.85807, 0.41784, 1, 0.6649, 1, 1, 0.71457, 1, 0.49802, 0.6905, 0.30182, 0.41009, 0, 0.58226, 0, 0.1174, 0.27187, 0.12429, 0.24857, 0, 0.36658, 0, 0.61804, 0, 0.70575, 0.53546, 0.53668, 0.26855 ], "triangles": [ 3, 13, 2, 5, 13, 4, 3, 4, 13, 13, 6, 14, 13, 5, 6, 13, 1, 2, 6, 8, 9, 6, 7, 8, 13, 14, 1, 14, 0, 1, 6, 9, 14, 9, 11, 14, 14, 12, 0, 14, 11, 12, 9, 10, 11 ], - "vertices": [ 23.48, 50.63, 83.86, 46.32, 142.05, 42.17, 197.91, 3.34, 163.7, -45.86, 86.15, -47.34, 15.9, -48.68, 8.42, -120.68, -69.06, -66.81, -35.32, -20.73, -58.83, -10.35, -44.69, 9.99, -14.55, 53.35, 85.21, 6.43, 20.45, 8.2 ], + "vertices": [ 23.47999, 50.63, 83.86, 46.31999, 142.05, 42.16999, 197.91, 3.33999, 163.7, -45.86, 86.15, -47.34, 15.89999, -48.68, 8.42, -120.68, -69.05999, -66.80999, -35.31999, -20.72999, -58.83, -10.35, -44.68999, 9.98999, -14.55, 53.34999, 85.20999, 6.42999, 20.45, 8.19999 ], "hull": 13, "edges": [ 14, 12, 6, 8, 6, 4, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 8, 10, 10, 12, 6, 26, 10, 26, 4, 2, 26, 2, 22, 28, 28, 26, 12, 28, 2, 0, 0, 24, 28, 0, 18, 12 ], "width": 210, @@ -347,7 +363,7 @@ "type": "mesh", "uvs": [ 0.38711, 0.29362, 0.31382, 0.46513, 0.29242, 0.51521, 0.32475, 0.4931, 0.57587, 0.32138, 0.63254, 0.28263, 0.71632, 0.34507, 0.94948, 0.51888, 0.94947, 0.60129, 1, 0.65257, 1, 0.90624, 0.95462, 0.99934, 0.88957, 0.83204, 0.80294, 0.99998, 0.75236, 0.75696, 0.6654, 0.713, 0.62288, 0.63242, 0.58194, 0.65031, 0.22478, 0.80641, 0.07791, 0.73315, 0.07825, 0.66549, 0.07984, 0.34306, 0, 0.29728, 0, 0, 0.32334, 0 ], "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], - "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.53, 41.05, 0.08333, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.41, 24.39, 0.23186, 2, 40, 74.51, 16.57, 0.64468, 41, 33.49, 19.53, 0.35531, 2, 40, 70.89, 21.97, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.89, 0.11483, 41, 90.47, 18.95, 0.60854, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.83, 0.45955, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.08, 0.0625, 49, 2.98, 20.56, 0.9375, 1, 49, 51.32, 21.98, 1, 1, 49, 60.41, 11.1, 1, 1, 49, 72.39, 9.60999, 1, 1, 49, 100.37, -23.87, 1, 1, 49, 104.96, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.92, -30.04, 1, 2, 41, 62.24, -43.92, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.89, -28.65, 0.3125, 49, 22.98, -27.14, 0.6875, 2, 41, 57.69, -27.17, 0.30612, 49, 19.83, -33.78, 0.69387, 2, 40, 124.19, 3.83, 0.19395, 41, -5.09, -14.23, 0.80604, 2, 40, 110.77, -19.65, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.14, -19.2, 0.51612, 41, -9.93, 19.44, 0.48386, 2, 40, 43.73, -17.03, 0.9375, 41, 23.17, 63.92, 0.0625, 1, 40, 35.41, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.87, 24.65, 1 ], + "vertices": [ 2, 40, 36.95, 33.31, 0.91666, 41, 68.52999, 41.04999, 0.08332, 2, 40, 66.01999, 20.35, 0.76813, 41, 41.40999, 24.38999, 0.23185, 2, 40, 74.51, 16.56999, 0.64468, 41, 33.49, 19.53, 0.3553, 2, 40, 70.88999, 21.96999, 0.29071, 41, 39.99, 19.45999, 0.70928, 3, 40, 42.77, 63.88999, 0.11483, 41, 90.47, 18.95, 0.60853, 49, -17.2, 9, 0.2766, 2, 41, 101.86, 18.82999, 0.45954, 49, -14.38, 20.04, 0.54044, 2, 41, 106.47, 2.07999, 0.0625, 49, 2.98, 20.55999, 0.9375, 1, 49, 51.31999, 21.97999, 1, 1, 49, 60.40999, 11.1, 1, 1, 49, 72.38999, 9.60999, 1, 1, 49, 100.36, -23.87, 1, 1, 49, 104.95999, -40.9, 1, 1, 49, 78.37, -25.61, 1, 1, 49, 86.05, -56.84, 1, 1, 49, 52.91999, -30.04, 1, 2, 41, 62.24, -43.91999, 0.0625, 49, 37.18999, -33.33, 0.9375, 2, 41, 64.88999, -28.64999, 0.3125, 49, 22.97999, -27.13999, 0.6875, 2, 41, 57.68999, -27.17, 0.30612, 49, 19.82999, -33.77999, 0.69387, 2, 40, 124.19, 3.82999, 0.19394, 41, -5.09, -14.22999, 0.80603, 2, 40, 110.76999, -19.64999, 0.3125, 41, -16.87999, 10.1, 0.6875, 2, 40, 99.13999, -19.2, 0.51612, 41, -9.93, 19.44, 0.48385, 2, 40, 43.72999, -17.03, 0.9375, 41, 23.17, 63.91999, 0.0625, 1, 40, 35.40999, -29.77, 1, 1, 40, -15.68, -28.02, 1, 1, 40, -13.86999, 24.64999, 1 ], "hull": 25, "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], "width": 163, @@ -359,7 +375,7 @@ "type": "mesh", "uvs": [ 0.89014, 0.11136, 1, 0.22194, 1, 0.42847, 0.88179, 0.38589, 0.874, 0.47986, 0.84783, 0.51728, 0.82504, 0.54984, 0.82403, 0.61606, 0.82305, 0.67972, 0.74042, 0.86709, 0.61596, 0.93097, 0.49649, 0.90968, 0.41186, 0.71379, 0.36955, 0.70086, 0.32823, 0.68824, 0.30082, 0.69962, 0.27515, 0.71028, 0.25301, 0.71948, 0.22568, 0.73082, 0.20832, 0.72362, 0.19092, 0.7164, 0.15952, 0.70337, 0.1301, 0.69116, 0.09227, 0.67546, 0.06029, 0.63165, 0.02855, 0.58817, 0, 0.49874, 0.05045, 0.53494, 0.08267, 0.54507, 0.11815, 0.55623, 0.14733, 0.54161, 0.17913, 0.52568, 0.20324, 0.5136, 0.22867, 0.50087, 0.24871, 0.47664, 0.27523, 0.44458, 0.32026, 0.39015, 0.37517, 0.35747, 0.43476, 0.32201, 0.4893, 0.35534, 0.56021, 0.39867, 0.61587, 0.40674, 0.67769, 0.4157, 0.69094, 0.31314, 0.69362, 0.14742, 0.79219, 0.08354, 0.51541, 0.74573, 0.62393, 0.75425, 0.70856, 0.7287, 0.76132, 0.63288, 0.7566, 0.49454, 0.80613, 0.27517, 0.65885, 0.59037, 0.53929, 0.54937, 0.42632, 0.52207, 0.3246, 0.55241, 0.22715, 0.618, 0.10574, 0.61341, 0.03969, 0.56109, 0.77916, 0.39461, 0.37556, 0.53721, 0.27743, 0.58416, 0.16958, 0.61582, 0.07259, 0.58715, 0.87545, 0.31683, 0.85488, 0.21417, 0.81012, 0.17403, 0.83214, 0.25662, 0.83823, 0.32214, 0.84622, 0.41719, 0.59954, 0.57003, 0.49074, 0.53763, 0.76917, 0.43888, 0.75912, 0.56845, 0.871, 0.3701, 0.85431, 0.43545, 0.89558, 0.32412, 0.90105, 0.22877, 0.91523, 0.20564, 0.93086, 0.219, 0.93446, 0.25858, 0.91956, 0.2776, 0.9061, 0.26423, 0.9415, 0.25929, 0.93589, 0.21545, 0.91669, 0.19192, 0.89297, 0.22201, 0.90245, 0.28513, 0.92006, 0.281, 0.92143, 0.29619, 0.94856, 0.2643, 0.19894, 0.61694, 0.13973, 0.61469, 0.25158, 0.60156, 0.88779, 0.26675 ], "triangles": [ 13, 60, 12, 12, 71, 46, 46, 70, 47, 11, 12, 46, 47, 11, 46, 10, 11, 47, 13, 14, 55, 15, 93, 14, 16, 56, 15, 58, 26, 27, 28, 58, 27, 63, 28, 29, 63, 58, 28, 25, 26, 58, 25, 58, 63, 57, 63, 29, 92, 29, 30, 57, 29, 92, 24, 25, 63, 24, 63, 57, 23, 24, 57, 92, 23, 57, 22, 23, 92, 62, 22, 92, 21, 22, 62, 20, 21, 91, 92, 30, 62, 91, 21, 62, 62, 30, 31, 91, 62, 31, 31, 32, 93, 20, 91, 56, 56, 19, 20, 17, 19, 56, 18, 19, 17, 93, 91, 31, 55, 34, 35, 33, 34, 55, 61, 33, 55, 61, 32, 33, 93, 32, 61, 56, 91, 93, 56, 93, 15, 16, 17, 56, 36, 37, 54, 60, 35, 36, 54, 60, 36, 60, 55, 35, 61, 55, 14, 93, 61, 14, 60, 13, 55, 12, 60, 54, 39, 54, 37, 39, 37, 38, 71, 54, 39, 40, 71, 39, 53, 71, 40, 53, 40, 41, 12, 54, 71, 46, 71, 53, 66, 45, 0, 44, 45, 66, 1, 84, 85, 65, 66, 0, 0, 85, 65, 85, 86, 65, 85, 0, 1, 78, 85, 84, 79, 78, 84, 78, 86, 85, 77, 86, 78, 77, 78, 79, 67, 66, 65, 83, 80, 79, 84, 83, 79, 77, 79, 80, 84, 90, 83, 82, 77, 80, 1, 90, 84, 94, 65, 86, 94, 86, 77, 94, 77, 82, 67, 65, 94, 51, 44, 66, 51, 66, 67, 81, 82, 80, 83, 88, 81, 87, 94, 82, 87, 82, 81, 87, 81, 88, 88, 90, 89, 87, 88, 89, 80, 83, 81, 90, 88, 83, 43, 44, 51, 64, 67, 94, 64, 94, 87, 68, 67, 64, 51, 67, 68, 76, 64, 87, 76, 87, 89, 74, 68, 64, 74, 64, 76, 3, 74, 76, 59, 43, 51, 59, 51, 68, 69, 59, 68, 74, 69, 68, 69, 74, 3, 90, 1, 2, 89, 90, 2, 76, 89, 2, 3, 76, 2, 75, 69, 3, 4, 75, 3, 75, 72, 69, 5, 75, 4, 5, 72, 75, 72, 59, 69, 59, 42, 43, 72, 42, 59, 50, 42, 72, 50, 72, 5, 6, 50, 5, 73, 50, 6, 52, 70, 42, 50, 52, 42, 73, 52, 50, 7, 73, 6, 49, 73, 7, 52, 73, 49, 8, 49, 7, 48, 52, 49, 48, 49, 8, 47, 52, 48, 70, 53, 41, 70, 41, 42, 46, 53, 70, 47, 70, 52, 9, 48, 8, 47, 48, 9, 10, 47, 9 ], - "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.24, -285.93, 1, 1, 8, -14.58, -194.68, 1, 4, 6, 238.39, -84.13, 0.20851, 7, 32.09999, -140.85, 0.19336, 8, -61.96, -132.26, 0.42115, 39, 129.57, 6.39, 0.17696, 5, 2, 332.7, 63.71, 0.06905, 6, 199.57, -83.03, 0.29424, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.32, 0.30859, 39, 127.34, -26.64, 0.1087, 5, 2, 307.08, 43.5, 0.11018, 6, 166.95, -82.12999, 0.37282, 7, -20.18, -92.14, 0.24572, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05264, 4, 2, 307.75, 5.7, 0.18627, 6, 143.25, -111.59, 0.58009, 7, -57.43, -98.57, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.55, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.83, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.74, 0.07383, 59, 17.17, 122.49, 0.17504, 60, -100.71, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.13, 0.06537, 59, 66.71, 104.77, 0.20999, 60, -53.08, 110.21, 0.12016, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02179, 59, 115.07, 87.47, 0.23058, 60, -6.58, 88.39, 0.16258, 61, -168.92, 31, 0.02826, 62, -282.82, -90.19, 0.029, 1, -267.66, -55.14, 0.52776, 5, 59, 146.51, 86.08, 0.23635, 60, 26.66, 83.39, 0.19338, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43436, 5, 59, 178.73, 86.41, 0.22521, 60, 56.68, 81.29, 0.20997, 61, -107.13, 46.31, 0.11271, 62, -232.44, -51.26, 0.12148, 1, -328.68, -69.24, 0.3306, 5, 59, 203.26, 86.51, 0.21603, 60, 83.06, 77.01999, 0.22457, 61, -79.56, 53.53, 0.13939, 62, -210.89, -28.3, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.2315, 61, -49.53, 60.58, 0.16455, 62, -185.49, -14.98, 0.19123, 1, -385.33, -83.15, 0.21156, 5, 59, 255.33, 78.85, 0.18224, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22658, 1, -406.45, -79.89, 0.17015, 5, 59, 275.48, 71.62, 0.16169, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.94, 0.21292, 62, -142.85, 0.11, 0.26159, 1, -427.72, -77.47, 0.13493, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.82, 0.22293, 61, 31.84, 49.3, 0.23478, 62, -106.46, 7.49, 0.29326, 1, -465.96, -72.58999, 0.10702, 5, 59, 345.74, 45.54, 0.12502, 60, 219.6, 19.28, 0.2179, 61, 68.31, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32248, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.3, 0.11758, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.15, 30.34, 0.36547, 4, 59, 423.87, -11.11, 0.10536, 60, 291.46, -39.06, 0.21954, 61, 154.83, 14.99, 0.30098, 62, 19.91, 25.67, 0.37409, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.66, 0.30788, 62, 65.62, 21.04, 0.37513, 4, 59, 480.34, -100.28, 0.10045, 60, 339.2, -133.2, 0.22026, 61, 232.3, -56.69, 0.31103, 62, 119.7, -8.68999, 0.36824, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.27, 0.23087, 61, 169.77, -39.4, 0.30828, 62, 55.51, -18.08, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.2454, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.78, 0.13471, 60, 211.34, -59.22, 0.26271, 61, 86.7, -31.72, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02419, 59, 311.45, -35.25, 0.16384, 60, 175.89, -56.83, 0.2727, 61, 51.53, -43.14, 0.26317, 62, -52.88, -67.87, 0.27607, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.64, 0.19681, 60, 135.19, -53.82, 0.27688, 61, 13.42, -53.11, 0.23219, 62, -82.03, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.8, 0.2354, 60, 105.59, -52.93, 0.27331, 61, -16.25, -62.16, 0.19459, 62, -108.34, -111.24, 0.19028, 5, 58, 364.8, 62.48, 0.14347, 59, 207.71, -42.14, 0.28099, 60, 73.33, -49.43, 0.26867, 61, -46.11, -70.49, 0.15764, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.53, 0.18499, 59, 182.34, -50.62, 0.33114, 60, 45.87, -56.62, 0.25881, 61, -71.57, -84.96, 0.1174, 62, -150.85, -153.35, 0.10763, 5, 58, 319.95, 15.15, 0.23755, 59, 145.6, -61.95, 0.39396, 60, 9.60999, -63.26, 0.24619, 61, -101.06, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29942, 59, 85.52, -81.11, 0.46774, 60, -52.01, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.48601, 60, -125.69, -74.48, 0.18543, 2, 58, 147.14, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40433, 2, 2, -113.14, 135.84, 0.24192, 58, 91.72, -112.59, 0.75807, 2, 2, -42.12, 116.77, 0.14515, 58, 18.2, -111.17, 0.85484, 1, 2, 44.2, 107.1, 1, 2, 2, 140.09, 96.35, 0.22579, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05644, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.74, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.17, 93.15, 0.75, 1, 8, 158.96, -25.58, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.92, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.53, -78.72, 0.25, 2, 2, 231.74, -8.12, 0.4, 6, 76.03, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55823, 7, -6.58, -3.99, 0.17739, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.65, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.71, 32.22, 0.08564, 58, 132.35, 4.23999, 0.56215, 59, -23.98, 19.01, 0.35219, 3, 58, 246.39, 57.53, 0.30273, 59, 101.61, 10.65, 0.46989, 60, -27.28, 13.2, 0.22737, 5, 58, 346.99, 126.85, 0.13479, 59, 223.17, 22.83, 0.28279, 60, 94.88, 13.77, 0.24481, 61, -47.85, -3.72, 0.17322, 62, -158.02, -73.16, 0.16438, 4, 59, 367.51, -9.96, 0.14656, 60, 235.45, -32.57, 0.23073, 61, 100.06, 1.62, 0.29607, 62, -24.81, -8.63, 0.32661, 4, 59, 440.24, -55.6, 0.10821, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.8, 0.31097, 62, 60.48, 1.14, 0.36182, 3, 6, 174.99, 22.22, 0.2, 7, 54.82, -19.14, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.83, 0.33253, 59, 38.68, 14.84, 0.48076, 60, -89.52, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.22891, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.48, 0.2306, 61, -106.86, -25.89, 0.08042, 62, -203.08, -117.24, 0.0725, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.27, 0.20198, 60, 161.53, -8.2, 0.23762, 61, 22.27, -1.17999, 0.24024, 62, -94.86, -42.56, 0.24654, 4, 59, 404.01, -32.87, 0.12351, 60, 269.61, -58.84, 0.22261, 61, 141.21, -11.13, 0.30609, 62, 17.98, -3.72, 0.34777, 1, 8, 26.4, -166.06, 1, 1, 8, 87.21, -106.12, 1, 1, 8, 108.19, -49.62, 1, 2, 8, 61.73, -82.12999, 0.50021, 39, 4.42, 52.83, 0.49978, 2, 8, 22.84, -109.4, 0.50021, 39, 51.52, 46.73, 0.49978, 4, 6, 247.12, -50.52, 0.06545, 7, 60.86, -121.4, 0.06069, 8, -30.3, -118, 0.49079, 39, 96.58, 17.21999, 0.38305, 1, 2, 26.73, 14.8, 1, 2, 2, -107.97, 25.67, 0.24192, 58, 60.17, -6.91, 0.75807, 4, 2, 235.53, 102.96, 0.0761, 6, 150.1, 9.35, 0.35533, 7, 27.64, -12.34, 0.41675, 8, -44.43, -4.87, 0.1518, 3, 2, 227.15, 28.49, 0.31015, 6, 95.96, -42.46, 0.60548, 7, -47.23, -15.44, 0.08435, 2, 8, 5.19, -153.1, 0.87618, 39, 90.96, 71.21, 0.12381, 4, 6, 243.13, -60.59, 0.10669, 7, 51.21, -126.33, 0.09893, 8, -40.65, -121.21, 0.47072, 39, 105.71, 17.33, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.64, -175.94, 1, 1, 8, 93.96, -187.56, 1, 1, 8, 87.07, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.23, -203.68, 1, 1, 8, 59.24, -187.03, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.1, -166.14, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.32, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.87, -230.97, 1, 5, 58, 374.97, 143.6, 0.10291, 59, 256.29, 17.42, 0.23985, 60, 127.43, 2.07, 0.2431, 61, -13.35, -3.05, 0.20854, 62, -128.14, -55.46, 0.20557, 4, 59, 327.21, 4.42, 0.17789, 60, 196.28, -19.32, 0.24248, 61, 58.71, -1.04999, 0.28055, 62, -62.24, -26.21, 0.29905, 5, 58, 318.32, 113.62, 0.17774, 59, 192.26, 20.14, 0.33383, 60, 64.19, 12.44, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.31, 0.11821, 2, 8, 56.98, -162.99, 0.89259, 39, 57.54, 112, 0.1074 ], + "vertices": [ 1, 8, 147.48, -145.48, 1, 1, 8, 89.4, -281.62, 1, 1, 8, -28.23999, -285.93, 1, 1, 8, -14.57999, -194.68, 1, 4, 6, 238.38998, -84.12999, 0.2085, 7, 32.09999, -140.85, 0.19336, 8, -61.95999, -132.26, 0.42114, 39, 129.57, 6.38999, 0.17696, 5, 2, 332.7, 63.70999, 0.06904, 6, 199.57, -83.02999, 0.29423, 7, 3.69, -114.37, 0.2194, 8, -85.43, -101.31999, 0.30858, 39, 127.33999, -26.63999, 0.10869, 5, 2, 307.08, 43.5, 0.11017, 6, 166.95, -82.12999, 0.37281, 7, -20.18, -92.13999, 0.24571, 8, -105.18, -75.33999, 0.21862, 39, 123.08, -64.79, 0.05263, 4, 2, 307.75, 5.69999, 0.18626, 6, 143.25, -111.58999, 0.58008, 7, -57.43, -98.56999, 0.12363, 8, -142.98, -75.33, 0.10999, 2, 2, 308.7, -30.54999, 0.25, 6, 120.75, -140.04, 0.75, 2, 2, 213.94, -142.7, 0.75, 6, -23.82999, -165.45, 0.25, 3, 2, 64.44999, -187.34, 0.31139, 58, -158.45, 158.33, 0.10379, 1, 84.16, -190.98, 0.5848, 1, 1, -61.47, -178.84, 1, 4, 58, 118.47, 114.73999, 0.07383, 59, 17.17, 122.48999, 0.17504, 60, -100.70999, 132.55, 0.06818, 1, -166.91, -67.94999, 0.68294, 4, 58, 170.4, 123.12999, 0.06537, 59, 66.70999, 104.76999, 0.20998, 60, -53.08, 110.20999, 0.12015, 1, -217.69, -61.33, 0.60447, 6, 58, 221.11, 131.31, 0.02178, 59, 115.06999, 87.47, 0.23058, 60, -6.57999, 88.38999, 0.16257, 61, -168.91998, 31, 0.02826, 62, -282.82, -90.19, 0.02899, 1, -267.66, -55.13999, 0.52776, 5, 59, 146.51, 86.08, 0.23634, 60, 26.65999, 83.38999, 0.19337, 61, -134.99, 41.34, 0.06624, 62, -257.52, -60.65, 0.06962, 1, -298.87, -61.99, 0.43435, 5, 59, 178.73, 86.41, 0.2252, 60, 56.68, 81.29, 0.20996, 61, -107.12999, 46.31, 0.1127, 62, -232.44, -51.25999, 0.12148, 1, -328.68, -69.23999, 0.33059, 5, 59, 203.26, 86.51, 0.21603, 60, 83.05999, 77.01999, 0.22457, 61, -79.55999, 53.52999, 0.13939, 62, -210.88998, -28.29999, 0.15618, 1, -354.01, -75.41, 0.26379, 5, 59, 238.06, 85.41, 0.20114, 60, 115.65, 74.66, 0.23149, 61, -49.52999, 60.58, 0.16455, 62, -185.49, -14.97999, 0.19122, 1, -385.33, -83.15, 0.21155, 5, 59, 255.33, 78.84999, 0.18223, 60, 133.83, 63.18, 0.23194, 61, -27.04, 56.84, 0.18907, 62, -163.58, -5.26, 0.22657, 1, -406.45, -79.88999, 0.17014, 5, 59, 275.48, 71.62, 0.16168, 60, 152.97, 53.58, 0.22885, 61, -5.82, 53.93999, 0.21291, 62, -142.85, 0.10999, 0.26159, 1, -427.72, -77.47, 0.13492, 5, 59, 313.81, 53.61, 0.14198, 60, 188.04, 35.81999, 0.22292, 61, 31.84, 49.29999, 0.23477, 62, -106.45999, 7.48999, 0.29326, 1, -465.96, -72.58999, 0.10701, 5, 59, 345.74, 45.54, 0.12501, 60, 219.6, 19.28, 0.21789, 61, 68.30999, 43.02, 0.25622, 62, -70.12999, 18.19, 0.32247, 1, -502.09, -68.19, 0.07835, 4, 59, 390.81, 21.29999, 0.11757, 60, 261.62, -3.66, 0.22607, 61, 114.55, 37.83, 0.29087, 62, -26.14999, 30.34, 0.36546, 4, 59, 423.87, -11.10999, 0.10536, 60, 291.46, -39.06, 0.21953, 61, 154.83, 14.98999, 0.30098, 62, 19.90999, 25.67, 0.37408, 4, 59, 456.68, -43.27, 0.09949, 60, 321.06, -74.19999, 0.21749, 61, 194.79, -7.65999, 0.30788, 62, 65.62, 21.04, 0.37512, 4, 59, 480.34, -100.27999, 0.10045, 60, 339.2, -133.2, 0.22025, 61, 232.3, -56.68999, 0.31103, 62, 119.69999, -8.68999, 0.36823, 4, 59, 424.34, -67.51999, 0.10379, 60, 286.57, -95.26999, 0.23086, 61, 169.77, -39.4, 0.30827, 62, 55.50999, -18.07999, 0.35705, 4, 59, 387.08, -53.84, 0.11505, 60, 250.77, -78.11, 0.24539, 61, 130.24, -35.75, 0.30092, 62, 17.87, -30.67, 0.3386, 4, 59, 346.04, -38.77999, 0.1347, 60, 211.34, -59.22, 0.26271, 61, 86.69999, -31.71999, 0.2888, 62, -23.59, -44.54, 0.31376, 5, 58, 449.17, 125.97, 0.02418, 59, 311.45, -35.25, 0.16383, 60, 175.88998, -56.83, 0.2727, 61, 51.52999, -43.13999, 0.26317, 62, -52.88, -67.87, 0.27606, 5, 58, 418.38, 93.72, 0.05913, 59, 269.72, -40.63999, 0.19681, 60, 135.19, -53.81999, 0.27687, 61, 13.42, -53.11, 0.23218, 62, -82.02999, -93.66, 0.23497, 5, 58, 390.82, 86.58, 0.10638, 59, 241.19, -39.79999, 0.2354, 60, 105.58999, -52.93, 0.27331, 61, -16.25, -62.15999, 0.19459, 62, -108.33999, -111.23999, 0.19028, 5, 58, 364.8, 62.47999, 0.14347, 59, 207.71, -42.13999, 0.28099, 60, 73.33, -49.43, 0.26866, 61, -46.11, -70.48999, 0.15763, 62, -129.51, -133.56, 0.1492, 5, 58, 345.49, 47.52999, 0.18499, 59, 182.34, -50.61999, 0.33114, 60, 45.86999, -56.61999, 0.25881, 61, -71.56999, -84.95999, 0.11739, 62, -150.85, -153.35, 0.10762, 5, 58, 319.95, 15.14999, 0.23755, 59, 145.6, -61.95, 0.39395, 60, 9.60999, -63.25999, 0.24618, 61, -101.05999, -105.58, 0.06443, 62, -165.65, -187.83, 0.05784, 3, 58, 276.58, -30.61, 0.29941, 59, 85.51999, -81.11, 0.46773, 60, -52.00999, -76.62, 0.23283, 3, 58, 214.5, -70.36, 0.32855, 59, 11.97, -85.98, 0.486, 60, -125.69, -74.48, 0.18543, 2, 58, 147.13998, -113.5, 0.59565, 59, -67.83999, -91.26, 0.40432, 2, 2, -113.13999, 135.84, 0.24191, 58, 91.72, -112.58999, 0.75806, 2, 2, -42.11999, 116.76999, 0.14515, 58, 18.2, -111.16999, 0.85483, 1, 2, 44.2, 107.09999, 1, 2, 2, 140.09, 96.34999, 0.22578, 6, 72.58999, 65.41, 0.7742, 4, 2, 137.69, 169.35, 0.05643, 6, 117.5, 123, 0.24355, 7, 78.3, 94.48, 0.2125, 8, 23.7, 91.73999, 0.4875, 2, 7, 171.15, 111.98, 0.25, 8, 118.16999, 93.15, 0.75, 1, 8, 158.96, -25.57999, 1, 1, 1, -40.63, -86.01, 1, 3, 2, 67.33999, -86.66, 0.33215, 58, -137.02, 59.91999, 0.08303, 1, 92.54, -90.61, 0.5848, 2, 2, 170.13, -66.29, 0.75, 6, -8.52999, -78.72, 0.25, 2, 2, 231.74, -8.11999, 0.4, 6, 76.02999, -73.51999, 0.6, 4, 2, 222.04, 70.41, 0.17551, 6, 118.9, -7, 0.55822, 7, -6.57999, -3.99, 0.17738, 8, -76.73, 9.18, 0.08884, 1, 8, 50.43, -46.56, 1, 1, 6, -9.88, 20.64999, 1, 2, 2, -53.22, 20.53, 0.2, 58, 5.8, -15.09, 0.8, 3, 2, -180.7, 32.22, 0.08563, 58, 132.35, 4.23999, 0.56215, 59, -23.97999, 19.01, 0.35218, 3, 58, 246.38998, 57.52999, 0.30272, 59, 101.61, 10.64999, 0.46988, 60, -27.28, 13.19999, 0.22736, 5, 58, 346.99, 126.84999, 0.13479, 59, 223.16998, 22.82999, 0.28279, 60, 94.87999, 13.77, 0.24481, 61, -47.84999, -3.72, 0.17321, 62, -158.02, -73.16, 0.16437, 4, 59, 367.51, -9.96, 0.14655, 60, 235.45, -32.56999, 0.23072, 61, 100.05999, 1.62, 0.29607, 62, -24.80999, -8.63, 0.3266, 4, 59, 440.24, -55.59999, 0.1082, 60, 303.52, -84.91, 0.21897, 61, 182.07, -23.79999, 0.31097, 62, 60.47999, 1.13999, 0.36182, 3, 6, 174.99, 22.21999, 0.2, 7, 54.81999, -19.13999, 0.6, 8, -18.79999, -16.2, 0.2, 3, 58, 189.25, 30.82999, 0.33252, 59, 38.68, 14.84, 0.48076, 60, -89.51999, 23.34, 0.18669, 5, 58, 295.08, 91.08, 0.2289, 59, 160.45, 16.54, 0.38754, 60, 31.85, 13.47999, 0.23059, 61, -106.86, -25.88999, 0.08042, 62, -203.08, -117.23999, 0.07249, 5, 58, 414.43, 146.25, 0.07359, 59, 291.61, 7.26999, 0.20197, 60, 161.52998, -8.19999, 0.23761, 61, 22.27, -1.17999, 0.24023, 62, -94.86, -42.56, 0.24653, 4, 59, 404.01, -32.86999, 0.12351, 60, 269.61, -58.84, 0.2226, 61, 141.21, -11.13, 0.30608, 62, 17.97999, -3.72, 0.34777, 1, 8, 26.39999, -166.06, 1, 1, 8, 87.20999, -106.12, 1, 1, 8, 108.19, -49.61999, 1, 2, 8, 61.72999, -82.12999, 0.5002, 39, 4.42, 52.83, 0.49977, 2, 8, 22.84, -109.4, 0.5002, 39, 51.52, 46.72999, 0.49977, 4, 6, 247.12, -50.52, 0.06544, 7, 60.86, -121.4, 0.06069, 8, -30.29999, -118, 0.49079, 39, 96.58, 17.21999, 0.38304, 1, 2, 26.72999, 14.8, 1, 2, 2, -107.97, 25.67, 0.24191, 58, 60.16999, -6.90999, 0.75806, 4, 2, 235.52998, 102.95999, 0.07609, 6, 150.1, 9.35, 0.35532, 7, 27.63999, -12.34, 0.41675, 8, -44.43, -4.86999, 0.1518, 3, 2, 227.15, 28.48999, 0.31014, 6, 95.95999, -42.45999, 0.60548, 7, -47.22999, -15.43999, 0.08434, 2, 8, 5.19, -153.1, 0.87617, 39, 90.95999, 71.20999, 0.12381, 4, 6, 243.13, -60.59, 0.10668, 7, 51.20999, -126.33, 0.09893, 8, -40.65, -121.20999, 0.47071, 39, 105.70999, 17.32999, 0.32363, 1, 8, 23.69, -185.21, 1, 1, 8, 79.63999, -175.94, 1, 1, 8, 93.95999, -187.56, 1, 1, 8, 87.06999, -206.55, 1, 1, 8, 64.19999, -216.74, 1, 1, 8, 52.22999, -203.68, 1, 1, 8, 59.24, -187.02998, 1, 1, 8, 64.26, -223.8, 1, 1, 8, 89.44, -211.41, 1, 1, 8, 102.04, -186.95, 1, 1, 8, 83.09999, -166.13998, 1, 1, 8, 46.84, -186.41, 1, 1, 8, 50.31999, -204.36, 1, 1, 8, 41.7, -206.59, 1, 1, 8, 61.86999, -230.97, 1, 5, 58, 374.97, 143.6, 0.1029, 59, 256.29, 17.42, 0.23984, 60, 127.43, 2.06999, 0.2431, 61, -13.35, -3.04999, 0.20853, 62, -128.13998, -55.45999, 0.20556, 4, 59, 327.21, 4.42, 0.17789, 60, 196.27998, -19.31999, 0.24247, 61, 58.70999, -1.04999, 0.28055, 62, -62.24, -26.20999, 0.29905, 5, 58, 318.32, 113.62, 0.17773, 59, 192.26, 20.13999, 0.33382, 60, 64.19, 12.43999, 0.24171, 61, -76.55, -13.67, 0.12849, 62, -182.56, -89.30999, 0.11821, 2, 8, 56.97999, -162.99, 0.89258, 39, 57.54, 112, 0.1074 ], "hull": 46, "edges": [ 22, 20, 20, 18, 18, 16, 6, 4, 4, 2, 90, 88, 54, 52, 52, 50, 24, 22, 88, 86, 86, 84, 8, 6, 24, 26, 26, 28, 72, 74, 74, 76, 70, 72, 46, 48, 48, 50, 54, 56, 56, 58, 80, 82, 82, 84, 76, 78, 78, 80, 8, 10, 10, 12, 12, 14, 14, 16, 0, 90, 0, 2, 62, 64, 64, 66, 40, 42, 58, 60, 60, 62, 42, 44, 44, 46, 66, 68, 68, 70, 32, 34, 34, 36, 52, 116, 116, 126, 126, 114, 114, 184, 184, 124, 124, 182, 182, 112, 112, 186, 186, 122, 122, 110, 110, 120, 120, 108, 108, 142, 142, 106, 106, 140, 140, 104, 92, 94, 94, 96, 96, 98, 98, 146, 146, 100, 100, 144, 144, 118, 118, 102, 8, 150, 150, 138, 138, 136, 136, 134, 134, 132, 156, 154, 154, 164, 164, 162, 162, 160, 160, 158, 158, 156, 180, 178, 178, 174, 174, 188, 188, 172, 170, 168, 28, 30, 30, 32, 36, 38, 38, 40 ], "width": 1219, @@ -371,7 +387,7 @@ "type": "mesh", "uvs": [ 0.39562, 0.1396, 0.3877, 0.30212, 0.3123, 0.41784, 0.27287, 0.47835, 0.33388, 0.4507, 0.54879, 0.35328, 0.64092, 0.31152, 0.73024, 0.36529, 1, 0.5277, 1, 0.86606, 0.93242, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77442, 0.62031, 0.73448, 0.58792, 0.64519, 0.53561, 0.6582, 0.13448, 0.75798, 0, 0.69218, 0.01846, 0.56357, 0.05498, 0.30917, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40242, 0, 0.24536, 0.1924, 0.21678, 0.0811 ], "triangles": [ 0, 28, 26, 23, 25, 28, 28, 25, 26, 23, 24, 25, 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 27, 28, 0, 27, 22, 23, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3 ], - "vertices": [ 2, 21, 3.06, 31.88, 0.51075, 6, 66.56, -109.48, 0.48924, 1, 21, 35.87, 35.62, 1, 2, 21, 60.94, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.58, 0.10937, 22, 47.66, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.24, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.24, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89062, 1, 31, 53.62, 34.88, 1, 1, 31, 96.03, -19.16, 1, 1, 31, 104.2, -47.31, 1, 1, 31, 71.33999, -23.98, 1, 1, 31, 81.39, -64.61, 1, 1, 31, 76.8, -68.81, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.76, 0.10937, 31, 31.14, -36.12, 0.89062, 2, 22, 73.98, -26.9, 0.34375, 31, 15.82, -25.09, 0.65625, 2, 22, 65.1, -26.69, 0.65078, 31, 10.78, -32.41, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.67, -14.42, 0.3492, 22, -19.29, -5.39, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.08, 18.37, 0.15358, 1, 21, 45.46, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45035, 6, -1.69, -93.8, 0.54964, 2, 21, -2.74, -29.63, 0.44352, 6, 18.99, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.38, -87.42, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.82, -81.94, 0.51147 ], + "vertices": [ 2, 21, 3.05999, 31.87999, 0.51074, 6, 66.55999, -109.48, 0.48923, 1, 21, 35.86999, 35.61999, 1, 2, 21, 60.93999, 27.12, 0.8464, 22, 46.49, 31.12, 0.15358, 2, 21, 74.05, 22.67, 0.3492, 22, 36.5, 21.53, 0.65078, 3, 21, 67, 31.57999, 0.10937, 22, 47.65999, 23.68, 0.78125, 31, -40.93, -19.44, 0.10937, 2, 22, 86.98, 31.23999, 0.65078, 31, -25.75, 17.61, 0.3492, 2, 22, 103.83, 34.49, 0.34375, 31, -19.23999, 33.49, 0.65625, 2, 22, 114.04, 19.51, 0.10937, 31, -1.11, 33.84, 0.89061, 1, 31, 53.61999, 34.88, 1, 1, 31, 96.02999, -19.15999, 1, 1, 31, 104.19999, -47.31, 1, 1, 31, 71.33999, -23.97999, 1, 1, 31, 81.38999, -64.61, 1, 1, 31, 76.8, -68.80999, 1, 1, 31, 46.65, -34.25, 1, 2, 22, 73.12999, -45.75999, 0.10937, 31, 31.13999, -36.11999, 0.89061, 2, 22, 73.98, -26.89999, 0.34375, 31, 15.81999, -25.09, 0.65625, 2, 22, 65.09999, -26.69, 0.65078, 31, 10.77999, -32.40999, 0.3492, 3, 21, 133.56, 9.13, 0.10937, 22, -2.94, -25.03, 0.78125, 31, -27.84, -88.47, 0.10937, 2, 21, 123.66999, -14.42, 0.3492, 22, -19.29, -5.38999, 0.65078, 2, 21, 97.41, -15.43, 0.8464, 22, -8.07999, 18.37, 0.15358, 1, 21, 45.45999, -17.43, 1, 2, 21, 40.68999, -27.17, 0.45034, 6, -1.69, -93.8, 0.54963, 2, 21, -2.74, -29.62999, 0.44352, 6, 18.98999, -72.93, 0.55646, 1, 6, 32.11, -48.45, 1, 1, 6, 57.56, -67.43, 1, 1, 6, 84.37999, -87.41999, 1, 2, 21, 16.44, 5.21, 0.7182, 6, 46.31, -101.86, 0.28178, 2, 21, -4.51, 5.32, 0.48851, 6, 52.81999, -81.94, 0.51147 ], "hull": 27, "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], "width": 162, @@ -383,7 +399,7 @@ "type": "mesh", "uvs": [ 0.55116, 0.17817, 0.6279, 0.36027, 0.6671, 0.4533, 0.64879, 0.51527, 0.53553, 0.56893, 0.32335, 0.66946, 0.28674, 0.72086, 0.32538, 0.804, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78435, 0.84813, 0.84028, 1, 0.93854, 0.62439, 0.91738, 0.72812, 1, 0.58574, 1, 0.36707, 0.96667, 0.26306, 0.95082, 0.16266, 0.93552, 0.03859, 0.72237, 0, 0.66946, 0.0374, 0.62999, 0.1647, 0.49562, 0.23731, 0.4568, 0.27019, 0.43923, 0.28063, 0.43364, 0.223, 0.4057, 0.12565, 0.35851, 0, 0.29759, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.4493, 0.38031, 0.47664, 0.44361, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65256, 0.18527, 0.72148, 0.25222, 0.86314, 0.30941, 0.88124, 0.55694, 0.89613, 0.55857, 0.89207, 0.47493, 0.85339, 0.6059, 0.91526, 0.39705, 0.89129, 0.13229, 0.09352, 0.36997, 0.45345, 0.37163, 0.43827, 0.32515, 0.39424, 0.23759, 0.34425, 0.34065, 0.47414 ], "triangles": [ 46, 30, 31, 41, 42, 44, 43, 9, 10, 42, 43, 10, 41, 43, 42, 10, 13, 42, 11, 13, 10, 13, 11, 12, 13, 44, 42, 14, 15, 13, 45, 8, 9, 45, 40, 8, 16, 40, 45, 17, 40, 16, 16, 45, 15, 15, 45, 44, 45, 41, 44, 15, 44, 13, 45, 9, 43, 45, 43, 41, 19, 21, 38, 20, 21, 19, 39, 38, 6, 39, 6, 7, 40, 39, 7, 40, 7, 8, 18, 19, 38, 18, 38, 39, 17, 39, 40, 18, 39, 17, 47, 25, 48, 24, 25, 47, 35, 48, 34, 47, 48, 35, 51, 24, 47, 23, 24, 51, 3, 34, 2, 35, 34, 3, 36, 51, 47, 36, 47, 35, 4, 35, 3, 36, 35, 4, 37, 22, 23, 21, 22, 37, 36, 37, 23, 36, 23, 51, 5, 37, 36, 5, 36, 4, 6, 37, 5, 38, 21, 37, 38, 37, 6, 29, 30, 46, 32, 31, 0, 46, 31, 32, 28, 29, 46, 46, 27, 28, 32, 50, 46, 50, 27, 46, 33, 32, 0, 33, 0, 1, 49, 50, 32, 33, 49, 32, 26, 27, 50, 26, 50, 49, 25, 26, 49, 48, 49, 33, 25, 49, 48, 34, 33, 1, 48, 33, 34, 34, 1, 2 ], - "vertices": [ 2, 25, 128.03, 88.47, 0.8504, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77988, 26, -48.04, -38.58, 0.22011, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.73, 10.22, 0.46455, 2, 25, 286.89, 9.79, 0.35166, 26, -14.56, 34.14, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.71, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05786, 26, 132.77, 39.48, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.17, 0.5308, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.14, 99.49, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.72, 45.87, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.96, 0.06431, 5, 26, 154.22, 105.55, 0.07537, 27, 102.57, 62.6, 0.23051, 28, 42.51, 49.55, 0.28379, 29, -7.06, 51.39, 0.27004, 30, -58.17, 28.03, 0.14026, 4, 27, 109.72, 83.39, 0.11607, 28, 64.08999, 55.23, 0.08123, 29, 15.12, 53.51, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.8, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.6, 0.47999, 30, 44.86, -26.17, 0.52, 2, 29, 133.17, -49.83, 0.776, 30, 86.69, -66.47, 0.22399, 2, 29, 78.78, -50.15, 0.76799, 30, 32.38, -69.36, 0.232, 1, 29, -4.91, -33.55, 1, 3, 27, 155.04, -5.13, 0.35917, 28, 17.87999, -32.5, 0.30632, 29, -44.62, -25.61, 0.33449, 4, 26, 254.98, 126.27, 0.10154, 27, 131.21, -36.2, 0.54211, 28, -21.24, -31.17, 0.20873, 29, -83.01999, -17.96999, 0.1476, 3, 26, 240.33, 7.81, 0.25586, 27, 11.94, -30.98, 0.61614, 28, -86.31, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.37, 0.54513, 3, 25, 187.65, -209.73, 0.09777, 26, 216.66, -33.34999, 0.58892, 27, -30.97, -10.65, 0.3133, 2, 25, 163.85, -128.67, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.49, 0.31962, 26, 105.59, -71.26, 0.68037, 2, 25, 166.39, -79.07, 0.46225, 26, 90.23, -72.76, 0.53774, 2, 25, 166.49, -74.17, 0.53785, 26, 85.42, -73.28, 0.46213, 2, 25, 141.54, -82.46, 0.73138, 26, 97.13, -96.82, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.34, -136.23, 0.14675, 2, 25, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16384, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.3701, 2, 25, -74.73, -19.33, 0.31468, 1, -52.66, 17.54999, 0.68531, 2, 25, 1.67, 76.75, 0.25576, 1, 70.07, 18.78, 0.74423, 1, 25, 93.54, 4.13, 1, 2, 25, 185.14, -6.66, 0.75461, 26, 15.98, -64.26999, 0.24538, 2, 25, 217.11, -18.75, 0.50844, 26, 23.47, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32527, 26, 36.3, -20.5, 0.67472, 2, 25, 223, -84.73, 0.20192, 26, 87.96, -15.86, 0.79807, 3, 25, 235.61, -168.06, 0.0809, 26, 168.69, 8.29, 0.57147, 27, 6.74, 40.47, 0.34761, 3, 26, 191.79, 35.8, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.14, 78.74, 0.10211, 4, 26, 206.64, 111.53, 0.10808, 27, 112.69, 10.82, 0.52067, 28, 6.25, 11.23, 0.23517, 29, -49.03, 19.43, 0.13606, 3, 27, 130.6, 26.41, 0.35067, 28, 29.35, 5.71, 0.28241, 29, -27.12, 10.25, 0.3669, 2, 29, 67.46, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61599, 1, 30, 19.07, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61599, 2, 29, 86.23, -6.55, 0.48799, 30, 37.75, -25.46, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23908, 28, 65.44, 5.55, 0.19254, 29, 8.45, 4.27, 0.54574, 2, 25, -9.28, -17.5, 0.59605, 1, 7.72, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.26, 0.79873, 26, 60.44, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.31, -121.18, 0.14544, 2, 25, 197.37, -69.23, 0.3355, 26, 76.17, -43.46, 0.66449 ], + "vertices": [ 2, 25, 128.02998, 88.47, 0.85039, 1, 158.83, -71.91, 0.14959, 2, 25, 219.55, 53.15, 0.77987, 26, -48.04, -38.58, 0.2201, 2, 25, 266.3, 35.09999, 0.53544, 26, -36.72999, 10.22, 0.46454, 2, 25, 286.89, 9.78999, 0.35166, 26, -14.56, 34.13999, 0.64832, 2, 25, 281.54, -41.24, 0.09228, 26, 36.70999, 36, 0.90771, 3, 25, 271.53, -136.86, 0.05785, 26, 132.77, 39.47999, 0.71425, 27, 34.99, 78.76, 0.22787, 3, 26, 158.21, 55.16999, 0.53079, 27, 52.65, 54.63, 0.38143, 28, 7.01, 85.54, 0.08776, 5, 26, 167.13998, 99.48999, 0.21498, 27, 97.55, 49.25, 0.35357, 28, 28.71999, 45.86999, 0.14219, 29, -21.26, 49.99, 0.22491, 30, -72.29, 25.95999, 0.0643, 5, 26, 154.22, 105.55, 0.07536, 27, 102.56999, 62.59999, 0.2305, 28, 42.50999, 49.54999, 0.28378, 29, -7.05999, 51.38999, 0.27004, 30, -58.16999, 28.03, 0.14025, 4, 27, 109.72, 83.38999, 0.11607, 28, 64.08999, 55.22999, 0.08122, 29, 15.11999, 53.50999, 0.36961, 30, -36.09, 31.19, 0.43307, 1, 30, 35.79999, 41.81, 1, 1, 30, 128.11, 17.93, 1, 1, 30, 188.72, -29.42, 1, 2, 29, 93.29, -7.59999, 0.47999, 30, 44.86, -26.17, 0.51999, 2, 29, 133.16998, -49.83, 0.776, 30, 86.69, -66.47, 0.22398, 2, 29, 78.77999, -50.15, 0.76798, 30, 32.38, -69.36, 0.23199, 1, 29, -4.90999, -33.54999, 1, 3, 27, 155.04, -5.13, 0.35916, 28, 17.87999, -32.5, 0.30632, 29, -44.61999, -25.61, 0.33449, 4, 26, 254.98, 126.26999, 0.10153, 27, 131.21, -36.2, 0.54211, 28, -21.23999, -31.17, 0.20872, 29, -83.01999, -17.96999, 0.14759, 3, 26, 240.33, 7.80999, 0.25586, 27, 11.93999, -30.97999, 0.61614, 28, -86.30999, 68.9, 0.12797, 2, 26, 239.26, -23.1, 0.45486, 27, -18.95999, -32.36999, 0.54513, 3, 25, 187.65, -209.73, 0.09776, 26, 216.66, -33.34999, 0.58891, 27, -30.96999, -10.64999, 0.3133, 2, 25, 163.85, -128.66998, 0.19603, 26, 139.75, -68.26, 0.80396, 2, 25, 165.74, -94.48999, 0.31962, 26, 105.58999, -71.26, 0.68036, 2, 25, 166.38998, -79.06999, 0.46224, 26, 90.23, -72.76, 0.53773, 2, 25, 166.49, -74.16999, 0.53785, 26, 85.41999, -73.27999, 0.46213, 2, 25, 141.54, -82.45999, 0.73137, 26, 97.12999, -96.81999, 0.26861, 2, 25, 99.76, -97.08, 0.85324, 26, 117.33999, -136.23, 0.14675, 2, 25, 45.00999, -114.55999, 0.83614, 1, -51.09, -135.29, 0.16383, 2, 25, -16.2, -74.76, 0.62989, 1, -42.95, -58.38, 0.37009, 2, 25, -74.73, -19.32999, 0.31468, 1, -52.65999, 17.54999, 0.68531, 2, 25, 1.66999, 76.75, 0.25576, 1, 70.06999, 18.78, 0.74422, 1, 25, 93.54, 4.13, 1, 2, 25, 185.13998, -6.65999, 0.75461, 26, 15.97999, -64.26999, 0.24537, 2, 25, 217.11, -18.75, 0.50844, 26, 23.46999, -30.93, 0.49154, 2, 25, 225.63, -32.91999, 0.32526, 26, 36.29999, -20.5, 0.67471, 2, 25, 223, -84.73, 0.20192, 26, 87.95999, -15.85999, 0.79807, 3, 25, 235.61, -168.06, 0.08089, 26, 168.69, 8.28999, 0.57147, 27, 6.73999, 40.47, 0.3476, 3, 26, 191.79, 35.79999, 0.32545, 27, 36, 19.62, 0.57243, 28, -31.13999, 78.73999, 0.1021, 4, 26, 206.63998, 111.52999, 0.10807, 27, 112.69, 10.81999, 0.52066, 28, 6.25, 11.22999, 0.23517, 29, -49.02999, 19.43, 0.13605, 3, 27, 130.6, 26.40999, 0.35067, 28, 29.35, 5.71, 0.2824, 29, -27.12, 10.25, 0.36689, 2, 29, 67.45999, 3.16, 0.384, 30, 18.54999, -16.62999, 0.61598, 1, 30, 19.06999, -14.51, 1, 2, 29, 36, 24.95, 0.384, 30, -13.89, 3.64, 0.61598, 2, 29, 86.23, -6.55, 0.48798, 30, 37.75, -25.45999, 0.512, 4, 26, 164.9, 153.55, 0.02263, 27, 151.18, 56, 0.23907, 28, 65.44, 5.55, 0.19254, 29, 8.44999, 4.26999, 0.54574, 2, 25, -9.27999, -17.5, 0.59605, 1, 7.71999, -30.85, 0.40393, 2, 25, 195.9, -53.81, 0.42368, 26, 61.11, -47.06, 0.5763, 2, 25, 190.1, -48.45, 0.53231, 26, 56.61, -53.56, 0.46768, 2, 25, 161.26, -48.25999, 0.79873, 26, 60.43999, -82.12999, 0.20126, 2, 25, 120.37, -58.54, 0.85455, 26, 76.30999, -121.18, 0.14543, 2, 25, 197.37, -69.23, 0.3355, 26, 76.16999, -43.45999, 0.66448 ], "hull": 32, "edges": [ 40, 38, 38, 36, 28, 30, 28, 26, 26, 24, 24, 22, 22, 20, 14, 12, 12, 10, 6, 4, 60, 62, 0, 62, 40, 42, 42, 44, 34, 36, 16, 14, 52, 50, 4, 2, 2, 0, 10, 8, 8, 6, 72, 74, 74, 76, 76, 78, 78, 80, 80, 90, 90, 88, 16, 18, 18, 20, 30, 32, 32, 34, 56, 58, 58, 60, 94, 96, 96, 98, 52, 54, 54, 56, 100, 98, 48, 50, 44, 46, 46, 48, 102, 94, 72, 70, 70, 68, 66, 68, 66, 64, 64, 92, 86, 84, 50, 96, 94, 48, 46, 102, 52, 98, 54, 100, 70, 6, 68, 4, 66, 2, 72, 8, 86, 20, 86, 82, 82, 88, 84, 26, 88, 26 ], "width": 382, @@ -395,7 +411,7 @@ "type": "mesh", "uvs": [ 0.45041, 0.09352, 0.56933, 0.23361, 0.65294, 0.47296, 0.66353, 0.50822, 0.63174, 0.54254, 0.32383, 0.69723, 0.30068, 0.73875, 0.27934, 0.77704, 0.30417, 0.83513, 0.31058, 0.85014, 0.341, 0.85046, 0.45165, 0.85163, 0.59555, 0.81881, 0.91176, 0.92548, 1, 1, 0.56336, 0.96426, 0.48349, 0.9826, 0.29878, 0.98027, 0.22808, 0.98389, 0.15997, 0.98737, 0.15423, 0.95546, 0.13894, 0.87047, 0.07371, 0.78726, 0, 0.75299, 0, 0.7049, 0, 0.671, 0.11875, 0.64652, 0.16535, 0.52659, 0.28495, 0.47397, 0.2901, 0.45773, 0.29427, 0.4446, 0.20635, 0.40396, 0.06128, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.27599, 0.20261, 0.40397, 0.31121, 0.48439, 0.45963, 0.48317, 0.48383, 0.47029, 0.51062, 0.22698, 0.67328, 0.17141, 0.7242, 0.17122, 0.78241, 0.22995, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46582, 0.91414 ], "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], - "vertices": [ 1, 44, 53.94, 69.15, 1, 1, 44, 126.23, 67.31, 1, 2, 44, 226.42, 31.13, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.33, 0.7, 45, -25.64, 13.52, 0.3, 2, 44, 246.67, 8.05, 0.3, 45, -8.60999, 20.02, 0.7, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.16, 0.0625, 2, 45, 131.07, 29.69, 0.7, 46, 22.11, 44.35, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.71, 0.7, 3, 45, 152.6, 65.01, 0.12566, 46, 59.85, 27.41, 0.75203, 47, 15.85, 48.05, 0.12229, 3, 45, 154.28, 71.58999, 0.05444, 46, 66.58999, 26.56, 0.78401, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64716, 47, 26.78, 39.16999, 0.13169, 48, -67.32, 18.95999, 0.22114, 3, 46, 87.93, 69.21, 0.0625, 47, 63.37, 31.39, 0.675, 48, -30.17, 23.3, 0.26249, 2, 47, 113.82, 35.72, 0.1038, 48, 16.23, 43.56, 0.89619, 1, 48, 128.14, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.0138, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.81, 0.7, 48, -12.23, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08333, 47, 1.93, -12.66, 0.83333, 48, -74.26, -38.09999, 0.08333, 2, 46, 106.11, -23.53, 0.3, 47, -21.8, -9.52, 0.7, 2, 46, 97.43, -44.9, 0.7, 47, -44.67, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.29, 0.0625, 1, 46, 49.18, -29.46, 1, 2, 45, 206.75, 5.37, 0.13333, 46, 7.44, -33.77, 0.86666, 2, 45, 219.64, -20.52, 0.36111, 46, -16.64, -49.8, 0.63888, 2, 45, 208.4, -37.82, 0.72083, 46, -35.22, -40.82, 0.27916, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.48, 0.08333, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08333, 45, 119.88, -71.55, 0.91666, 2, 44, 154.99, -70.71, 0.42846, 45, 73.68, -68.47, 0.57153, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.42, -73.36, 0.64395, 2, 44, 146.51, -60.87, 0.59147, 45, 64.17, -77.32, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.13, 0.15538, 1, 44, 63.33, -98.53, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.62, 52.97, 1, 1, 44, 58.14, -6, 1, 1, 44, 121.17, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.7, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.7, 1, 45, 136.67, -7.42, 1, 2, 45, 164.32, 0.66, 0.7, 46, -2.53, 7.73, 0.3, 2, 45, 177.97, 21.57, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.29, 1, 2, 46, 79.66, -3.72, 0.7, 47, -9.28, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.85, 0.04, 47, 62.84, 4.15, 0.7, 48, -21.95, -2.66, 0.26 ], + "vertices": [ 1, 44, 53.93999, 69.15, 1, 1, 44, 126.23, 67.30999, 1, 2, 44, 226.41998, 31.12999, 0.9375, 45, -30.87, -1.11, 0.0625, 2, 44, 240.84, 25.32999, 0.69998, 45, -25.63999, 13.52, 0.3, 2, 44, 246.66998, 8.05, 0.3, 45, -8.60999, 20.02, 0.69998, 3, 44, 240.81, -115.25, 0.0625, 45, 114.8, 19.01, 0.875, 46, 9.47999, 59.15999, 0.0625, 2, 45, 131.07, 29.69, 0.69998, 46, 22.11, 44.34999, 0.3, 2, 45, 146.06, 39.54, 0.3, 46, 33.75999, 30.70999, 0.69998, 3, 45, 152.6, 65.01, 0.12566, 46, 59.84999, 27.40999, 0.75203, 47, 15.85, 48.04999, 0.12229, 3, 45, 154.27998, 71.58999, 0.05443, 46, 66.58999, 26.55999, 0.784, 47, 16.71999, 41.31, 0.16154, 3, 46, 71.19, 35.75999, 0.64715, 47, 26.78, 39.16999, 0.13168, 48, -67.31999, 18.95999, 0.22113, 3, 46, 87.93, 69.20999, 0.0625, 47, 63.36999, 31.38999, 0.675, 48, -30.17, 23.29999, 0.26249, 2, 47, 113.81999, 35.72, 0.10379, 48, 16.22999, 43.56, 0.89618, 1, 48, 128.13998, 12.02, 1, 1, 48, 161.85, -15.81, 1, 2, 47, 90.98, -23.36, 0.01379, 48, 13.52, -19.71999, 0.98619, 2, 47, 62.97, -25.80999, 0.69998, 48, -12.22999, -31.02, 0.3, 3, 46, 115.12, -1.33, 0.08332, 47, 1.92999, -12.65999, 0.83332, 48, -74.26, -38.09999, 0.08332, 2, 46, 106.11, -23.53, 0.3, 47, -21.79999, -9.52, 0.69998, 2, 46, 97.43, -44.9, 0.69998, 47, -44.66999, -6.51, 0.3, 2, 46, 84.26, -40.68999, 0.9375, 47, -43.9, 7.28999, 0.0625, 1, 46, 49.18, -29.45999, 1, 2, 45, 206.75, 5.36999, 0.13333, 46, 7.44, -33.77, 0.86665, 2, 45, 219.63998, -20.52, 0.36111, 46, -16.63999, -49.79999, 0.63888, 2, 45, 208.4, -37.81999, 0.72083, 46, -35.22, -40.81999, 0.27915, 2, 45, 200.49, -50.02, 0.91666, 46, -48.31, -34.47999, 0.08332, 1, 45, 161.1, -36.97, 1, 2, 44, 150.1, -116.76, 0.08332, 45, 119.87999, -71.55, 0.91666, 2, 44, 154.99, -70.70999, 0.42846, 45, 73.68, -68.47, 0.57152, 2, 44, 150.3, -65.26999, 0.35604, 45, 68.41999, -73.36, 0.64394, 2, 44, 146.51, -60.86999, 0.59147, 45, 64.16999, -77.31999, 0.40852, 2, 44, 115.12, -75.08, 0.8446, 45, 79.61, -108.12999, 0.15538, 1, 44, 63.33, -98.52999, 1, 1, 44, 21.78, -94.55, 1, 1, 44, -66.69, -32.04, 1, 1, 44, -6.61999, 52.97, 1, 1, 44, 58.13999, -6, 1, 1, 44, 121.16999, 2.44, 1, 1, 44, 188.87, -12.1, 1, 2, 44, 197.11, -18.42, 0.69998, 45, 19.79, -28.44, 0.3, 2, 44, 203.98, -28.61, 0.3, 45, 29.69, -21.17, 0.69998, 1, 45, 136.66998, -7.42, 1, 2, 45, 164.32, 0.66, 0.69998, 46, -2.52999, 7.73, 0.3, 2, 45, 177.97, 21.56999, 0.25, 46, 19.92, -3.19, 0.75, 1, 46, 71.93, -6.28999, 1, 2, 46, 79.66, -3.72, 0.69998, 47, -9.27999, 21.04, 0.3, 2, 46, 87.98, 7.25, 0.3125, 47, 3.42, 15.76, 0.6875, 3, 46, 114.16, 61.84999, 0.03999, 47, 62.84, 4.15, 0.69998, 48, -21.95, -2.66, 0.25999 ], "hull": 36, "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], "width": 338, @@ -411,9 +427,9 @@ "raptor_jaw": { "raptor_jaw": { "type": "mesh", - "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99999, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], + "uvs": [ 0.40984, 0.22169, 0.42214, 0.3988, 0.67894, 0.53819, 0.7589, 0.62838, 0.99998, 0.4726, 1, 0.53491, 0.87731, 0.77925, 0.63281, 0.94487, 0.39908, 0.96947, 0.19456, 0.89404, 0.21609, 0.6497, 0, 0.46111, 0, 0, 0.26069, 0, 0.19456, 0.29385 ], "triangles": [ 14, 13, 0, 14, 0, 1, 5, 3, 4, 10, 14, 1, 11, 14, 10, 6, 3, 5, 2, 10, 1, 7, 2, 3, 7, 3, 6, 2, 8, 10, 8, 9, 10, 2, 7, 8, 14, 12, 13, 11, 12, 14 ], - "vertices": [ 1, 39, 28.6, 68.85, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.42, 1, 1, 39, 230.31, -13.08, 1, 1, 39, 189.56, -71.99, 1, 1, 39, 132.76, -105.6, 1, 1, 39, 83.71, -55.39, 1, 2, 8, -18.31, 12.1, 0.67732, 39, -0.04, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.48, 1, 1, 39, 1.86, 5.43, 1 ], + "vertices": [ 1, 39, 28.6, 68.84999, 1, 1, 39, 69.65, 38.95, 1, 1, 39, 150.72, 72.87999, 1, 1, 39, 186.16, 74.79, 1, 1, 39, 199.76, 159.69, 1, 1, 39, 213.35, 148.16, 1, 1, 39, 242.43, 74.41999, 1, 1, 39, 230.31, -13.07999, 1, 1, 39, 189.56, -71.98999, 1, 1, 39, 132.76, -105.59999, 1, 1, 39, 83.70999, -55.38999, 1, 2, 8, -18.30999, 12.1, 0.67732, 39, -0.03999, -70.76, 0.32267, 1, 8, 113.44, 16.95, 1, 1, 8, 116.36, -62.47999, 1, 1, 39, 1.86, 5.42999, 1 ], "hull": 14, "edges": [ 22, 24, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 24, 26, 0, 26, 24, 28, 22, 28, 28, 0 ], "width": 305, @@ -431,7 +447,7 @@ "type": "mesh", "uvs": [ 0.85499, 0.06802, 1, 0.13237, 1, 0.20266, 0.95981, 0.26524, 0.88583, 0.38045, 0.80684, 0.46413, 0.74038, 0.53453, 0.81676, 0.5895, 0.51961, 1, 0.4516, 1, 0.01739, 0.8407, 0, 0.80889, 0.24645, 0.36639, 0.3792, 0.39151, 0.42457, 0.32099, 0.49229, 0.21571, 0.57673, 0.10986, 0.66437, 0, 0.70168, 0, 0.56028, 0.46321, 0.68822, 0.29772, 0.76845, 0.18722, 0.61529, 0.39206 ], "triangles": [ 7, 8, 6, 9, 10, 13, 13, 11, 12, 6, 8, 19, 8, 9, 19, 9, 13, 19, 13, 10, 11, 19, 22, 6, 13, 14, 19, 19, 14, 22, 6, 22, 5, 22, 20, 5, 5, 20, 4, 14, 15, 22, 22, 15, 20, 20, 21, 4, 15, 16, 20, 4, 21, 3, 20, 16, 21, 2, 3, 0, 3, 21, 0, 0, 1, 2, 21, 16, 18, 16, 17, 18, 21, 18, 0 ], - "vertices": [ 1, 52, 3.9, -3.27, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.24, 20.28, 1, 2, 52, 23.42, 21.2, 0.7, 53, -15.2, 21.22, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.89, 0.6375, 54, -33.83, 24.96, 0.0625, 3, 52, 52.07, 21.72, 0.0625, 53, 13.43, 21.74, 0.6375, 54, -22.97, 23.11, 0.3, 2, 53, 18.39, 20.76, 0.25, 54, -18.09, 21.82, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.92, 31.57, 1, 1, 54, 53.21, 25, 1, 1, 54, 53.11, -27.48, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.73, -36.75999, 1, 1, 54, -23.82, -22.28, 1, 3, 52, 53.48, -24.61, 0.0625, 53, 14.84, -24.59, 0.575, 54, -24.51, -23.21, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.81, -26.09, 0.6375, 54, -36.62, -23.95, 0.0625, 2, 52, 24.38, -26.12, 0.7, 53, -14.24, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.54, -22.64, 1, 1, 54, -23.08, -0.04, 1, 2, 52, 41.66, -1.72, 0.3125, 53, 3.03, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.7, 53, -14.77, -2.44, 0.3, 2, 53, 13.95, -1.5, 0.64582, 54, -23.94, -0.11, 0.35416 ], + "vertices": [ 1, 52, 3.9, -3.26999, 1, 1, 52, 4.25, 15.05, 1, 1, 52, 13.23999, 20.28, 1, 2, 52, 23.42, 21.2, 0.69998, 53, -15.19999, 21.21999, 0.3, 3, 52, 41.11, 22.87, 0.3, 53, 2.48, 22.88999, 0.63748, 54, -33.83, 24.95999, 0.0625, 3, 52, 52.06999, 21.71999, 0.0625, 53, 13.43, 21.73999, 0.63748, 54, -22.96999, 23.11, 0.3, 2, 53, 18.38999, 20.76, 0.25, 54, -18.09, 21.81999, 0.75, 1, 54, -18.76, 33.09, 1, 1, 54, 49.91999, 31.56999, 1, 1, 54, 53.20999, 25, 1, 1, 54, 53.11, -27.47999, 1, 1, 54, 49.74, -31.27, 1, 1, 54, -20.72999, -36.75999, 1, 1, 54, -23.81999, -22.28, 1, 3, 52, 53.47999, -24.61, 0.0625, 53, 14.84, -24.59, 0.57498, 54, -24.51, -23.20999, 0.3625, 3, 52, 41.43999, -26.12, 0.3, 53, 2.80999, -26.09, 0.63748, 54, -36.61999, -23.95, 0.0625, 2, 52, 24.37999, -26.12, 0.69998, 53, -14.23999, -26.1, 0.3, 1, 52, 5.57, -26.12, 1, 1, 52, 3.53999, -22.63999, 1, 1, 54, -23.07999, -0.03999, 1, 2, 52, 41.65999, -1.72, 0.3125, 53, 3.02999, -1.7, 0.6875, 2, 52, 23.85, -2.46, 0.69998, 53, -14.77, -2.44, 0.3, 2, 53, 13.94999, -1.5, 0.64582, 54, -23.94, -0.10999, 0.35416 ], "hull": 19, "edges": [ 26, 24, 24, 22, 22, 20, 20, 18, 16, 18, 16, 14, 14, 12, 4, 2, 34, 36, 12, 38, 38, 26, 8, 40, 40, 30, 2, 0, 0, 36, 30, 32, 32, 34, 32, 42, 4, 6, 6, 8, 42, 6, 26, 28, 28, 30, 28, 44, 8, 10, 10, 12, 44, 10 ], "width": 108, @@ -446,7 +462,7 @@ "type": "mesh", "uvs": [ 0.35242, 0.2156, 0.4794, 0.44245, 0.62071, 0.61176, 0.80562, 0.75373, 1, 0.90297, 1, 1, 0.8971, 1, 0.72054, 0.92254, 0.50668, 0.82872, 0.30401, 0.70725, 0.10537, 0.57888, 0, 0.50622, 0, 0, 0.26224, 0 ], "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], - "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.26, 33.87, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.41, 20.86, 0.625, 65, -51.54, 33.37, 0.0625, 3, 63, 71.56, 19.02, 0.0625, 64, 18.58, 15.39, 0.625, 65, -21.56, 20.92, 0.3125, 2, 64, 55.03, 16.85, 0.3125, 65, 14.29, 14.23, 0.6875, 2, 64, 93.34, 18.39, 0.08333, 65, 51.98, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.06, -1.49, 0.08333, 65, 39.48, -10.33, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.14, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.73, 0.3125, 3, 63, 38.8, -25.8, 0.3125, 64, -20.74, -23.8, 0.625, 65, -68.62, -8.53, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.99, 0.3125, 2, 63, -17.28, -40.62, 0.91666, 64, -78.44999, -29.71, 0.08333, 1, 63, -59.91, 8.18, 1, 2, 63, -26.13, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08333 ], + "vertices": [ 2, 63, 3.63, 27.04, 0.6875, 64, -47.25999, 33.86999, 0.3125, 3, 63, 39.09, 19.45, 0.3125, 64, -13.40999, 20.86, 0.625, 65, -51.54, 33.36999, 0.0625, 3, 63, 71.55999, 19.02, 0.0625, 64, 18.57999, 15.39, 0.625, 65, -21.55999, 20.92, 0.3125, 2, 64, 55.02999, 16.85, 0.3125, 65, 14.28999, 14.22999, 0.6875, 2, 64, 93.33999, 18.38999, 0.08332, 65, 51.97999, 7.21, 0.91666, 1, 65, 56.09, -4.5, 1, 2, 64, 85.05999, -1.49, 0.08332, 65, 39.47999, -10.32999, 0.91666, 2, 64, 54.22, -9.18, 0.3125, 65, 7.71, -10.96, 0.6875, 3, 63, 75.13999, -14.72, 0.0625, 64, 16.87, -18.5, 0.625, 65, -30.77, -11.72999, 0.3125, 3, 63, 38.79999, -25.79999, 0.3125, 64, -20.73999, -23.79999, 0.625, 65, -68.62, -8.52999, 0.0625, 2, 63, 2.4, -35.77, 0.6875, 64, -58.25, -27.98999, 0.3125, 2, 63, -17.28, -40.61999, 0.91666, 64, -78.44999, -29.70999, 0.08332, 1, 63, -59.90999, 8.18, 1, 2, 63, -26.12999, 37.68999, 0.91666, 64, -75.01999, 49.02, 0.08332 ], "hull": 14, "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], "width": 171, @@ -467,7 +483,7 @@ "type": "mesh", "uvs": [ 0.36822, 0.27893, 0.45737, 0.38897, 0.54451, 0.49651, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77956, 1, 0.63729, 0.81629, 0.53364, 0.72348, 0.40534, 0.6086, 0.30886, 0.52535, 0.21049, 0.44047, 0, 0.26245, 0, 0, 0.30637, 0, 0.20241, 0.23 ], "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], - "vertices": [ 2, 56, 24.71, 8.03, 0.80344, 57, -17.42, 11.02, 0.19655, 2, 56, 37.95, 8.04, 0.59978, 57, -4.36, 8.87, 0.40021, 2, 56, 50.88, 8.04, 0.36895, 57, 8.39, 6.77, 0.63103, 2, 56, 65.92, 12.27, 0.17748, 57, 23.91, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05943, 57, 40.23, 10.28, 0.94056, 2, 56, 98.82, 25.04, 0.01209, 57, 58.46, 15.71, 0.9879, 2, 56, 114.44, 11.57, 0.00191, 57, 71.67, -0.11, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98182, 2, 56, 78.79, -4.14, 0.07487, 57, 33.93999, -9.81, 0.92512, 2, 56, 65.83, -6.24, 0.2028, 57, 20.81, -9.76, 0.79719, 2, 56, 49.78, -8.83, 0.39971, 57, 4.55, -9.7, 0.60028, 2, 56, 37.93, -10.97, 0.62658, 57, -7.48, -9.88, 0.37341, 2, 56, 25.85, -13.15, 0.82034, 57, -19.75, -10.06, 0.17965, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.7, 0.04711, 2, 56, -17.83, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.07, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.62, 4.14, 0.0229 ], + "vertices": [ 2, 56, 24.70999, 8.02999, 0.80343, 57, -17.42, 11.02, 0.19654, 2, 56, 37.95, 8.03999, 0.59978, 57, -4.36, 8.86999, 0.4002, 2, 56, 50.88, 8.03999, 0.36895, 57, 8.39, 6.76999, 0.63103, 2, 56, 65.91999, 12.27, 0.17747, 57, 23.90999, 8.47999, 0.82251, 2, 56, 81.72, 16.7, 0.05942, 57, 40.22999, 10.27999, 0.94055, 2, 56, 98.81999, 25.04, 0.01209, 57, 58.45999, 15.71, 0.9879, 2, 56, 114.44, 11.56999, 0.0019, 57, 71.66999, -0.10999, 0.99808, 2, 56, 100.47, -4.61, 0.01816, 57, 55.25, -13.81, 0.98181, 2, 56, 78.79, -4.13999, 0.07486, 57, 33.93999, -9.81, 0.92511, 2, 56, 65.83, -6.23999, 0.2028, 57, 20.80999, -9.76, 0.79719, 2, 56, 49.77999, -8.82999, 0.3997, 57, 4.55, -9.69999, 0.60027, 2, 56, 37.93, -10.97, 0.62657, 57, -7.48, -9.88, 0.3734, 2, 56, 25.85, -13.14999, 0.82033, 57, -19.75, -10.06, 0.17964, 2, 56, 0.25, -18.03, 0.95288, 57, -45.81, -10.69999, 0.0471, 2, 56, -17.82999, -2.43, 0.97709, 57, -61.11, 7.63, 0.0229, 2, 56, 1.57, 20.06999, 0.94774, 57, -38.29, 26.67, 0.05225, 2, 56, 10.84, -1.23, 0.97709, 57, -32.61999, 4.13999, 0.0229 ], "hull": 16, "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], "width": 97, @@ -582,7 +598,7 @@ { "time": 0.3, "angle": -41.64 }, { "time": 0.3666, "angle": -69.66 }, { "time": 0.4333, "angle": -57.97 }, - { "time": 0.7, "angle": -9.19 }, + { "time": 0.6999, "angle": -9.19 }, { "time": 0.7333, "angle": -7.78 } ], "translate": [ @@ -595,7 +611,7 @@ ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 0.7333, "x": 1, "y": 1 } ] }, @@ -620,7 +636,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": -0.39, "y": 24.29 }, + { "time": 0.6999, "x": -0.39, "y": 24.29 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -648,7 +664,7 @@ "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, { "time": 0.3, "x": 0, "y": 0 }, - { "time": 0.7, "x": 6.75, "y": 25.64 }, + { "time": 0.6999, "x": 6.75, "y": 25.64 }, { "time": 0.7666, "x": 0, "y": 0 } ], "scale": [ @@ -661,7 +677,7 @@ { "time": 0.1, "angle": -11.02 }, { "time": 0.3, "angle": 0.53 }, { "time": 0.4333, "angle": 8.64 }, - { "time": 0.7, "angle": -9.73 }, + { "time": 0.6999, "angle": -9.73 }, { "time": 0.7666, "angle": -4.46, @@ -742,7 +758,7 @@ { "time": 0.4333, "angle": -7.28 }, { "time": 0.5333, "angle": 1.28 }, { "time": 0.6, "angle": -7.22 }, - { "time": 0.7, "angle": -30.66 }, + { "time": 0.6999, "angle": -30.66 }, { "time": 0.7666, "angle": -40.54, @@ -765,7 +781,7 @@ { "time": 0.1, "angle": 0.51 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 1.04 }, - { "time": 0.7, "angle": -3.25 }, + { "time": 0.6999, "angle": -3.25 }, { "time": 0.7666, "angle": 4.81 }, { "time": 1.0666, "angle": 0 } ], @@ -784,7 +800,7 @@ { "time": 0.1666, "angle": -308.79 }, { "time": 0.3, "angle": -398.7 }, { "time": 0.5333, "angle": -297.8 }, - { "time": 0.7, "angle": 62.19 }, + { "time": 0.6999, "angle": 62.19 }, { "time": 0.7666, "angle": -325.36 }, { "time": 0.8333, "angle": -374.42 }, { "time": 1.0666, "angle": 0 } @@ -818,7 +834,7 @@ { "time": 0.1, "angle": -8.25 }, { "time": 0.3, "angle": -1.9 }, { "time": 0.5333, "angle": 5.44 }, - { "time": 0.7, "angle": 24.01 }, + { "time": 0.6999, "angle": 24.01 }, { "time": 0.7666, "angle": 4.82 }, { "time": 0.8666, "angle": -1.78 }, { "time": 1.0666, "angle": 0 } @@ -828,7 +844,7 @@ { "time": 0.1, "x": 0, "y": 0 }, { "time": 0.3, "x": 62.9, "y": -44.25 }, { "time": 0.5333, "x": -4.35, "y": 17.31 }, - { "time": 0.7, "x": 0, "y": 0 }, + { "time": 0.6999, "x": 0, "y": 0 }, { "time": 0.7666, "x": 23.29, "y": -42.27 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } @@ -925,7 +941,7 @@ { "time": 0.1, "x": 35.96, "y": -11.83 }, { "time": 0.3, "x": 31.1, "y": -50.39 }, { "time": 0.5333, "x": 12.1, "y": -8.03 }, - { "time": 0.7, "x": 41.7, "y": -19.46 }, + { "time": 0.6999, "x": 41.7, "y": -19.46 }, { "time": 0.8666, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], @@ -985,7 +1001,7 @@ { "time": 0.4333, "angle": 0.9 }, { "time": 0.5333, "angle": 11.43 }, { "time": 0.6, "angle": 17.22 }, - { "time": 0.7, "angle": 4.74 }, + { "time": 0.6999, "angle": 4.74 }, { "time": 0.7666, "angle": -20.69, @@ -1075,7 +1091,7 @@ { "time": 0.3, "angle": -53.4 }, { "time": 0.5666, "angle": -63.35 }, { "time": 0.7666, "angle": -29.92 }, - { "time": 0.9, "angle": 7.24 }, + { "time": 0.8999, "angle": 7.24 }, { "time": 1, "angle": -3.69 }, { "time": 1.0666, "angle": 0 } ], @@ -1094,7 +1110,7 @@ { "time": 0.1, "angle": 9.93 }, { "time": 0.3, "angle": -3.76 }, { "time": 0.5333, "angle": -26.63 }, - { "time": 0.7, "angle": -10.23 }, + { "time": 0.6999, "angle": -10.23 }, { "time": 0.7666, "angle": 21.8 }, { "time": 0.8666, "angle": 15.36 }, { "time": 1.0666, "angle": 0 } @@ -1175,7 +1191,7 @@ { "time": 0.1666, "angle": -24.93 }, { "time": 0.2333, "angle": -20.34 }, { "time": 0.5333, "angle": -11.2 }, - { "time": 0.7, "angle": 10.49 }, + { "time": 0.6999, "angle": 10.49 }, { "time": 0.8333, "angle": -30.21, @@ -1215,7 +1231,7 @@ { "time": 0.4333, "angle": 11.11 }, { "time": 0.5333, "angle": 25.19 }, { "time": 0.6, "angle": 32.5 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1350,7 +1366,7 @@ { "time": 0, "angle": 15.56 }, { "time": 0.2333, "angle": -0.92 }, { "time": 0.5, "angle": 20.4 }, - { "time": 0.7, "angle": 18.32 }, + { "time": 0.6999, "angle": 18.32 }, { "time": 0.7666, "angle": 5.17 }, { "time": 0.8333, "angle": 20.34 }, { "time": 1.0666, "angle": 15.56 } @@ -1401,18 +1417,18 @@ { "time": 0.3666, "angle": -87.93 }, { "time": 0.4333, "angle": -126.75 }, { "time": 0.5333, "angle": -63.79 }, - { "time": 0.7, "angle": 24.85 }, + { "time": 0.6999, "angle": 24.85 }, { "time": 0.7666, "angle": 0, "curve": "stepped" }, { "time": 1.0666, "angle": 0 } ], "translate": [ { "time": 0, "x": 0, "y": 0, "curve": "stepped" }, - { "time": 0.7, "x": 0, "y": 0, "curve": "stepped" }, + { "time": 0.6999, "x": 0, "y": 0, "curve": "stepped" }, { "time": 1.0666, "x": 0, "y": 0 } ], "scale": [ { "time": 0, "x": 1, "y": 1, "curve": "stepped" }, - { "time": 0.7, "x": 1, "y": 1, "curve": "stepped" }, + { "time": 0.6999, "x": 1, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 1, "y": 1 } ] }, @@ -1454,7 +1470,7 @@ { "time": 0.4333, "angle": 10.5 }, { "time": 0.5333, "angle": 24.81 }, { "time": 0.6, "angle": 32.21 }, - { "time": 0.7, "angle": 24.4 }, + { "time": 0.6999, "angle": 24.4 }, { "time": 0.7666, "angle": 9.9, @@ -1562,7 +1578,7 @@ { "time": 0.3, "angle": 12.64 }, { "time": 0.4666, "angle": 24.85 }, { "time": 0.5333, "angle": 9.28 }, - { "time": 0.7, "angle": 4.77 }, + { "time": 0.6999, "angle": 4.77 }, { "time": 0.7666, "angle": 37.9 }, { "time": 0.8333, @@ -1809,7 +1825,7 @@ "time": 0.8, "x": 178.8, "y": 136.52, - "curve": [ 0.25, 0, 0.858, 0.82 ] + "curve": [ 0.25, 0, 0.858, 0.81 ] }, { "time": 1.0666, "x": 161.93, "y": 4.89 } ] @@ -1891,7 +1907,7 @@ { "time": 0.0666, "angle": 4.13 }, { "time": 0.3333, "angle": -5.77 }, { "time": 0.6333, "angle": 4.13 }, - { "time": 0.9, "angle": -5.77 }, + { "time": 0.8999, "angle": -5.77 }, { "time": 1.0666, "angle": 1.3 } ], "translate": [ @@ -1987,7 +2003,7 @@ ], "scale": [ { "time": 0, "x": 0.8, "y": 1 }, - { "time": 0.2333, "x": 0.9, "y": 1 }, + { "time": 0.2333, "x": 0.899, "y": 1 }, { "time": 0.5, "x": 0.8, "y": 1, "curve": "stepped" }, { "time": 1.0666, "x": 0.8, "y": 1 } ] @@ -2208,7 +2224,7 @@ { "time": 0.3, "angle": -0.35 }, { "time": 0.4333, "angle": -1.7 }, { "time": 0.6333, "angle": -2.54 }, - { "time": 0.9, "angle": -0.51 }, + { "time": 0.8999, "angle": -0.51 }, { "time": 1.0666, "angle": -4.44 } ], "translate": [ @@ -2360,7 +2376,7 @@ { "time": 0.3, "angle": 2.77 }, { "time": 0.4333, "angle": 1.42 }, { "time": 0.6333, "angle": 0.58 }, - { "time": 0.9, "angle": 2.61 }, + { "time": 0.8999, "angle": 2.61 }, { "time": 1.0666, "angle": -1.31 } ], "translate": [ @@ -2607,7 +2623,7 @@ { "time": 0.7333, "offset": 110, - "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] + "vertices": [ -0.82485, 0.73406, -0.01284, -1.10443, 0, 0, 0, 0, 1.4866, -2.59426, 0.98071, 2.82342, 2.7366, -10.49935, 6.12506, 8.95281, -2.60873, -2.28384, 3.43417, -0.47045, -2.28305, -4.76037, 5.08892, 1.40078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37966, -1.75515, -2.13229, -0.65667, -2.86239, -0.77365, 2.45989, -1.65319 ] }, { "time": 0.8, "curve": "stepped" }, { "time": 0.9666, "curve": "stepped" }, diff --git a/spine-ts/widget/example/assets/spineboy.json b/spine-ts/widget/example/assets/spineboy.json index 074333537..b63de2a04 100644 --- a/spine-ts/widget/example/assets/spineboy.json +++ b/spine-ts/widget/example/assets/spineboy.json @@ -1,5 +1,12 @@ { -"skeleton": { "hash": "rPoYyBLFG6F0CGZ5wsUEBKDJU9U", "spine": "3.4.02", "width": 470.9, "height": 731.49, "images": "./images/" }, +"skeleton": { + "hash": "H7+xXqKKrnDC1fiM9L7F+WiY4ro", + "spine": "3.5.03-beta", + "width": 470.9, + "height": 731.49, + "fps": 30, + "images": "./images/" +}, "bones": [ { "name": "hip", "y": 247.47 }, { "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" }, @@ -89,7 +96,7 @@ "head": { "type": "boundingbox", "vertexCount": 6, - "vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ] + "vertices": [ -19.13999, -70.3, 40.79999, -118.06999, 257.77, -115.61, 285.16, 57.18, 120.76999, 164.95, -5.05999, 76.94 ] } }, "mouth": { @@ -230,7 +237,7 @@ { "time": 0.4, "angle": -292.35 }, { "time": 0.4333, "angle": -315.84 }, { "time": 0.5, "angle": -347.94 }, - { "time": 0.7, "angle": -347.33, "curve": "stepped" }, + { "time": 0.6999, "angle": -347.33, "curve": "stepped" }, { "time": 2.2333, "angle": -347.33 }, { "time": 2.7, "angle": -290.68 }, { "time": 2.7666, "angle": -285.1 }, @@ -271,7 +278,7 @@ { "time": 0.4, "angle": -18.92 }, { "time": 0.4333, "angle": -18.28 }, { "time": 0.5, "angle": 60.61 }, - { "time": 0.7, "angle": -18.87, "curve": "stepped" }, + { "time": 0.6999, "angle": -18.87, "curve": "stepped" }, { "time": 2.2333, "angle": -18.87 }, { "time": 2.7, "angle": -1.95, "curve": "stepped" }, { "time": 4.6666, "angle": -1.95 }, @@ -289,7 +296,7 @@ "rotate": [ { "time": 0, "angle": -2.33 }, { "time": 0.2666, "angle": 26.34 }, - { "time": 0.7, "angle": -6.07, "curve": "stepped" }, + { "time": 0.6999, "angle": -6.07, "curve": "stepped" }, { "time": 2.2333, "angle": -6.07 }, { "time": 2.7, "angle": 5.72, "curve": "stepped" }, { "time": 4.6666, "angle": 5.72 }, @@ -2054,7 +2061,7 @@ { "time": 0.4, "angle": -28.62 }, { "time": 0.5, "angle": -19.3 }, { "time": 0.6, "angle": -3.08 }, - { "time": 0.7, "angle": 29.51 }, + { "time": 0.6999, "angle": 29.51 }, { "time": 0.8, "angle": 15.79 } ], "translate": [ @@ -2078,7 +2085,7 @@ { "time": 0.3, "angle": 15.98 }, { "time": 0.4, "angle": 5.94 }, { "time": 0.5, "angle": -26.76 }, - { "time": 0.7, "angle": -55.44 }, + { "time": 0.6999, "angle": -55.44 }, { "time": 0.8, "angle": 5.12 } ], "translate": [ @@ -2099,14 +2106,14 @@ { "time": 0.4, "angle": 8.69 }, { "time": 0.5, "angle": 12.16 }, { "time": 0.6, "angle": -24.62 }, - { "time": 0.7, "angle": -27.26 }, + { "time": 0.6999, "angle": -27.26 }, { "time": 0.8, "angle": -34.38 } ], "translate": [ { "time": 0, "x": 0, "y": 0 }, { "time": 0.4, "x": 4.08, "y": -9.53 }, { "time": 0.5, "x": 0, "y": 0 }, - { "time": 0.7, "x": -21.14, "y": -9.6 }, + { "time": 0.6999, "x": -21.14, "y": -9.6 }, { "time": 0.8, "x": 0, "y": 0 } ], "scale": [ @@ -2123,7 +2130,7 @@ { "time": 0.4, "angle": 15.95 }, { "time": 0.5, "angle": -9 }, { "time": 0.6, "angle": 26.06 }, - { "time": 0.7, "angle": 21.85 }, + { "time": 0.6999, "angle": 21.85 }, { "time": 0.8, "angle": 14.26 } ], "translate": [ @@ -2146,7 +2153,7 @@ { "time": 0.4, "angle": 13.45 }, { "time": 0.5, "angle": -3.57 }, { "time": 0.6, "angle": -0.97 }, - { "time": 0.7, "angle": 2.97 }, + { "time": 0.6999, "angle": 2.97 }, { "time": 0.8, "angle": 10.13 } ], "translate": [ @@ -2290,7 +2297,7 @@ "curve": [ 0.287, 0.37, 0.718, 0.76 ] }, { - "time": 0.7, + "time": 0.6999, "x": -23.93, "y": 10.34, "curve": [ 0.615, 0, 0.75, 1 ] @@ -2327,7 +2334,7 @@ { "time": 0.4, "angle": 10.22 }, { "time": 0.5, "angle": 11.44 }, { "time": 0.6, "angle": -0.33 }, - { "time": 0.7, "angle": 0.15 }, + { "time": 0.6999, "angle": 0.15 }, { "time": 0.8, "angle": 12.49 } ], "translate": [ diff --git a/spine-ts/widget/example/index.html b/spine-ts/widget/example/index.html index 7d5ce8d2d..e500d4a64 100644 --- a/spine-ts/widget/example/index.html +++ b/spine-ts/widget/example/index.html @@ -14,13 +14,13 @@