From ce0b4ff2b2a6a0f9a33973a0906e76ba94fd93e7 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Mon, 16 Dec 2019 14:50:03 +0100 Subject: [PATCH 01/10] [unity] Now supporting correct CanvasGroup alpha blending at SkeletonGraphic shaders via an additional parameter `CanvasGroup Compatible`. Closes #1576. --- .../SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader | 1 + .../Spine-SkeletonGraphic-TintBlack-Outline.shader | 1 + .../Spine-SkeletonGraphic-TintBlack.shader | 9 ++++++++- .../Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader index edd26d2f5..05f279ea5 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader @@ -6,6 +6,7 @@ Shader "Spine/Outline/SkeletonGraphic" { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 _Color ("Tint", Color) = (1,1,1,1) [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8 diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack-Outline.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack-Outline.shader index db53433a8..f739f1145 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack-Outline.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack-Outline.shader @@ -6,6 +6,7 @@ Shader "Spine/Outline/SkeletonGraphic Tint Black" { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 _Color ("Tint", Color) = (1,1,1,1) _Black ("Black Point", Color) = (0,0,0,0) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack.shader index 95372218d..0e731a730 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack.shader @@ -6,6 +6,7 @@ Shader "Spine/SkeletonGraphic Tint Black" { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 _Color ("Tint", Color) = (1,1,1,1) _Black ("Black Point", Color) = (0,0,0,0) @@ -64,6 +65,7 @@ Shader "Spine/SkeletonGraphic Tint Black" CGPROGRAM #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE #pragma vertex vert #pragma fragment frag @@ -128,7 +130,12 @@ Shader "Spine/SkeletonGraphic Tint Black" clip (texColor.a - 0.001); #endif - return (texColor * IN.color) + float4(((1-texColor.rgb) * (_Black.rgb + float3(IN.uv1.r, IN.uv1.g, IN.uv2.r)) * texColor.a * _Color.a * IN.color.a), 0); + half4 color = (texColor * IN.color) + float4(((1-texColor.rgb) * (_Black.rgb + float3(IN.uv1.r, IN.uv1.g, IN.uv2.r)) * texColor.a * _Color.a * IN.color.a), 0); + #ifdef _CANVAS_GROUP_COMPATIBLE + // CanvasGroup alpha sets vertex color alpha, but does not premultiply it to rgb components. + color.rgb *= IN.color.a; + #endif + return color; } ENDCG } diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader index 5617a6904..d01657b0c 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader @@ -6,6 +6,7 @@ Shader "Spine/SkeletonGraphic" { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 _Color ("Tint", Color) = (1,1,1,1) [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8 @@ -62,6 +63,7 @@ Shader "Spine/SkeletonGraphic" CGPROGRAM #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE #pragma vertex vert #pragma fragment frag #pragma target 2.0 @@ -119,6 +121,10 @@ Shader "Spine/SkeletonGraphic" #endif half4 color = (texColor + _TextureSampleAdd) * IN.color; + #ifdef _CANVAS_GROUP_COMPATIBLE + // CanvasGroup alpha sets vertex color alpha, but does not premultiply it to rgb components. + color.rgb *= IN.color.a; + #endif color *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); From f0e4a1ebf08e2e420754ad2accff8f7519f20353 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Mon, 16 Dec 2019 15:37:19 +0100 Subject: [PATCH 02/10] [unity] Added changelog section about CanvasGroup alpha support at SkeletonGraphic shaders. See #1576. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28588f31f..edc6778a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -198,6 +198,7 @@ * `Outline rendering functionality for all shaders.` Every shader now provides an additional set of `Outline` parameters to enable custom outline rendering. When outline rendering is enabled via the `Material` inspector, it automatically switches the shader to the respective `Spine/Outline` shader variant. Outlines are generated by sampling neighbour pixels, so be sure to add enough transparent padding when exporting your atlas textures to fit the desired outline width. In order to enable outline rendering at a skeleton, it is recommended to first prepare an additional outline material copy and then switch the material of the target skeleton to this material. This prevents unnecessary additional runtime material copies and drawcalls. Material switching can be prepared via a [SkeletonRendererCustomMaterials](http://esotericsoftware.com/spine-unity#SkeletonRendererCustomMaterials) component and then enabled or disabled at runtime. Alternatively, you can also directly modify the `SkeletonRenderer.CustomMaterialOverride` property. Outline rendering is fully supported on `SkeletonGraphic` shaders as well. * Added `SkeletonRenderer.EditorSkipSkinSync` scripting API property to be able to set custom skins in editor scripts. Enable this property when overwriting the Skeleton's skin from an editor script. Without setting this parameter, changes will be overwritten by the next inspector update. Only affects Inspector synchronisation of skin with `initialSkinName`, not startup initialization. + * All `Spine/SkeletonGraphic` shaders now provide a parameter `CanvasGroup Compatible` which can be enabled to support `CanvasGroup` alpha blending. For correct results, you should then disable `Pma Vertex Colors` in the `SkeletonGraphic` Inspector, in section `Advanced` (otherwise Slot alpha will be applied twice). * **Changes of default values** * `SkeletonMecanim`'s `Layer Mix Mode` now defaults to `MixMode.MixNext` instead of `MixMode.MixAlways`. From 3f9d7b1c637d4f336f8226e62ffb15a02b39d20b Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Mon, 16 Dec 2019 17:12:10 +0100 Subject: [PATCH 03/10] [unity] Fixed SkeletonData asset preview constantly loading when editing a prefab. Closes #1545. --- .../Asset Types/SkeletonDataAssetInspector.cs | 54 +++++++++---------- .../BoneFollowerGraphicInspector.cs | 2 +- .../Components/BoneFollowerInspector.cs | 2 +- .../BoundingBoxFollowerInspector.cs | 2 +- .../Components/PointFollowerInspector.cs | 2 +- .../Components/SkeletonGraphicInspector.cs | 2 +- .../Spine/Editor/spine-unity/Editor/Menus.cs | 4 +- .../Editor/Utility/AssetUtility.cs | 47 +++++++++------- .../Editor/Windows/SkeletonBaker.cs | 12 ++--- 9 files changed, 68 insertions(+), 59 deletions(-) diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs index a74b2b359..4b9289ae7 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs @@ -175,7 +175,7 @@ namespace Spine.Unity.Editor { // Header EditorGUILayout.LabelField(SpineInspectorUtility.TempContent(target.name + " (SkeletonDataAsset)", Icons.spine), EditorStyles.whiteLargeLabel); if (targetSkeletonData != null) EditorGUILayout.LabelField("(Drag and Drop to instantiate.)", EditorStyles.miniLabel); - + // Main Serialized Fields using (var changeCheck = new EditorGUI.ChangeCheckScope()) { using (new SpineInspectorUtility.BoxScope()) @@ -201,11 +201,11 @@ namespace Spine.Unity.Editor { } } } - + // Unity Quirk: Some code depends on valid preview. If preview is initialized elsewhere, this can cause contents to change between Layout and Repaint events, causing GUILayout control count errors. if (NoProblems()) preview.Initialize(this.Repaint, targetSkeletonDataAsset, this.LastSkinName); - + if (targetSkeletonData != null) { GUILayout.Space(20f); @@ -597,7 +597,7 @@ namespace Spine.Unity.Editor { warnings.Add("Missing Skeleton JSON"); } else { var fieldValue = (TextAsset)skeletonJSON.objectReferenceValue; - + if (!AssetUtility.IsSpineData(fieldValue, out compatibilityProblemInfo)) { warnings.Add("Skeleton data file is not a valid Spine JSON or binary file."); } else { @@ -807,13 +807,13 @@ namespace Spine.Unity.Editor { return; } + const int PreviewLayer = 30; + const int PreviewCameraCullingMask = 1 << PreviewLayer; + if (previewRenderUtility == null) { previewRenderUtility = new PreviewRenderUtility(true); animationLastTime = CurrentTime; - const int PreviewLayer = 30; - const int PreviewCameraCullingMask = 1 << PreviewLayer; - { var c = this.PreviewUtilityCamera; c.orthographic = true; @@ -825,32 +825,32 @@ namespace Spine.Unity.Editor { } DestroyPreviewGameObject(); + } - if (previewGameObject == null) { - try { - previewGameObject = EditorInstantiation.InstantiateSkeletonAnimation(skeletonDataAsset, skinName).gameObject; + if (previewGameObject == null) { + try { + previewGameObject = EditorInstantiation.InstantiateSkeletonAnimation(skeletonDataAsset, skinName, useObjectFactory:false).gameObject; - if (previewGameObject != null) { - previewGameObject.hideFlags = HideFlags.HideAndDontSave; - previewGameObject.layer = PreviewLayer; - skeletonAnimation = previewGameObject.GetComponent(); - skeletonAnimation.initialSkinName = skinName; - skeletonAnimation.LateUpdate(); - previewGameObject.GetComponent().enabled = false; + if (previewGameObject != null) { + previewGameObject.hideFlags = HideFlags.HideAndDontSave; + previewGameObject.layer = PreviewLayer; + skeletonAnimation = previewGameObject.GetComponent(); + skeletonAnimation.initialSkinName = skinName; + skeletonAnimation.LateUpdate(); + previewGameObject.GetComponent().enabled = false; - #if SPINE_UNITY_2018_PREVIEW_API - previewRenderUtility.AddSingleGO(previewGameObject); - #endif - } - - if (this.ActiveTrack != null) cameraAdjustEndFrame = EditorApplication.timeSinceStartup + skeletonAnimation.AnimationState.GetCurrent(0).Alpha; - AdjustCameraGoals(); - } catch { - DestroyPreviewGameObject(); + #if SPINE_UNITY_2018_PREVIEW_API + previewRenderUtility.AddSingleGO(previewGameObject); + #endif } - RefreshOnNextUpdate(); + if (this.ActiveTrack != null) cameraAdjustEndFrame = EditorApplication.timeSinceStartup + skeletonAnimation.AnimationState.GetCurrent(0).Alpha; + AdjustCameraGoals(); + } catch { + DestroyPreviewGameObject(); } + + RefreshOnNextUpdate(); } } diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs index e11b8ce7f..9836dfa68 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs @@ -47,7 +47,7 @@ namespace Spine.Unity.Editor { [MenuItem ("CONTEXT/SkeletonGraphic/Add BoneFollower GameObject")] static void AddBoneFollowerGameObject (MenuCommand cmd) { var skeletonGraphic = cmd.context as SkeletonGraphic; - var go = EditorInstantiation.NewGameObject("BoneFollower", typeof(RectTransform)); + var go = EditorInstantiation.NewGameObject("BoneFollower", true, typeof(RectTransform)); var t = go.transform; t.SetParent(skeletonGraphic.transform); t.localPosition = Vector3.zero; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs index 33e23db8d..3e5580f0d 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs @@ -45,7 +45,7 @@ namespace Spine.Unity.Editor { [MenuItem ("CONTEXT/SkeletonRenderer/Add BoneFollower GameObject")] static void AddBoneFollowerGameObject (MenuCommand cmd) { var skeletonRenderer = cmd.context as SkeletonRenderer; - var go = EditorInstantiation.NewGameObject("New BoneFollower"); + var go = EditorInstantiation.NewGameObject("New BoneFollower", true); var t = go.transform; t.SetParent(skeletonRenderer.transform); t.localPosition = Vector3.zero; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs index eebc2909a..6f468a046 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs @@ -191,7 +191,7 @@ namespace Spine.Unity.Editor { #endregion static GameObject AddBoundingBoxFollowerChild (SkeletonRenderer sr, BoundingBoxFollower original = null) { - var go = EditorInstantiation.NewGameObject("BoundingBoxFollower"); + var go = EditorInstantiation.NewGameObject("BoundingBoxFollower", true); go.transform.SetParent(sr.transform, false); var newFollower = go.AddComponent(); diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs index 0dbbe8ee5..528a04413 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs @@ -46,7 +46,7 @@ namespace Spine.Unity.Editor { [MenuItem("CONTEXT/SkeletonRenderer/Add PointFollower GameObject")] static void AddBoneFollowerGameObject (MenuCommand cmd) { var skeletonRenderer = cmd.context as SkeletonRenderer; - var go = EditorInstantiation.NewGameObject("PointFollower"); + var go = EditorInstantiation.NewGameObject("PointFollower", true); var t = go.transform; t.SetParent(skeletonRenderer.transform); t.localPosition = Vector3.zero; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs index 201f49dbf..b24298f51 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs @@ -205,7 +205,7 @@ namespace Spine.Unity.Editor { } static GameObject NewSkeletonGraphicGameObject (string gameObjectName) { - var go = EditorInstantiation.NewGameObject(gameObjectName, typeof(RectTransform), typeof(CanvasRenderer), typeof(SkeletonGraphic)); + var go = EditorInstantiation.NewGameObject(gameObjectName, true, typeof(RectTransform), typeof(CanvasRenderer), typeof(SkeletonGraphic)); var graphic = go.GetComponent(); graphic.material = SkeletonGraphicInspector.DefaultSkeletonGraphicMaterial; return go; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs index e3f74db54..dc4f3b952 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs @@ -36,12 +36,12 @@ namespace Spine.Unity.Editor { public static class Menus { [MenuItem("GameObject/Spine/SkeletonRenderer", false, 10)] static public void CreateSkeletonRendererGameObject () { - EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonRenderer"); + EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonRenderer", true); } [MenuItem("GameObject/Spine/SkeletonAnimation", false, 10)] static public void CreateSkeletonAnimationGameObject () { - EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonAnimation"); + EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonAnimation", true); } } } diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs index e2a12061e..865263e87 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs @@ -330,9 +330,11 @@ namespace Spine.Unity.Editor { #endif } - SkeletonDataAssetInspector[] skeletonDataInspectors = Resources.FindObjectsOfTypeAll(); - foreach (var inspector in skeletonDataInspectors) { - inspector.UpdateSkeletonData(); + if (atlasPaths.Count > 0 || imagePaths.Count > 0 || skeletonPaths.Count > 0) { + SkeletonDataAssetInspector[] skeletonDataInspectors = Resources.FindObjectsOfTypeAll(); + foreach (var inspector in skeletonDataInspectors) { + inspector.UpdateSkeletonData(); + } } // Any post processing of images @@ -905,13 +907,17 @@ namespace Spine.Unity.Editor { } } - public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, string skinName, bool destroyInvalid = true) { + public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, string skinName, + bool destroyInvalid = true, bool useObjectFactory = true) { + var skeletonData = skeletonDataAsset.GetSkeletonData(true); var skin = skeletonData != null ? skeletonData.FindSkin(skinName) : null; - return InstantiateSkeletonAnimation(skeletonDataAsset, skin, destroyInvalid); + return InstantiateSkeletonAnimation(skeletonDataAsset, skin, destroyInvalid, useObjectFactory); } - public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, Skin skin = null, bool destroyInvalid = true) { + public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, Skin skin = null, + bool destroyInvalid = true, bool useObjectFactory = true) { + SkeletonData data = skeletonDataAsset.GetSkeletonData(true); if (data == null) { @@ -928,7 +934,8 @@ namespace Spine.Unity.Editor { } string spineGameObjectName = string.Format("Spine GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", "")); - GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, typeof(MeshFilter), typeof(MeshRenderer), typeof(SkeletonAnimation)); + GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, useObjectFactory, + typeof(MeshFilter), typeof(MeshRenderer), typeof(SkeletonAnimation)); SkeletonAnimation newSkeletonAnimation = go.GetComponent(); newSkeletonAnimation.skeletonDataAsset = skeletonDataAsset; TryInitializeSkeletonRendererSettings(newSkeletonAnimation, skin); @@ -954,28 +961,28 @@ namespace Spine.Unity.Editor { } /// Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable. - public static GameObject NewGameObject (string name) { + public static GameObject NewGameObject (string name, bool useObjectFactory) { #if NEW_PREFAB_SYSTEM - return ObjectFactory.CreateGameObject(name); - #else - return new GameObject(name); + if (useObjectFactory) + return ObjectFactory.CreateGameObject(name); #endif + return new GameObject(name); } /// Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable. - public static GameObject NewGameObject (string name, params System.Type[] components) { + public static GameObject NewGameObject (string name, bool useObjectFactory, params System.Type[] components) { #if NEW_PREFAB_SYSTEM - return ObjectFactory.CreateGameObject(name, components); - #else - return new GameObject(name, components); + if (useObjectFactory) + return ObjectFactory.CreateGameObject(name, components); #endif + return new GameObject(name, components); } - public static void InstantiateEmptySpineGameObject (string name) where T : MonoBehaviour { + public static void InstantiateEmptySpineGameObject (string name, bool useObjectFactory) where T : MonoBehaviour { var parentGameObject = Selection.activeObject as GameObject; var parentTransform = parentGameObject == null ? null : parentGameObject.transform; - var gameObject = EditorInstantiation.NewGameObject(name, typeof(T)); + var gameObject = EditorInstantiation.NewGameObject(name, useObjectFactory, typeof(T)); gameObject.transform.SetParent(parentTransform, false); EditorUtility.FocusProjectWindow(); Selection.activeObject = gameObject; @@ -988,7 +995,8 @@ namespace Spine.Unity.Editor { return InstantiateSkeletonMecanim(skeletonDataAsset, skeletonDataAsset.GetSkeletonData(true).FindSkin(skinName)); } - public static SkeletonMecanim InstantiateSkeletonMecanim (SkeletonDataAsset skeletonDataAsset, Skin skin = null, bool destroyInvalid = true) { + public static SkeletonMecanim InstantiateSkeletonMecanim (SkeletonDataAsset skeletonDataAsset, Skin skin = null, + bool destroyInvalid = true, bool useObjectFactory = true) { SkeletonData data = skeletonDataAsset.GetSkeletonData(true); if (data == null) { @@ -1005,7 +1013,8 @@ namespace Spine.Unity.Editor { } string spineGameObjectName = string.Format("Spine Mecanim GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", "")); - GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, typeof(MeshFilter), typeof(MeshRenderer), typeof(Animator), typeof(SkeletonMecanim)); + GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, useObjectFactory, + typeof(MeshFilter), typeof(MeshRenderer), typeof(Animator), typeof(SkeletonMecanim)); if (skeletonDataAsset.controller == null) { SkeletonBaker.GenerateMecanimAnimationClips(skeletonDataAsset); diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs index 4fae837ba..54e009550 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs @@ -184,7 +184,7 @@ namespace Spine.Unity.Editor { Debug.LogError("Could not export Spine Skeleton because SkeletonDataAsset is null or invalid!"); return; } - + if (outputPath == "") { outputPath = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(skeletonDataAsset)).Replace('\\', '/') + "/Baked"; System.IO.Directory.CreateDirectory(outputPath); @@ -299,7 +299,7 @@ namespace Spine.Unity.Editor { } } - GameObject prefabRoot = EditorInstantiation.NewGameObject("root"); + GameObject prefabRoot = EditorInstantiation.NewGameObject("root", true); Dictionary slotTable = new Dictionary(); Dictionary boneTable = new Dictionary(); @@ -308,7 +308,7 @@ namespace Spine.Unity.Editor { //create bones for (int i = 0; i < skeletonData.Bones.Count; i++) { var boneData = skeletonData.Bones.Items[i]; - Transform boneTransform = EditorInstantiation.NewGameObject(boneData.Name).transform; + Transform boneTransform = EditorInstantiation.NewGameObject(boneData.Name, true).transform; boneTransform.parent = prefabRoot.transform; boneTable.Add(boneTransform.name, boneTransform); boneList.Add(boneTransform); @@ -339,7 +339,7 @@ namespace Spine.Unity.Editor { //create slots and attachments for (int slotIndex = 0; slotIndex < skeletonData.Slots.Count; slotIndex++) { var slotData = skeletonData.Slots.Items[slotIndex]; - Transform slotTransform = EditorInstantiation.NewGameObject(slotData.Name).transform; + Transform slotTransform = EditorInstantiation.NewGameObject(slotData.Name, true).transform; slotTransform.parent = prefabRoot.transform; slotTable.Add(slotData.Name, slotTransform); @@ -389,7 +389,7 @@ namespace Spine.Unity.Editor { } else continue; - Transform attachmentTransform = EditorInstantiation.NewGameObject(attachmentName).transform; + Transform attachmentTransform = EditorInstantiation.NewGameObject(attachmentName, true).transform; attachmentTransform.parent = slotTransform; attachmentTransform.localPosition = offset; @@ -1437,7 +1437,7 @@ namespace Spine.Unity.Editor { Directory.CreateDirectory(bakedDirPath); if (prefab == null) { - root = EditorInstantiation.NewGameObject("temp", typeof(MeshFilter), typeof(MeshRenderer)); + root = EditorInstantiation.NewGameObject("temp", true, typeof(MeshFilter), typeof(MeshRenderer)); #if NEW_PREFAB_SYSTEM prefab = PrefabUtility.SaveAsPrefabAsset(root, bakedPrefabPath); #else From 8c8b08f80b8e4b6913625e6aee5f7502831b5ace Mon Sep 17 00:00:00 2001 From: Arnold <40414978+PatriceJiang@users.noreply.github.com> Date: Wed, 18 Dec 2019 16:19:58 +0800 Subject: [PATCH 04/10] [bugfix] spine-cocos2dx renderer issues (#1577) * fix some bugs * auto release program --- spine-cocos2dx/src/spine/SkeletonRenderer.cpp | 2 +- spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp | 14 ++++++++------ .../src/spine/v4/SkeletonTwoColorBatch.cpp | 13 +++++++++---- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/spine-cocos2dx/src/spine/SkeletonRenderer.cpp b/spine-cocos2dx/src/spine/SkeletonRenderer.cpp index 409877d81..2542c6ece 100644 --- a/spine-cocos2dx/src/spine/SkeletonRenderer.cpp +++ b/spine-cocos2dx/src/spine/SkeletonRenderer.cpp @@ -810,7 +810,7 @@ namespace spine { } void SkeletonRenderer::setTwoColorTint(bool enabled) { -#if COCOS2D_VERSION > 0x00040000 +#if COCOS2D_VERSION >= 0x00040000 _twoColorTint = enabled; #endif setupGLProgramState(enabled); diff --git a/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp b/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp index 33997d347..36e338c4b 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp +++ b/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp @@ -59,15 +59,17 @@ void SkeletonBatch::destroyInstance () { SkeletonBatch::SkeletonBatch () { - auto program = backend::Device::getInstance()->newProgram(positionTextureColor_vert, positionTextureColor_frag); + auto program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_TEXTURE_COLOR); _programState = std::make_shared(program); - program->autorelease(); - + auto vertexLayout = _programState->getVertexLayout(); - vertexLayout->setAttribute("a_position", 0, backend::VertexFormat::FLOAT3, offsetof(V3F_C4B_T2F, vertices), false); - vertexLayout->setAttribute("a_color", 2, backend::VertexFormat::UBYTE4, offsetof(V3F_C4B_T2F, colors), true); - vertexLayout->setAttribute("a_texCoord", 1, backend::VertexFormat::FLOAT2, offsetof(V3F_C4B_T2F, texCoords), false); + auto locPosition = _programState->getAttributeLocation("a_position"); + auto locTexcoord = _programState->getAttributeLocation("a_texCoord"); + auto locColor = _programState->getAttributeLocation("a_color"); + vertexLayout->setAttribute("a_position", locPosition, backend::VertexFormat::FLOAT3, offsetof(V3F_C4B_T2F, vertices), false); + vertexLayout->setAttribute("a_color", locColor, backend::VertexFormat::UBYTE4, offsetof(V3F_C4B_T2F, colors), true); + vertexLayout->setAttribute("a_texCoord", locTexcoord, backend::VertexFormat::FLOAT2, offsetof(V3F_C4B_T2F, texCoords), false); vertexLayout->setLayout(sizeof(_vertices[0])); diff --git a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp index 3e21bcc17..3330edc9e 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp +++ b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp @@ -114,10 +114,15 @@ namespace { auto layout = programState->getVertexLayout(); - layout->setAttribute("a_position", 0, backend::VertexFormat::FLOAT3, offsetof(spine::V3F_C4B_C4B_T2F, position), false); - layout->setAttribute("a_color", 1, backend::VertexFormat::UBYTE4, offsetof(spine::V3F_C4B_C4B_T2F, color), true); - layout->setAttribute("a_color2", 2, backend::VertexFormat::UBYTE4, offsetof(spine::V3F_C4B_C4B_T2F, color2), true); - layout->setAttribute("a_texCoords", 3, backend::VertexFormat::FLOAT2, offsetof(spine::V3F_C4B_C4B_T2F, texCoords), false); + auto locPosition = programState->getAttributeLocation("a_position"); + auto locTexcoord = programState->getAttributeLocation("a_texCoords"); + auto locColor = programState->getAttributeLocation("a_color"); + auto locColor2 = programState->getAttributeLocation("a_color2"); + + layout->setAttribute("a_position", locPosition, backend::VertexFormat::FLOAT3, offsetof(spine::V3F_C4B_C4B_T2F, position), false); + layout->setAttribute("a_color", locColor, backend::VertexFormat::UBYTE4, offsetof(spine::V3F_C4B_C4B_T2F, color), true); + layout->setAttribute("a_color2", locColor2, backend::VertexFormat::UBYTE4, offsetof(spine::V3F_C4B_C4B_T2F, color2), true); + layout->setAttribute("a_texCoords", locTexcoord, backend::VertexFormat::FLOAT2, offsetof(spine::V3F_C4B_C4B_T2F, texCoords), false); layout->setLayout(sizeof(spine::V3F_C4B_C4B_T2F)); __twoColorProgramState = std::shared_ptr(programState); From 203a648ae9682869db3379c5bbe0347d6456328d Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 18 Dec 2019 18:01:52 +0100 Subject: [PATCH 05/10] [libgdx] Fixed one bone IK with disable inherit rotation/scale/reflection. --- .../esotericsoftware/spine/IkConstraint.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) 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 1007074fa..a60049aba 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -177,10 +177,28 @@ public class IkConstraint implements Updatable { if (bone == null) throw new IllegalArgumentException("bone cannot be null."); 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; + float pa = p.a, pb = p.b, pc = p.c, pd = p.d; + float rotationIK = -bone.ashearX - bone.arotation, tx, ty; + switch (bone.data.transformMode) { + case onlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + break; + case noRotationOrReflection: + rotationIK += atan2(pc, pa) * radDeg; + float ps = pa * pa + pc * pc; + if (ps > 0.0001f) { + ps = Math.abs(pa * pd - pb * pc) / ps; + pb = -pc * ps; + pd = pa * ps; + } + default: + float x = targetX - p.worldX, y = targetY - p.worldY; + float d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + rotationIK += atan2(ty, tx) * radDeg; if (bone.ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; @@ -188,6 +206,12 @@ public class IkConstraint implements Updatable { rotationIK += 360; float sx = bone.ascaleX, sy = bone.ascaleY; if (compress || stretch) { + switch (bone.data.transformMode) { + case noScale: + case noScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } float b = bone.data.length * sx, dd = (float)Math.sqrt(tx * tx + ty * ty); if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001f) { float s = (dd / b - 1) * alpha + 1; From d94ebeae7aeefd472a779a569f146644a65a08b2 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 18 Dec 2019 18:16:05 +0100 Subject: [PATCH 06/10] [libgdx] One bone IK clean up. --- .../src/com/esotericsoftware/spine/IkConstraint.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) 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 a60049aba..0669c9dd4 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -186,12 +186,9 @@ public class IkConstraint implements Updatable { break; case noRotationOrReflection: rotationIK += atan2(pc, pa) * radDeg; - float ps = pa * pa + pc * pc; - if (ps > 0.0001f) { - ps = Math.abs(pa * pd - pb * pc) / ps; - pb = -pc * ps; - pd = pa * ps; - } + float ps = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; default: float x = targetX - p.worldX, y = targetY - p.worldY; float d = pa * pd - pb * pc; From c9d871ab63fa35449b13a719c183ae698ab26183 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 18 Dec 2019 18:19:26 +0100 Subject: [PATCH 07/10] [libgdx] One bone IK, added fall through comment. --- .../src/com/esotericsoftware/spine/IkConstraint.java | 1 + 1 file changed, 1 insertion(+) 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 0669c9dd4..83b7b8f60 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -189,6 +189,7 @@ public class IkConstraint implements Updatable { float ps = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); pb = -pc * ps; pd = pa * ps; + // Fall through. default: float x = targetX - p.worldX, y = targetY - p.worldY; float d = pa * pd - pb * pc; From c0699e23a0c8799710323bdf0e076e18f6ba41a2 Mon Sep 17 00:00:00 2001 From: badlogic Date: Thu, 19 Dec 2019 16:02:46 +0100 Subject: [PATCH 08/10] [ue4] Added blueprint node for SpineWidget and SpineSkeletonComponent. Expects an array of skin names. Creates a new spine::Skin internally from those skins and applies it to the skeleton. Closes #1416, closes #1534. --- .../Private/SpineSkeletonComponent.cpp | 22 +++++++++++++++ .../SpinePlugin/Private/SpineWidget.cpp | 27 +++++++++++++++++++ .../Public/SpineSkeletonComponent.h | 6 ++++- .../Source/SpinePlugin/Public/SpineWidget.h | 4 +++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp index 0dcb30af9..66b951bdf 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp @@ -41,6 +41,28 @@ USpineSkeletonComponent::USpineSkeletonComponent () { bAutoActivate = true; } +bool USpineSkeletonComponent::SetSkins(UPARAM(ref) TArray& SkinNames) { + CheckState(); + if (skeleton) { + spine::Skin* newSkin = new spine::Skin("__spine-ue3_custom_skin"); + for (auto& skinName : SkinNames) { + spine::Skin* skin = skeleton->getData()->findSkin(TCHAR_TO_UTF8(*skinName)); + if (!skin) { + delete newSkin; + return false; + } + newSkin->addSkin(skin); + } + skeleton->setSkin(newSkin); + if (customSkin != nullptr) { + delete customSkin; + } + customSkin = newSkin; + return true; + } + else return false; +} + bool USpineSkeletonComponent::SetSkin (const FString skinName) { CheckState(); if (skeleton) { diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp index 64357a7db..054064ca3 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp @@ -185,6 +185,11 @@ void USpineWidget::DisposeState() { skeleton = nullptr; } + if (customSkin) { + delete customSkin; + customSkin = nullptr; + } + trackEntries.Empty(); } @@ -204,6 +209,28 @@ bool USpineWidget::SetSkin(const FString skinName) { else return false; } +bool USpineWidget::SetSkins(UPARAM(ref) TArray& SkinNames) { + CheckState(); + if (skeleton) { + spine::Skin* newSkin = new spine::Skin("__spine-ue3_custom_skin"); + for (auto& skinName : SkinNames) { + spine::Skin* skin = skeleton->getData()->findSkin(TCHAR_TO_UTF8(*skinName)); + if (!skin) { + delete newSkin; + return false; + } + newSkin->addSkin(skin); + } + skeleton->setSkin(newSkin); + if (customSkin != nullptr) { + delete customSkin; + } + customSkin = newSkin; + return true; + } + else return false; +} + void USpineWidget::GetSkins(TArray &Skins) { CheckState(); if (skeleton) { diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h index b77858513..c37444d61 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h @@ -55,6 +55,9 @@ public: UFUNCTION(BlueprintPure, Category = "Components|Spine|Skeleton") void GetSkins(TArray &Skins); + + UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") + bool SetSkins(UPARAM(ref) TArray& SkinNames); UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") bool SetSkin (const FString SkinName); @@ -138,5 +141,6 @@ protected: spine::Skeleton* skeleton; USpineAtlasAsset* lastAtlas = nullptr; spine::Atlas* lastSpineAtlas = nullptr; - USpineSkeletonDataAsset* lastData = nullptr; + USpineSkeletonDataAsset* lastData = nullptr; + spine::Skin* customSkin = nullptr; }; diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h index de4f0fa7d..84f8884ad 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h @@ -89,6 +89,9 @@ public: UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") bool SetSkin(const FString SkinName); + UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") + bool SetSkins(UPARAM(ref) TArray &SkinNames); + UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") bool HasSkin(const FString SkinName); @@ -222,6 +225,7 @@ protected: USpineAtlasAsset* lastAtlas = nullptr; spine::Atlas* lastSpineAtlas = nullptr; USpineSkeletonDataAsset* lastData = nullptr; + spine::Skin* customSkin = nullptr; // Need to hold on to the dynamic instances, or the GC will kill us while updating them UPROPERTY() From d4b29c34c746da0919e10799228ef338eba62691 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Fri, 20 Dec 2019 10:04:28 +0100 Subject: [PATCH 09/10] [unity] Added support for Universal Render Pipeline (URP), including 2D Renderer (2D Lights) of Unity 2019.3 through an additional UPM package. Closes #1413. --- CHANGELOG.md | 15 + .../Editor/Shaders/SpineSpriteShaderGUI.cs | 70 +- .../Editor/Utility/SpineEditorUtilities.cs | 2 +- .../Sprite/CGIncludes/ShaderMaths.cginc | 10 +- .../Sprite/CGIncludes/ShaderShared.cginc | 58 +- .../Examples.meta | 8 + .../Examples/2D.meta | 8 + .../Examples/2D/Example 2D URP Asset.asset | 54 + .../2D/Example 2D URP Asset.asset.meta | 8 + .../2D/Example 2D URP Renderer Data.asset | 61 + .../Example 2D URP Renderer Data.asset.meta | 8 + .../Examples/2D/Images.meta | 8 + .../urp-2d-renderer-heading-rim-mask.png | Bin 0 -> 19645 bytes .../urp-2d-renderer-heading-rim-mask.png.meta | 91 + .../2D/Images/urp-2d-renderer-heading.png | Bin 0 -> 6804 bytes .../Images/urp-2d-renderer-heading.png.meta | 105 + .../Examples/2D/Spine Skeletons.meta | 8 + .../2D/Spine Skeletons/RaptorURP.meta | 8 + .../RaptorURP/raptor-pma-rim-mask.png | Bin 0 -> 146935 bytes .../RaptorURP/raptor-pma-rim-mask.png.meta | 91 + .../RaptorURP/raptor-pma.atlas.txt | 272 ++ .../RaptorURP/raptor-pma.atlas.txt.meta | 7 + .../Spine Skeletons/RaptorURP/raptor-pma.png | Bin 0 -> 480736 bytes .../RaptorURP/raptor-pma.png.meta | 103 + .../RaptorURP/raptor-pma_Atlas.asset | 17 + .../RaptorURP/raptor-pma_Atlas.asset.meta | 8 + .../RaptorURP/raptor-pma_Material.mat | 42 + .../RaptorURP/raptor-pma_Material.mat.meta | 8 + .../Spine Skeletons/RaptorURP/raptor-pro.json | 3602 +++++++++++++++++ .../RaptorURP/raptor-pro.json.meta | 7 + .../RaptorURP/raptor-pro_SkeletonData.asset | 24 + .../raptor-pro_SkeletonData.asset.meta | 8 + .../2D/Spine Skeletons/StretchymanURP.meta | 8 + .../stretchyman-diffuse-pma.atlas.txt | 41 + .../stretchyman-diffuse-pma.atlas.txt.meta | 7 + .../stretchyman-diffuse-pma.png | Bin 0 -> 114551 bytes .../stretchyman-diffuse-pma.png.meta | 91 + .../stretchyman-diffuse-pma_Atlas.asset | 17 + .../stretchyman-diffuse-pma_Atlas.asset.meta | 8 + .../stretchyman-diffuse-pma_Material.mat | 82 + .../stretchyman-diffuse-pma_Material.mat.meta | 8 + .../StretchymanURP/stretchyman-emission.png | Bin 0 -> 4831 bytes .../stretchyman-emission.png.meta | 91 + .../StretchymanURP/stretchyman-normals.png | Bin 0 -> 81353 bytes .../stretchyman-normals.png.meta | 103 + .../StretchymanURP/stretchyman-rim-mask.png | Bin 0 -> 51950 bytes .../stretchyman-rim-mask.png.meta | 91 + .../StretchymanURP/stretchyman.json | 1045 +++++ .../StretchymanURP/stretchyman.json.meta | 7 + .../stretchyman_SkeletonData.asset | 24 + .../stretchyman_SkeletonData.asset.meta | 8 + .../Examples/2D/URP 2D Shaders.unity | 1243 ++++++ .../Examples/2D/URP 2D Shaders.unity.meta | 7 + .../Examples/3D.meta | 8 + .../Examples/3D/Example URP Asset.asset | 54 + .../Examples/3D/Example URP Asset.asset.meta | 8 + .../3D/Example URP Asset_Renderer.asset | 36 + .../3D/Example URP Asset_Renderer.asset.meta | 8 + .../Examples/3D/Spine Skeletons.meta | 8 + .../3D/Spine Skeletons/RaptorURP.meta | 8 + .../Spine Skeletons/RaptorURP/raptor-pro.json | 3602 +++++++++++++++++ .../RaptorURP/raptor-pro.json.meta | 7 + .../RaptorURP/raptor-pro_SkeletonData.asset | 24 + .../raptor-pro_SkeletonData.asset.meta | 8 + .../RaptorURP/raptor.atlas.txt | 272 ++ .../RaptorURP/raptor.atlas.txt.meta | 7 + .../3D/Spine Skeletons/RaptorURP/raptor.png | Bin 0 -> 480392 bytes .../Spine Skeletons/RaptorURP/raptor.png.meta | 145 + .../RaptorURP/raptor_Atlas.asset | 17 + .../RaptorURP/raptor_Atlas.asset.meta | 8 + .../RaptorURP/raptor_Material.mat | 102 + .../RaptorURP/raptor_Material.mat.meta | 8 + .../3D/Spine Skeletons/StretchymanURP.meta | 8 + .../StretchymanURP/stretchyman-emission.png | Bin 0 -> 4831 bytes .../stretchyman-emission.png.meta | 145 + .../StretchymanURP/stretchyman-normals.png | Bin 0 -> 81353 bytes .../stretchyman-normals.png.meta | 145 + .../StretchymanURP/stretchyman.atlas.txt | 41 + .../StretchymanURP/stretchyman.atlas.txt.meta | 7 + .../StretchymanURP/stretchyman.json | 1045 +++++ .../StretchymanURP/stretchyman.json.meta | 7 + .../StretchymanURP/stretchyman.png | Bin 0 -> 137155 bytes .../StretchymanURP/stretchyman.png.meta | 151 + .../StretchymanURP/stretchyman_Atlas.asset | 17 + .../stretchyman_Atlas.asset.meta | 8 + .../StretchymanURP/stretchyman_Material.mat | 83 + .../stretchyman_Material.mat.meta | 8 + .../stretchyman_SkeletonData.asset | 24 + .../stretchyman_SkeletonData.asset.meta | 8 + .../Examples/3D/URP 3D Shaders.unity | 1863 +++++++++ .../Examples/3D/URP 3D Shaders.unity.meta | 8 + .../LICENSE.md | 26 + .../LICENSE.md.meta | 7 + .../Shaders.meta | 8 + .../Shaders/2D.meta | 8 + .../Shaders/2D/Include.meta | 8 + .../Spine-Sprite-NormalsPass-URP-2D.hlsl | 66 + .../Spine-Sprite-NormalsPass-URP-2D.hlsl.meta | 9 + .../Spine-Sprite-StandardPass-URP-2D.hlsl | 112 + ...Spine-Sprite-StandardPass-URP-2D.hlsl.meta | 9 + .../2D/Spine-SkeletonLit-URP-2D.shader | 228 ++ .../2D/Spine-SkeletonLit-URP-2D.shader.meta | 9 + .../Shaders/2D/Spine-Sprite-URP-2D.shader | 149 + .../2D/Spine-Sprite-URP-2D.shader.meta | 9 + .../Shaders/Include.meta | 8 + .../Spine-Common-ShadowCasterPass-URP.hlsl | 37 + ...pine-Common-ShadowCasterPass-URP.hlsl.meta | 9 + .../Include/Spine-DepthOnlyPass-URP.hlsl | 42 + .../Include/Spine-DepthOnlyPass-URP.hlsl.meta | 9 + .../Shaders/Include/Spine-Input-URP.hlsl | 48 + .../Shaders/Include/Spine-Input-URP.hlsl.meta | 9 + .../Spine-Skeleton-ForwardPass-URP.hlsl | 43 + .../Spine-Skeleton-ForwardPass-URP.hlsl.meta | 9 + .../Spine-SkeletonLit-ForwardPass-URP.hlsl | 76 + ...pine-SkeletonLit-ForwardPass-URP.hlsl.meta | 9 + ...pine-SkeletonLit-ShadowCasterPass-URP.hlsl | 24 + ...SkeletonLit-ShadowCasterPass-URP.hlsl.meta | 9 + .../Include/Spine-Sprite-ForwardPass-URP.hlsl | 267 ++ .../Spine-Sprite-ForwardPass-URP.hlsl.meta | 9 + .../Spine-Sprite-ShadowCasterPass-URP.hlsl | 27 + ...pine-Sprite-ShadowCasterPass-URP.hlsl.meta | 9 + .../Shaders/Include/SpineCoreShaders.meta | 8 + .../SpineCoreShaders/ShaderShared.cginc | 2 + .../SpineCoreShaders/ShaderShared.cginc.meta | 9 + .../SpineCoreShaders/SpriteLighting.cginc | 2 + .../SpriteLighting.cginc.meta | 9 + .../Shaders/Spine-Skeleton-URP.shader | 152 + .../Shaders/Spine-Skeleton-URP.shader.meta | 7 + .../Shaders/Spine-SkeletonLit-URP.shader | 154 + .../Shaders/Spine-SkeletonLit-URP.shader.meta | 9 + .../Shaders/Spine-Sprite-URP.shader | 220 + .../Shaders/Spine-Sprite-URP.shader.meta | 7 + .../package.json | 23 + .../package.json.meta | 7 + 134 files changed, 17348 insertions(+), 43 deletions(-) create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma-rim-mask.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma-rim-mask.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma.atlas.txt create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma.atlas.txt.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma_Atlas.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma_Atlas.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma_Material.mat create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pma_Material.mat.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pro.json create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pro.json.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pro_SkeletonData.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/RaptorURP/raptor-pro_SkeletonData.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma.atlas.txt create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma.atlas.txt.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma_Atlas.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma_Atlas.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma_Material.mat create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-diffuse-pma_Material.mat.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-emission.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-emission.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-normals.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-normals.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-rim-mask.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman-rim-mask.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman.json create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman.json.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman_SkeletonData.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Spine Skeletons/StretchymanURP/stretchyman_SkeletonData.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/URP 2D Shaders.unity create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/URP 2D Shaders.unity.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Example URP Asset.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Example URP Asset.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Example URP Asset_Renderer.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Example URP Asset_Renderer.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor-pro.json create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor-pro.json.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor-pro_SkeletonData.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor-pro_SkeletonData.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.atlas.txt create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.atlas.txt.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-emission.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-emission.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-normals.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-normals.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.atlas.txt create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.atlas.txt.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.json create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.json.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.png create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman.png.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_Atlas.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_Atlas.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_Material.mat create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_Material.mat.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_SkeletonData.asset create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman_SkeletonData.asset.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/URP 3D Shaders.unity create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/URP 3D Shaders.unity.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader.meta create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json create mode 100644 spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json.meta diff --git a/CHANGELOG.md b/CHANGELOG.md index edc6778a1..1d1c510c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -199,6 +199,21 @@ Outline rendering is fully supported on `SkeletonGraphic` shaders as well. * Added `SkeletonRenderer.EditorSkipSkinSync` scripting API property to be able to set custom skins in editor scripts. Enable this property when overwriting the Skeleton's skin from an editor script. Without setting this parameter, changes will be overwritten by the next inspector update. Only affects Inspector synchronisation of skin with `initialSkinName`, not startup initialization. * All `Spine/SkeletonGraphic` shaders now provide a parameter `CanvasGroup Compatible` which can be enabled to support `CanvasGroup` alpha blending. For correct results, you should then disable `Pma Vertex Colors` in the `SkeletonGraphic` Inspector, in section `Advanced` (otherwise Slot alpha will be applied twice). + * **Now supporting Universal Render Pipeline (URP), including the 2D Renderer pipeline, through an additional UPM package.** + * **Installation:** You can download the Unity Package Manager (UPM) package via the [download page](http://esotericsoftware.com/spine-unity-download) or find it in the [spine-runtimes/spine-unity/Modules](https://github.com/EsotericSoftware/spine-runtimes/tree/3.8-beta/spine-unity/Modules) subdirectory on the git repository. You can then either unzip (copy if using git) the package to + * a) the `Packages` directory in your project where it will automatically be loaded, or + * b) to an arbitrary directory outside the Assets directory and then open Package Manager in Unity, select the `+` icon, choose `Add package from disk..` and point it to the package.json file. + + The Project panel should now show an entry `Spine Universal RP Shaders` under `Packages`. If the directory is not yet listed, you will need to close and re-open Unity to have it display the directory and its contents. + * **Usage:** The package provides two shaders specifically built for the universal render pipeline: + * `Universal Render Pipeline/Spine/Skeleton`, as a universal variant of the `Spine/Skeleton` shader, + * `Universal Render Pipeline/Spine/Skeleton Lit`, as a universal variant of the `Spine/Skeleton Lit` shader, + * `Universal Render Pipeline/Spine/Sprite`, as a universal variant of the `Spine/Sprite/Vertex Lit` and `Pixel Lit` shaders, which were not functioning in the universal render pipeline, + * `Universal Render Pipeline/2D/Spine/Skeleton Lit`, as a universal 2D Renderer variant of the `Spine/Skeleton Lit` shader, and + * `Universal Render Pipeline/2D/Spine/Sprite`, as a universal 2D Renderer variant of the `Spine/Sprite/Vertex Lit` and `Pixel Lit` shaders. + The shaders can be assigned to materials as usual and will respect your settings of the assigned `UniversalRenderPipelineAsset` under `Project Settings - Graphics`. + * **Restrictions** As all Spine shaders, the URP shaders **do not support `Premultiply alpha` (PMA) atlas textures in Linear color space**. Please export your atlas textures as `straight alpha` textures with disabled `Premultiply alpha` setting when using Linear color space. You can check the current color space via `Project Settings - Player - Other Settings - Color Space.`. + * **Example:** You can find an example scene in the package under `com.esotericsoftware.spine.urp-shaders-3.8/Examples/URP Shaders.unity` that demonstrates usage of the URP shaders. * **Changes of default values** * `SkeletonMecanim`'s `Layer Mix Mode` now defaults to `MixMode.MixNext` instead of `MixMode.MixAlways`. diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs index 3bfb07bcf..801587896 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs @@ -43,6 +43,8 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { static readonly string kShaderUnlitOutline = "Spine/Outline/Sprite/Unlit"; static readonly string kShaderLitLW = "Lightweight Render Pipeline/Spine/Sprite"; + static readonly string kShaderLitURP = "Universal Render Pipeline/Spine/Sprite"; + static readonly string kShaderLitURP2D = "Universal Render Pipeline/2D/Spine/Sprite"; static readonly int kSolidQueue = 2000; static readonly int kAlphaTestQueue = 2450; static readonly int kTransparentQueue = 3000; @@ -61,7 +63,9 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { VertexLit, PixelLit, Unlit, - LitLightweight + LitLightweight, + LitUniversal, + LitUniversal2D }; private enum eCulling { @@ -78,6 +82,7 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { MaterialProperty _mainTexture = null; MaterialProperty _color = null; + MaterialProperty _maskTexture = null; MaterialProperty _pixelSnap = null; @@ -114,6 +119,7 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { MaterialProperty _smoothnessScale = null; static GUIContent _albedoText = new GUIContent("Albedo", "Albedo (RGB) and Transparency (A)"); + static GUIContent _maskText = new GUIContent("Light Mask", "Light mask texture (secondary Sprite texture)"); static GUIContent _altAlbedoText = new GUIContent("Secondary Albedo", "When a secondary albedo texture is set the albedo will be a blended mix of the two textures based on the blend value."); static GUIContent _metallicMapText = new GUIContent("Metallic", "Metallic (R) and Smoothness (A)"); static GUIContent _smoothnessText = new GUIContent("Smoothness", "Smoothness value"); @@ -136,7 +142,9 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { new GUIContent("Vertex Lit"), new GUIContent("Pixel Lit"), new GUIContent("Unlit"), - new GUIContent("Lit Lightweight") + new GUIContent("Lit Lightweight"), + new GUIContent("Lit Universal"), + new GUIContent("Lit Universal2D") }; static GUIContent _blendModeText = new GUIContent("Blend Mode", "Blend Mode"); static GUIContent[] _blendModeOptions = { @@ -188,7 +196,9 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { //If not originally a sprite shader set default keywords if (oldShader.name != kShaderVertexLit && oldShader.name != kShaderPixelLit && oldShader.name != kShaderUnlit && oldShader.name != kShaderVertexLitOutline && oldShader.name != kShaderPixelLitOutline && oldShader.name != kShaderUnlitOutline && - oldShader.name != kShaderLitLW) { + oldShader.name != kShaderLitLW && + oldShader.name != kShaderLitURP && + oldShader.name != kShaderLitURP2D) { SetDefaultSpriteKeywords(material, newShader); } @@ -203,6 +213,7 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { base.FindProperties(props); _mainTexture = FindProperty("_MainTex", props); + _maskTexture = FindProperty("_MaskTex", props, false); _color = FindProperty("_Color", props); _pixelSnap = FindProperty("PixelSnap", props); @@ -350,6 +361,14 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { if (material.shader.name != kShaderLitLW) _materialEditor.SetShader(Shader.Find(kShaderLitLW), false); break; + case eLightMode.LitUniversal: + if (material.shader.name != kShaderLitURP) + _materialEditor.SetShader(Shader.Find(kShaderLitURP), false); + break; + case eLightMode.LitUniversal2D: + if (material.shader.name != kShaderLitURP2D) + _materialEditor.SetShader(Shader.Find(kShaderLitURP2D), false); + break; } } @@ -424,6 +443,9 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { if (_bumpMap != null) _materialEditor.TexturePropertySingleLine(_normalMapText, _bumpMap, _bumpMap.textureValue != null ? _bumpScale : null); + if (_maskTexture != null) + _materialEditor.TexturePropertySingleLine(_maskText, _maskTexture); + if (_diffuseRamp != null) _materialEditor.TexturePropertySingleLine(_diffuseRampText, _diffuseRamp); @@ -596,7 +618,8 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { _materialEditor.RangeProperty(_shadowAlphaCutoff, _shadowAlphaCutoffText.text); dataChanged = EditorGUI.EndChangeCheck(); bool areMixedShaders = false; - bool hasReceiveShadowsParameter = IsLWRPShader(_materialEditor, out areMixedShaders); + bool hasReceiveShadowsParameter = IsLWRPShader(_materialEditor, out areMixedShaders) || + IsURP3DShader(_materialEditor, out areMixedShaders); if (hasReceiveShadowsParameter) { bool forceDisableReceiveShadows = !_writeToDepth.hasMixedValue && _writeToDepth.floatValue == 0; @@ -624,7 +647,9 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { bool areMixedShaders = false; bool isLWRPShader = IsLWRPShader(_materialEditor, out areMixedShaders); - bool hasSHParameter = areMixedShaders || !isLWRPShader; + bool isURP3DShader = IsURP3DShader(_materialEditor, out areMixedShaders); + bool isURP2DShader = IsURP2DShader(_materialEditor, out areMixedShaders); + bool hasSHParameter = !(isLWRPShader || isURP3DShader || isURP2DShader); if (!hasSHParameter) return false; @@ -644,6 +669,13 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { } protected virtual bool RenderFogProperties () { + + bool areMixedShaders = false; + bool isURP2DShader = IsURP2DShader(_materialEditor, out areMixedShaders); + + if (isURP2DShader && !areMixedShaders) + return false; + EditorGUI.BeginChangeCheck(); bool mixedValue; bool fog = IsKeywordEnabled(_materialEditor, "_FOG", out mixedValue); @@ -898,18 +930,30 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { } static bool IsLWRPShader (MaterialEditor editor, out bool mixedValue) { + return IsShaderType(kShaderLitLW, editor, out mixedValue); + } + + static bool IsURP3DShader (MaterialEditor editor, out bool mixedValue) { + return IsShaderType(kShaderLitURP, editor, out mixedValue); + } + + static bool IsURP2DShader (MaterialEditor editor, out bool mixedValue) { + return IsShaderType(kShaderLitURP2D, editor, out mixedValue); + } + + static bool IsShaderType (string shaderType, MaterialEditor editor, out bool mixedValue) { mixedValue = false; - bool isAnyLWRPShader = false; + bool isAnyTargetTypeShader = false; foreach (Material material in editor.targets) { - if (material.shader.name == kShaderLitLW) { - isAnyLWRPShader = true; + if (material.shader.name == shaderType) { + isAnyTargetTypeShader = true; } - else if (isAnyLWRPShader) { + else if (isAnyTargetTypeShader) { mixedValue = true; } } - return isAnyLWRPShader; + return isAnyTargetTypeShader; } static bool IsKeywordEnabled (MaterialEditor editor, string keyword, out bool mixedValue) { @@ -938,6 +982,12 @@ public class SpineSpriteShaderGUI : SpineShaderWithOutlineGUI { else if (material.shader.name == kShaderLitLW) { return eLightMode.LitLightweight; } + else if (material.shader.name == kShaderLitURP) { + return eLightMode.LitUniversal; + } + else if (material.shader.name == kShaderLitURP2D) { + return eLightMode.LitUniversal2D; + } else { // if (material.shader.name == kShaderVertexLit || kShaderVertexLitOutline) return eLightMode.VertexLit; } diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs index b6a40dd0e..a9ad1a6fc 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs @@ -204,7 +204,7 @@ namespace Spine.Unity.Editor { if (MaterialChecks.IsTextureSetupProblematic(material, PlayerSettings.colorSpace, texImporter. sRGBTexture, texImporter. mipmapEnabled, texImporter. alphaIsTransparency, texturePath, materialPath, ref errorMessage)) { - Debug.LogWarning(errorMessage); + Debug.LogWarning(errorMessage, material); } return true; } diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc index 4b3f7cd6b..1ae731eae 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc @@ -2,7 +2,9 @@ #define SHADER_MATHS_INCLUDED #if defined(USE_LWRP) -#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#elif defined(USE_URP) +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #else #include "UnityCG.cginc" #endif @@ -40,7 +42,7 @@ inline half pow5 (half x) } inline float4 quat_from_axis_angle(float3 axis, float angleRadians) -{ +{ float4 qr; float half_angle = (angleRadians * 0.5); qr.x = axis.x * sin(half_angle); @@ -51,7 +53,7 @@ inline float4 quat_from_axis_angle(float3 axis, float angleRadians) } inline float3 rotate_vertex_position(float3 position, float3 axis, float angleRadians) -{ +{ float4 q = quat_from_axis_angle(axis, angleRadians); float3 v = position.xyz; return v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v); @@ -71,4 +73,4 @@ float DecodeFloatRGB(float3 decomp) return dot( decomp.xyz, float3( 255.0/256, 255.0/(256*256), 255.0/(256*256*256) ) ); } -#endif // SHADER_MATHS_INCLUDED \ No newline at end of file +#endif // SHADER_MATHS_INCLUDED diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc index d404010b4..c8918952e 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc @@ -6,7 +6,9 @@ #define SHADER_SHARED_INCLUDED #if defined(USE_LWRP) -#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#elif defined(USE_URP) +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #else #include "UnityCG.cginc" #endif @@ -42,7 +44,7 @@ inline float4 calculateWorldPos(float4 vertex) return mul(unity_ObjectToWorld, vertex); } -#if defined(USE_LWRP) +#if defined(USE_LWRP) || defined(USE_URP) // snaps post-transformed position to screen pixels inline float4 UnityPixelSnap(float4 pos) { @@ -61,13 +63,13 @@ inline float4 UnityPixelSnap(float4 pos) inline float4 calculateLocalPos(float4 vertex) { -#if !defined(USE_LWRP) +#if !defined(USE_LWRP) && !defined(USE_URP) #ifdef UNITY_INSTANCING_ENABLED vertex.xy *= _Flip.xy; #endif #endif -#if defined(USE_LWRP) +#if defined(USE_LWRP) || defined(USE_URP) float4 pos = TransformObjectToHClip(vertex.xyz); #else float4 pos = UnityObjectToClipPos(vertex); @@ -82,7 +84,7 @@ inline float4 calculateLocalPos(float4 vertex) inline half3 calculateWorldNormal(float3 normal) { -#if defined(USE_LWRP) +#if defined(USE_LWRP) || defined(USE_URP) return TransformObjectToWorldNormal(normal); #else return UnityObjectToWorldNormal(normal); @@ -106,7 +108,7 @@ half3 UnpackScaleNormal(half4 packednormal, half bumpScale) half3 normal; normal.xy = (packednormal.wy * 2 - 1); // Note: we allow scaled normals in LWRP since we might be using fewer instructions. - #if (SHADER_TARGET >= 30) || defined(USE_LWRP) + #if (SHADER_TARGET >= 30) || defined(USE_LWRP) || defined(USE_URP) // SM2.0: instruction count limitation // SM2.0: normal scaler is not supported normal.xy *= bumpScale; @@ -114,12 +116,12 @@ half3 UnpackScaleNormal(half4 packednormal, half bumpScale) normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy))); return normal; #endif -} +} inline half3 calculateWorldTangent(float4 tangent) { -#if defined(USE_LWRP) +#if defined(USE_LWRP) || defined(USE_URP) return TransformObjectToWorldDir(tangent.xyz); #else return UnityObjectToWorldDir(tangent); @@ -171,7 +173,7 @@ inline fixed4 prepareLitPixelForOutput(fixed4 finalPixel, fixed4 color) : SV_Tar #elif defined(_ADDITIVEBLEND_SOFT) //Additive soft finalPixel.rgb *= finalPixel.a; -#else +#else //Opaque finalPixel.a = 1; #endif @@ -194,7 +196,7 @@ inline fixed4 calculateLitPixel(fixed4 texureColor, fixed3 lighting) : SV_Target inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed4 color, fixed3 lighting) : SV_Target { fixed4 finalPixel; - + #if defined(_ALPHABLEND_ON) || defined(_MULTIPLYBLEND) || defined(_MULTIPLYBLEND_X2) || defined(_ADDITIVEBLEND) || defined(_ADDITIVEBLEND_SOFT) //Normal Alpha, Additive and Multiply modes finalPixel.rgb = (texureColor.rgb * lighting * color.rgb) * (texureColor.a * color.a); @@ -208,14 +210,14 @@ inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed4 color, fixed3 finalPixel.rgb = texureColor.rgb * lighting * color.rgb; finalPixel.a = 1.0; #endif - + return finalPixel; } inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed3 lighting) : SV_Target { fixed4 finalPixel; - + #if defined(_ALPHABLEND_ON) || defined(_MULTIPLYBLEND) || defined(_MULTIPLYBLEND_X2) || defined(_ADDITIVEBLEND) || defined(_ADDITIVEBLEND_SOFT) //Normal Alpha, Additive and Multiply modes finalPixel.rgb = (texureColor.rgb * lighting) * texureColor.a; @@ -225,7 +227,7 @@ inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed3 lighting) : S finalPixel.rgb = texureColor.rgb * lighting; finalPixel.a = 1.0; #endif - + return finalPixel; } @@ -245,7 +247,7 @@ inline fixed4 calculatePixel(fixed4 texureColor) : SV_Target // Alpha Clipping // -#if defined(_ALPHA_CLIP) +#if defined(_ALPHA_CLIP) uniform fixed _Cutoff; @@ -286,7 +288,7 @@ float3 rgb2hsv(float3 c) return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); } -float3 hsv2rgb(float3 c) +float3 hsv2rgb(float3 c) { c = float3(c.x, clamp(c.yz, 0.0, 1.0)); float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); @@ -297,13 +299,13 @@ float3 hsv2rgb(float3 c) inline fixed4 adjustColor(fixed4 color) { float3 hsv = rgb2hsv(color.rgb); - - hsv.x += _Hue; - hsv.y *= _Saturation; + + hsv.x += _Hue; + hsv.y *= _Saturation; hsv.z *= _Brightness; - + color.rgb = hsv2rgb(hsv); - + return color; } @@ -323,7 +325,7 @@ inline fixed4 adjustColor(fixed4 color) #if defined(_FOG) && (defined(FOG_LINEAR) || defined(FOG_EXP) || defined(FOG_EXP2)) -inline fixed4 applyFog(fixed4 pixel, float fogCoordOrFactorAtLWRP) +inline fixed4 applyFog(fixed4 pixel, float fogCoordOrFactorAtLWRP) { #if defined(_ADDITIVEBLEND) || defined(_ADDITIVEBLEND_SOFT) //In additive mode blend from clear to black based on luminance @@ -344,22 +346,22 @@ inline fixed4 applyFog(fixed4 pixel, float fogCoordOrFactorAtLWRP) //In opaque mode just return fog color; fixed4 fogColor = unity_FogColor; #endif - - #if defined(USE_LWRP) + + #if defined(USE_LWRP) || defined(USE_URP) pixel.rgb = MixFogColor(pixel.rgb, fogColor.rgb, fogCoordOrFactorAtLWRP); #else UNITY_APPLY_FOG_COLOR(fogCoordOrFactorAtLWRP, pixel, fogColor); #endif - + return pixel; } #define APPLY_FOG(pixel, input) pixel = applyFog(pixel, input.fogCoord); #define APPLY_FOG_LWRP(pixel, fogFactor) pixel = applyFog(pixel, fogFactor); - + #define APPLY_FOG_ADDITIVE(pixel, input) \ UNITY_APPLY_FOG_COLOR(input.fogCoord, pixel.rgb, fixed4(0,0,0,0)); // fog towards black in additive pass - + #else #define APPLY_FOG(pixel, input) @@ -392,7 +394,7 @@ inline fixed4 calculateBlendedTexturePixel(float2 texcoord) inline fixed4 calculateTexturePixel(float2 texcoord) { fixed4 pixel; - + #if _TEXTURE_BLEND pixel = calculateBlendedTexturePixel(texcoord); #else @@ -418,4 +420,4 @@ inline float2 calculateTextureCoord(float4 texcoord) return TRANSFORM_TEX(texcoord, _MainTex); } -#endif // SHADER_SHARED_INCLUDED \ No newline at end of file +#endif // SHADER_SHARED_INCLUDED diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples.meta new file mode 100644 index 000000000..0b73bbbd7 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df9fa318d9dd32e4e8a83efccad3f724 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D.meta new file mode 100644 index 000000000..d0bc085b0 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37d7cdb5b53ddc44ea7ff9c372cd8684 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset new file mode 100644 index 000000000..778ebcfba --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset @@ -0,0 +1,54 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: Demo 2D URP Asset + m_EditorClassIdentifier: + k_AssetVersion: 5 + k_AssetPreviousVersion: 5 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: b4bfa1e318d2bfb4498b0f9cdf49057c, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_ShadowDistance: 50 + m_ShadowCascades: 0 + m_Cascade2Split: 0.25 + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_SoftShadowsSupported: 0 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_DebugLevel: 0 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_ShaderVariantLogLevel: 0 diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset.meta new file mode 100644 index 000000000..69dc18f42 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Asset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a739316364eb2d8419b7e96faace9bfa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset new file mode 100644 index 000000000..807b17a74 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset @@ -0,0 +1,61 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 11145981673336645838492a2d98e247, type: 3} + m_Name: Demo 2D URP Renderer Data + m_EditorClassIdentifier: + m_RendererFeatures: [] + m_HDREmulationScale: 1 + m_LightBlendStyles: + - enabled: 1 + name: Default + maskTextureChannel: 0 + renderTextureScale: 1 + blendMode: 1 + customBlendFactors: + multiplicative: 0 + additive: 0 + - enabled: 1 + name: Rim + maskTextureChannel: 1 + renderTextureScale: 1 + blendMode: 1 + customBlendFactors: + multiplicative: 0 + additive: 0 + - enabled: 0 + name: Blend Style 2 + maskTextureChannel: 0 + renderTextureScale: 1 + blendMode: 1 + customBlendFactors: + multiplicative: 0 + additive: 0 + - enabled: 0 + name: Blend Style 3 + maskTextureChannel: 0 + renderTextureScale: 1 + blendMode: 1 + customBlendFactors: + multiplicative: 0 + additive: 0 + m_UseDepthStencilBuffer: 1 + m_ShapeLightShader: {fileID: 4800000, guid: d79e1c784eaf80c4585c0be7391f757a, type: 3} + m_ShapeLightVolumeShader: {fileID: 4800000, guid: 7e60080c8cd24a2468cb08b4bfee5606, + type: 3} + m_PointLightShader: {fileID: 4800000, guid: e35a31e1679aeff489e202f5cc4853d5, type: 3} + m_PointLightVolumeShader: {fileID: 4800000, guid: c7d04ca57e5449d49ad9cee1c604bc26, + type: 3} + m_BlitShader: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + m_ShadowGroupShader: {fileID: 4800000, guid: d33b6d70b14697547ad0dc2d4debb009, type: 3} + m_RemoveSelfShadowShader: {fileID: 4800000, guid: 02e071f10b6a15d4d87dac88ce529302, + type: 3} + m_PostProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset.meta new file mode 100644 index 000000000..df8deeb70 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Example 2D URP Renderer Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b4bfa1e318d2bfb4498b0f9cdf49057c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images.meta new file mode 100644 index 000000000..0d7b3dbd2 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6566319b9283ae04aad51dd99516a360 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4f44e1a785039ec29bce0ea150eddd8cc336b6 GIT binary patch literal 19645 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 Un_U literal 0 HcmV?d00001 diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png.meta new file mode 100644 index 000000000..7e19384b3 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading-rim-mask.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: bf3e29bb8694ca7449be6026dcd53550 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading.png b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/2D/Images/urp-2d-renderer-heading.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c1da70d46101b981563fc44a0e217a26c8032a GIT binary patch literal 6804 zcmYLsbwE?^7x$%G5Trwp5+tN+v~)>>Afdo$hNzU_=mzN?Dhkp{H=}zKk?wK=0>VhC zcjNbc-}jF_cX#*fbI$pk=X{=XV;<{kP>?c_0sugvrTNGR0B~WL?@7djnAQ0CTsY=J z0@1Ye0RS=@><0(P$zuQjQUe!N)yI#WyS&>&dUttGX!#R5?1o21x`bCeP3mGn9amm#DDaUJmQ; z>04PBQVJpEf&f&+H4Yp;mz+4jX)p-%;2xZ)9l-G$CnE;ndb#k2EK%2#TPoSsIM8q$ z_{(Hz9b)JmKq(+mr3g?`$ARW&@fZW|@d3Nx=g-!F$AW+z@7rJF05tzJI}iu3O5>o# zd7lih(>O*y0-WW5a->6j{v~?WLiwN=u1Dutx5z!GO_-at>9J%;q|>|&(^LskYx}h09bh$ zJa#1@T*CyFBZPWfedON7ceWvW|LP>pshU!$4tT#gYmSCsxl#M@u4!gwV|{&EyGO;! ze#kuN3fyH2H@|d03kF@B94)u6a)pRK4bi|qUG5q=)cwqYOd$z>HvcP0Y8Xc352!ILA|1k^sKCD&Pbr3x0X}9Pe0% zm&)QLeDwqX4qCiAf8Hm?gF1(;Abqd*6fZU2a|2K(trTwnuzAEKWHMBv*iQ@qkKTvy ze^q8a>|_vt6S8y?%y*Jq*hz+~aP@SlP^pkQKv`bc@s)?F+>adn%F1si{8Ncl9B$|w znF_fj)MeUuOCCb`&z>08dA~J;1Ydc8n8u!CHX7$ytOaKxF@1K#DMzO!K6M-y`(X4P z!+Sc(5}G1Lu_o-Mnyd%%FK}g|tks*7?~a3w`WPDNbtf9yLj)V ze$lDrX}*2d!|+U0B+5clfOC>MiAI*u@ zHs4-IXVcI8ZvJCNT9ea2h{A_g#{FGE$9ZV}^n9Am%9Ln)E% zEL1jSwwI{|e?9*j+TT~vBpn;!;PXW z@>PgL56`#JnK!TbTe2=$TjJzPOFqb`ifN0P*BGJGoD_-Hvb<08Uh0#e?iXjGgJT!( z?D4JgF&ByJHi}PImKm05Y_~~P?iA-2wW+mOo`>90?$_qE=G6cvAqetO z#xuqX#iYe_dh)VIl|rR%pP4_jJo4@EEZ)t6wc9{px?aVL{%xp#EJ4DTCYK)nijOqN zEeLDKxd`XT5e%SS32!eDt8o9^zM<;VZY9;v_UZPSE8)paW1zwb^#pawc$YrwHLf*} zK99aa9zq@t9v!_cz1K;W%q7sTWU~qP{O4=5k=I@tuodptie9DFYd^i$u8y~ z@^%%2dJi);g~1j`D&(}-T0PA$Uyn<^aqhSVm>%5Z6NZkCi_r-k7Rpo*%4P0b7-(D9 zetG2mbS2=&QGRYsZr9G2xvE{sU6Cg7k-OOXa}^ zss+m|lQOMxQfNi!MrQ?w z^T3~X6&xq1EJQNG@K>r1EoRi@(qLKn|{K;z4uNb29k+6BHR zJSI67J*{fZ&!&H%$*&iX@+Y}f!k?>G?6bf|Q#fzQyH;Ha-Gy9P7+ub5b`Mc`**1}| zl;n5bDy1BHsrBG3@Gqy=!{v?<)mOcqaSg(3=|qEWHSfv^ECosHRf>L_Jh?x`PgD(d zGfFh_X}b!5+{)s~d?G&vxhemHIZS`>s?-O4D<{FQmj zlVWDJmSV}QcIW6=ZB96I^!{8+SiNdfVF#$O)v9jU zv0diC)?@KM6LVIrCzlF??Q^C$rg{@j6OQLv=QSsal`*B8ry1uSPb>62ym$KXe&Aga zao(z*YWg|B`a|BtC~5M+w#KdgyX{x`d%l7ck`$&1d3~##kVpROn$Rn+&?lZibGh zf)9}K`RVyV!9r*Ac5@%=15wWrORkh&d(BiYSAM8n$D!m}H?ikHkn~kh=s#8|9!ga$qAT@{6ZT#!0V*< za_@n(OQ8V{0Gu6BDsHG&|qv^qu!*-78$8G+2Mb{`UU0^Vzo}UiQnv>1%qhQDOULY-T*@=btp|Nw@6$`_b1L~7gBFx=jyUu>VZB5?r;_2 z`r2lOg@_F5Re^F2LGH)eo2~evROX37)sSlcwJxEY<*d$i+IzhMKh+?_w-1`7PqIr8 zzb|A^SC_#`uBjtIdzZl{SHDgW@~HU`o2n=-t(3G`LREIH6fR~1%rfJrox-Ih3BxS> z`JIkeXAFN`d#29hzfzsG6-4`$lfj!F70B0|oyZR#gme)TrOhdI(9M(#Dc%VpFlM-d0nv@&cKcJz?Zaja{ktPI{rOu3L|gw65L@{wIk=!s@^wYV~cy4x80|Nt>Tt)y}GP^KLhY^kB?g` zC80RuxSYbgmO=9d?|Hnm!QN)do^jj|Ls)w*%nTb!YTSWX*FSXzjgZXfhLtn>=YZ0j z@l68F+5BUHo49wSK!ibe{am$E(kQ*^q{eZU6YYWd_?r;9#Yje&2-)K=Y{ba1{`uP_ zA@dLCU%@f_V7L<3Lvg$Z-{0-)PPWD7Ks)nE4|TnXTg6DIm2$9Adi+nyf(YWUx0v;( zr`Plbz_r`|wuVfmt1LZv1eews+AOfGHpJUb&OU9tXuRkqu9T7ko5WPhnloa^_eh@^ z29Ji#G_DehMOVs7v%?^-`s@I9RHJr^$vsoneHPJIz#BqxhDdH^MA*f{jT@F+^CLqV zD7v4s%INX8&(csIMpg>-J1B62jtMmiyl8w-fF66XtSP zhzgmr+?_nvNa5mZ=%ZQoO13TQ{^v#15Un`t&wg$mvo&h1fCgx_jMS`s2h28zIwzpNa*(ag^2WQ#-|tMXsR4zs_1(DWB9OVN_-?^R}~jRqr|8iavp( ze5(i8gxr?i?6Swto2juf1!3$Yq+pkkU$h%STi{MZ-(IDRVi>R9xBfg+p6!--f!4!C zK2Dh1mMloY^p+1JnWd_@{#m`%mebxggT3&N(weh0Oj@3xbEl9UZWpC<3e@qRpothP zitC#-68pf9mdm{1Y9I}tE0)xm?PF$yjUM_)VWVIXBbv3JI`RAShOhE)VYshxh@#Iy z$3lOFAZ(4=@}9+2wVjG-mu(xHn5at~-cJp`fQ(3T#5e)tHl>z{nH;kjF{xrmbXdc1^gmt3Xv6;%=l>br7<`I~JsKF%gBQ*$ zX=I+Btih9NI&1+?!GFF}(1WLwb z2GKdpNWS-`c929|RHmlu0&`8T-f2gTEudG+{M$spYtISwCtVZeGV$#1!!@}3Dsr0O zwR)qcK0qVl<{5$925lvynk7a-Q@lu>Cxa|Vv(8Rw5^KWt5$dLI928TKW3no|c|?2u zA5LAj$4%%-MQ{hQvVf!8NRzFIULv5HZ7`>Zdfi{OH}nTi`!K1^_@B|>#ub&;$LE4ulpZ@pr2FAxCZ-iBzNq24}yZN{c^CYL`xQQ;z1GK$EGY_sH<$-Xh z-=2yr6vaMB^T9swU^p$b{}TQ@lKsSOP5wU*O}{Wuj7ysH-CvpfjoP2U_sGMJG$+M3 zGEtqc+U@A2DXe)%R+^^hmI;>A|IAg!?oSC&@;7iS7ugR?43@thWg^AKuU&wekc4?G z3uE>Q+3$*FFyeOPGbtQl8Z+t1PIAbb1jTbB#1i3&Qz5yJ&0SwTT=3*Rnv(>vQ9-w< z@)BAc;x>ulL1Hw=2{!)ApF07}>_^sE-KFj$LpJkG0Y5lDLEL0UZBjv7H1{&))a7{R zZB-$8lU(;d^(Lo~Bw{rF^Bv>UMi;&jUO1v$-!iFOV^Z8L$6r4Ul|Hf$$_f(OQ40w3 zg(~8#Q7HNcSX$eTJj?69A2yfWQwOlz)0K&_?|Da8v>BIBu2Ef-jj}!fSu7J35G1B} zuA>+GB=_dD%J@!q{_K?$bF`*NT*l^hbceTbOu3os@13zj>fl+Unc|s(%eE99>RV<> zps5O%Uri4FYyziY*E05NGRRAxTSKiwl@u4zwZ>Gz&)2ehifIEo#-;aMWrQS4&E*fQ z8;VLC{DlJKKFh_mKkYyEATS6u4p+l1Azv$M=M!KEeX`FdH_7RiGvcGiYyhQfh3szO zcyR?M7*^H&ZWqC?TT8{nJ}I7!%8`UMP_xuntCB(lg7? z{FSyyDtDO_N3%#EUj@Aw+l=kFrXfkX6vF`B3c!jBB}Cn$+q`j?di-y!`VYV4Jsgem6yAW)FxzKNt6)ifXjd)~A3y-m*| zg3ojiXG=s|SPPS;^-!M=GeoA-`>j=BIBY-9Gh8e0E+2N&x@yAWoIwq@CBcaviU=!{ zy4sMnNM%gh=?(fU`hfa1#eT@((x5+X?dct214EB)q#(38ibsOmER=J3I3#M=}HJ!4LEUi1Du#TzBR zU2jr3sGEe|;iInSa`g3CamODyajV%dTi3<)1U?|)+bmrA ztNeM9^M7t+k>4~xL{M8`JVx$s{?GH{e;MKZu)`c}*OaeEBiutRNeeX6L!X>}aw0Jd zYGO0~jF+5wmqHh>wiJueP2v4lKer!bk4i6D+;pGbFMmrB&pOK6o@KWB^Do)B z%8OjP)F1*Y->L!94NIQSwy8{Q38I z|CXbzwIf#YxCha$Oh}xrV@=z4ulK3Kd2h?>HTL=xE5|J9HDBtVC$xqZlH{hibmf6* z%QP&a@Bb$oIw`1haabHPB5jT{nZSp|FZtgtvMKMIKs#Uleok9isswk5&~i<{jY3htJ9vF_G@Y$vwnqs%zVXt zIWNVOfodvm*YzKgs$`Scv98kAW0pcD45EV!o>{0A=*zEW*efA~_78$Q;S_~GjfCc2^X&BP+Pj_&S6 z^)CqR%Y{*DI_ALu2fbAP`h61zK~=jClR?-sqPl1hH0Q@(T`2CQXhK$J_OWAnAid*8 ziE0vx?>XZYlZQn-8Qv0>OgS3J;lZ46C9i(tR?(=xs=Xrfn}7IoQV;F+ABt;`S}?DD z96|5OvpeVq+sUZb5e&xeSp5KRLPbP#`~UanN}GrqC2&CJS`mZQWUQ{Skmn=~<#M9no&J7IPSc< zEU!O*iFo2YO6^HI{9mH(e`2cdPUq!6^r1U7f+%YT<%>4_Ph{U9_63rJAhPG@1j}>} z3ofhF+VTRz3GOTx0^3=0Qz57j`|aeLgjxEPs=ySY<7(oiNRWgtZmgj`ic;SPe}!yj=GVnX=D)WKWs@?ZA`{O3meMCYN*()e)1$stDZ{_9e@fV?I3@ z(EOumYKBk7kCfdBp&~A^VtsOa5eM1xmXy50R!3BW;JEjlB1Y zd;@XnTp~r)h<&LM8ILz|pAZ=(9N*-44s9eAA2DmUw3tS;co8#BpTB*GZ}MJ(Ck}Eq zn)Mt`Y9zvP);d@Lv6DdZy7XQtA_f8owT;>jG2}NdBA}{oqk?=cN9sDMP8B1>WQf4+ z;1`z>d{4xz<>EzmBrpM?R@%^)T)$F4HOCDzl~62M!7irgcbAy=F_FGLA2U~{D(w|& z5p!JgL>a#C&l2bb{jO0?ZvI4&)W~x%+RbD4PKtugPLVfd6sEk3wS-tU3yW#YY*((6 z41!F#c=up<_)8dkB?x^TF&{6j;@g>=N`1N;YEw)pQ;MW64C`+?p>w17A);bvXm)1i z_st)2cg@@My)d@lP3!cJAMATe9_?;V*8E}j6TIiAjK4Se{pXf?22>|iU<)ivvT*P?3b^%jeZrC;HW98IKh_8+6+s6oEqQK6l(^ewg zOpG83seas_Wf`~X>3Hf0nd%8f>rWk-i3G~A|M)IPB}Z!I%j9f!InQ5?>t)C1^W0|q zzhur|tGjLYGRld9@4N0-iW^Rp2j;}@>$$4@NbqG_h|ij{4hQ2{yfV1>hL|?t#U5+D z3jUc;c9zy)>f3B;k-{oh@4V7s(N#IWal;u`EXY{tTckt_BItkgvP$`Cv|sV<8^6d( z)-MMy@!{Ji$%>s4vbVNcw9tiL?HOLi- z@{mMXwimJGk>xfqeAdgus|?w;>?(4@KjWuZM6*R%m28}ekMd-kh3BJSG6cz zr}s>+Qt!h%7Z-T4ldh>ST#RZRwsI&Y5{u?xxzh4tCV8e|Mrej{hIQjEX|jdP~GS~Qq5kQCA5wgl+{g3yfc>dLFcq^xRG4`hq60`w}Z0IUVEA-))7FXs+N)e zF{Y2fj@EAXe&M{!x6@-W%o=gs`n~N7%JXsacw25{|w(G|w4 zf1>XTrEk^|xPEmhelCGB;gPNZcNzEdbCGSNF*jp4Vi>vkb+U6l<&5W?(%sZ;*9p%y z(e^4((iPI4&L;U4o2#3XthJ=gsBN1qkrk9aNdH&{+_1p6I8f4@%%wx>srUD}? zdL+~Om0l}RhTU&6o@SqRY;tT$;~?Z<5l>lG*;i}T;u)h)hO1>&4__FG8D<#h8r>^V%1_R}G*Fpe znRz<1LL*8e_x*rv!{_y~*0St!`p>h!2}cUb9Lv1SZ7pbR%Nq+CR->w;yuNw8KE6Rj z9yCOed*0~0_meNq)Z%*Laixje%yXV-jW+4UgWNzL=2rxrnvGdSH8yOy5g5ws;|avVM1Q5BEHtv(~))<@lWyX( zG5pzYkZhp(K#fU^kGnwR;e(oqqm|8|KgoYiO?%SD^S9h{diJ67`__w0nryx^JmRr3 z>cJYK(f?$rxU*=&E^VB3yYzqk>Z<{7BO@Nm<*?q0Dzja*{cGdeo@f1{7}NML zw49$ghN#t{BqEQ%ke9Sf?$f-E5!WC$QL(MHzD;dMNSjz}?)xhpD?dxxMk21iTT8*N zocVrc>TOxZOErDo^9Fyb^X$cnB_BTmIS7qFe{hGNe`f&x`)f^tT z9Q;h`+x+WGaU7OT>5|UA@LC!jT)C%dz;8HFYJTuCnNjLo$g2YC5!$$OKEJs}-Deqt z9<|jbj7ERS&izqg)n(Ibv+#GE_x)Xp*qpe(aTE{9hlan9Pw0JF+1^nc;g9R!8mSB@ zldnjtmHb*|o!Q#iAt9}kuCt|cpd+%{J638wxc9JUmC>_m=h|}r$la>lW2x4f5nUYJ zTm3fu)`zNxCA-oEAvp_sv4@WL@--YEuQcQJ;vExRq$nG#_|<>D_lC}$@PR8!$`s8P zYB0%bZoK3oEZ;Ghzg6nzP^ZfR5i5rPZN!p2r zcP;LI)BGvbGq5=BailzQf%4roNyBG1H+5R?4=?!lMcHn2g(b%%dwKKikD85qEc2YR z?3}Qte6;qB%4Moo5gR%uQ6S#Nla9qW^?7c%EW>S zV~2`WkLprSo81M*_t!hewyK}4(_jbs-;3QCtKRf@wA;A5JwY?(?aX=H*H_tXrZl9BKOA z#9Y(rE_BsoOYd-{-fh(F{94)srRL0Y79TFG-G0%wc6a7s6n#__79THu^T<+&cLeYz zi>1n)TL|KD2|;`V5M&<7>r)3`HW@q-?unoIi*dGee$sbsrHTD|$kjxHj~r!mMP^hn zX0kF=1Q{34zg(Ez^8UN4ygKZba$|yic*}5Y^LZC_e8Q8R@?Ff1$6)1n3{mP?GQxm* zGXc8)KE1r=B8mV1`x~6P|NSERJtPSF?PPj0v$NJ-R{!&3Wb2z3e&hMVuX$-bsX4zq z(~MY7cJ$m%Q!?*OS8cHpgzs~zFrHstR$z;ixqFv!cw}U1_poPR;AL5vNcx@2%%Ud` z@dgi%5(oYDg>~Hg{NVxKO}>E|nGIVDee3&OKFm=Zx8%5EPhK z;L?Y|C3C@q)V_u8@$ok=UlKA&xRRxKA6#BsTy&bO!?`9b%$lsRStp1NK-O0FGw#Ww z-uhPvKQT0vpoj?2*U=F_d9wVw=<96kT>ADtb63{$QdeS&isq;qVc34PXAY!PfenZOszfv)v-d z)4TFXBbl^(1l~K`faj%|KyXu&(wFjb%k@8vqKC^Rk*!u#uay-4T?lVh+)0_i)=8IO zsgK$dd`OR0TqWLV*p{>VhQVxB?F>7(uQ$@3CL`Q`c@^HzvL)aKf_{#tLdcX%Emub? z_B!2a@RC`1l&~hKllrsp^Yg2n zk2uw1NB#QsYdbqT->$g^e}Yq=J+|!?(r(w>KiPsO%LMN;ZDn?i;c-0ytxRSgEM!_* z8lImFQg24}L5q0Gi7rw_!3r~5XG(!lEoEcG-rh;U_2E7xkf5%@eny2O${$h5xFhO3 zL%g#*6tFT8b@aCH{Dy~(;32-0m3@SF@~$sP~btjt|UWrLbMc&6A&;QjE{jPYzxwy0>_S^RV z_j_-=uBwtWcIi>u&F2~bawB6uykO29k#*R!C9erx_Vet>Mv|2z5yTIXBBULAg-X_=F*mFq9~ zpW`gJFu>^S93135Jtbhr;`;eIVL1DwOFL4;IaM*5n|d60;t~=iHwoeQzX}b#>UH4q zd&TwI_3M`HvAlcpY2j29LHmDCmU_Lm8*dMX5)Z9j7tZ(+BlOfx+vg589$odgKp22i zKI(ibCpWiebd+ZXyRx!k=!n%>sO34-zjP!>A|nMwRo0jzO7#mtdb{1V?-oU=d3j_{ z<~keSUQ!dV|Hb9v;*y$?@!}CRdd&9{I^@x!+;EE8jy#a%T|bdLUMMYpQ-baLp~ioj z?dzr;NA0_&p{Z$fan6iuJ;ubiA~I(dq+18%Cd@Y>e-8$3o|i1qJ1JqPDmv0eHt2Hk1@G|4fgxZYx$ zkFGJ42x4qX=;1{ZN1O?SRkpx9}!@9Ehjv=?k?bidCp_-8G(gF&-jGOe^s|z+fUlojV`ROIr#L&h`6{Q z1D>XU`bj9iET5gG)bHb z(?>$GlI|x{opLxjM@5XU@V7QUpSOKon&Gu;BqsL_#^{Mc%yF(El-q3b)aR|~$Y}xv z{F%hKjEs!0dw)WqqkVodr?EqH(tpn)nP>Jkr{2`hi~SlHuo(VwKVHg9{O`|%fB+)O zj};XOL@(>>rPDOcp;GqUx;|Bsa-5g7pBd|O{``5lgF@?r%yWCW+Zgd=jju=T^|cIp zmBxHu;WhSfy=TGY`>eBdB#uZDukAnn1~UOO7%Teg%N$1tYbUy{C!xzEziCW3`9;(G z`BzH;j}+wVTFs$ZsSysc?#{$tv&Z({{SOJ>DKj!|Hs2KT09wAdQ>NI1!K<#z25?@| zva?n3(S6Uhc_Bmrx=y4DdxQ#m;FVgv6(2WzL>0qJ6H1Ip*5G`nkx6`Xo`MKA57Z2( zICh+N*BGExMW}O>P!s4-n2972$WFS5L(gw?uz&QZS)TGn;Pr9$fJfr!;fP1(`S#`l z&Ij~Jz>Y>AQsC+0ue|Lt>vo!>KeV-VMV8I(5p-lqg&*LEO&pHz!uodq{>|m@BY50L ziqT!DHU6f6Q+pI?kLmaDN$TJzK6qGu*BB~cxa0=$_o;uEQ>5Xsv`)e7QPa?TOi#z3 zZVp%W^18w7y=Pvte^MlIWxRdc>CbZ@bYbHSvvH9!+G{7 zirqAKV8Xui`;-%Lc5U;t-{6v>tSrvP=H_h!gJ1w~N85!y)(ui8C-1-?F&mN&=-G`I zf65IN??o$(s^j#!DAZ{hKI0a4B%r53ba(X0dQ9PSf=9K-JC_d~sn4A=Z;QU1m6he& zFeT&Zd6??%s;93%tt@?T8s4R+xA*O({Y+P%lXkzCZiQvvj+@2U->P}Hvb+DhrK?LB z9*6YQDf5z{fBzaN(+UdSaB`uWfsT`;p%vq+kvW|QkJR4M-hNilK(GX`rLwm6*)t)5 z2B9u?Zxq=6xl4XMT&;Y(R=sO+xU(V|Or}I>w)iWXidHy}>qzZrs6R$r8o_qMM0?nw*ovt)6&| zL_1TXu_f{%%vgj*=IQX})1i$Dyu7VPm)n)jjOcL3C?X1MrvZ%rhs0sCOif^qC)NWl z93lDn`I7UTAv)YImI`Z`Q?N&KMNgOXB;i?qS3MINWT2Ece%h}KCyULucBO3OGXN_9 z@uEx=0OEfQ4m!Mb?CJsb$<@ zYstKltYJ%VoS?4sWj`vwXa6`y1MB?P)O9a2Oqu{Al|reJc^1XyUb|z>`I;xdW8M*0 z=ILSP+Ew~Gvv+hiZ{8GeTQ%k}{z?T)tCHCV=rp*|0^lI^kZ=Nigpi|i*=yX}$r?ma zt?b@>F*id3+-~1KU9;E7|0k~Y=n|af3E!x?sfHjF`@eG=e-5PmNN8fN@+zSwdNv8 zSD}4Y9c{GZEmqqK(jU$8`_#|(q)j%-|v`?Qt{dahbB3}T)&zw(MW6ub_uhDLo0uu1pV#x+Lph2+}3Hq$+ z907LMUZI=-k!B9Jy%(Y&x9RY9_*38g^~2Xn7h#ZZThm2@wfAM992HcqiXQ>-qmgb9 zm4a?y@@)3pyQc$&007_xCxg)5!J){egW+gF)5jvMk(DB;<7MSq4I?lDuE)XdY1@k1 zOB_)o<>MY#R^jjSCZ;y`73Pq)RqawpU~zFVju>Im^+!!<;Zm<8)~d9rn2VpKm=x0D zRCBKnil1%C$Icx1h#kV9sX`n7wOuJR!(xslPye^Ll(;g5gKp+K^khoAS=rh39oHwq zptrEmgnp>5zR@nKMsakxQU#~xK=@v9Jmg3-;R?oK!?UBr{g#8+Evw+LFk%h!^{Sx$0ef|z-IO`0<8)pM$h?dA`m=&b zzW`FgY3$^-$K!V1a6hcLRx42+B*7Ql<(c3i8K!uiTYvs%D#K-Teqx^ypXi+XHveV-Bt zQ%d`{td$a%oSeJ|ZGdPiKF_EWZF?#EKW$<10If7C&MJSoewu^?S#S|oBacwSF)K1a zzf@$SzA#<3#O&8qC3Dnu7Hx-@&V+0_hXkutac)xdxrJ}yoVrvx=A$wg_w z&9p0VMX?V)XUrDdx`+Fv7%PaQrK1zb@3o+|2ix||!GTAOA!jgpPDaW#znG^l=QmpT zL9h6z7>aU`%@nM$N;Q1|Eif&VAlP&yz5wRdGbcqyM*95?HR7z7viLh+?+V|yc{Zrn zM8F6X6%`49Jt4&WNP-TL@9wxKrRVPI`R?gE@Xihe6@*G@r=df@FhYN(-%uY<0|N7* zZvo$&%`}J9x2emb=%3-qAj715nd>OOVEl?{c#draz6Fh}G}U4cYo|Bb`ISM6c=ALD z&NK90f9UXEN=rYSaN!GnGO3|#GEWcm)$p?LWjIJ?Qcc?*-@U|HWx{W7Z~w1H`9jg< zNs{rtp%UA))Kmm`x}S{9DE~L1XU+h#UO!&*xe%#hB@=#2l<6gCLwSZJ zfoD{6FZ#w_POT!E6~v~+`iLZv!?Csze2p$$UYr6a{qqCgZ8CsQ11Jw+w;q;E&+a!fA&o5VePT2 z2mSBfA!pnA7%-I6=ty@D*eRt{Q>Rys^`uFfD0(=oNjt;Q0*ZsE-p^kNOuFe9F)PYe_mYyNLaihWQY^dYE|48 zjaX&F!M3_6TS4tROmR|=>*p<9FKe)^-4}dzdF{4Q2BLtQMN0C&b*#I=u;6%ZGNrzy z3F^teh6@-fKv1ag^zdP48`GWSJmbwm=C`vC5_qQdg^rDu!u@@=osw19zcCf}GmK_y zXa0fu+?ayd%4Cfz8d%znzjpr&U*)nO49D<`D%2ffd|bovQ}&gO?vi{)LT$VZm;YUq zYkVNm@UYzWsVU+MK!VY`_CnWz zeBZ8>rA#8)RN1=MmY1m=d_J>9wN9=#Ur+||hK9$0Wgv9Xn(a!Wj zIRrcskkn=AB+!h80q}g??34g3)${8YdpcG}C~qLNz22uFtky$R5AWF6%JjIsz|){1wx{3jIwS7JT^l(^ zK!8mrHT>$tN^xF1u&JquRmc^N4HN)VEiEly5PNK6aJr3p*+ff;)e?wdhXwT51@ zkhH-;CR5^13nfXdH=A6BElmEfdRtFDS^OLvH#>WKIW@J=2yFY1kFW$s`C?i_p>Z0& z51&so-m`-&IljKu47${{zJr3iJO#iNCsgHb)Gt9x`)eGvuB}@*25E} zQSmqBub;=7ZVH8wrn5e>==i9}0Lnayno(^~zD<)eS;KOq%n@yMlFXWMt{EF9oNLe0 z6I0b|`|V!SX!!!kA>d% z(e&#($4~M_RqwezU#BAzu^B|EJi6LeYOqF<6yLdh|2bb$#TmSVkXp$tUx%4A%CcPV+A{czS9 zL~udwf|t~Vw)XZS=uP8lho?clKx-Y^cp;6zb0@1ZPr4OTdGYy7>8<+Op$9bgfanp8 zKD>_h>~N_AV$e3^?H`Pcj6`Z=UVXZ#)3M{bXcT!DC$Yn(hqN11r70)aF|14!mJKh- zB_IEXAr-Bjp&%<3D@4ZtrF^g4=kPi>4XlhDhR?XD&)AsjU{A?>`O^D#yFI~6*pgq( zc2*`?&|yQFSJm0g*)joPS$N16>DxSA4@d6x_wRCf21U4_#7*oqT?b7g_`>nLGG4J` zYWwW>WVdmWlrGLNy4J8rL5$HWvS*`KXPb=Uj2hIrFN+cD+)V;R6m~(Hnf9K`X%o*C z;f{TLGZi@%A`ZDg!)7l3^#jIijK+~`2 z7yQUCALka_6NKmOYS}b)2#1mjO%h~S*w>Pg|4R}x`_^Tn>$~elE1neD^{{>U@`ZTe z^SgVWcxdx4iczts*7B?k=B(?JAZ=1@IJJv9niG8sE`O-<2@jetB35U7gMGni`%qkb z23icPK02E_YZKvsA;{uAElP$^-Z{0!-~MfO*+-PAvrWOiwc<(4&6W$ZzNS|W`6t}= zvHQ=ZjGxWMxX*tGq6$&?(KS0aHw|62?jZ>;2QjCy!*bch#qm`SqZXMm1HD*sk~zamG}X(d!~ zHB66K#*>{%&dKQ!bc(D_U&Q+i)o~SC-bwfS9&yD9Og@P$3Mqbm&6c)o*LYmDwr}mdrb8sg z)h$PDR)W?sxGfys_Fht|(P=$)dON*Vf~;pkhy`U{GPSg%^!eRWGnerbJiakRl@H+D zZR{y6=CBsa2r|mC_ak7~A`eG{kB*-Ie1C({qq-(EsxmeqDK>JXHG;yKL`FPW3Hs%k z5QVsJj~Lt-rcrwrL^4!qK~ledr2`hDtE>AJbQY%xuU(RJB-1k}jYUt7My9sQG)s2v z@OY%Z_cN20H`^dE^Y7~b#=4k)(2>3a4vk%FPda>`_ z$+@qx_?QZxOZU91t4jbl2&57e|G_bU@o|Cn2wE|m&#ur_cA%b4+x_~Mt#2=(=D4!5 zax76`;|HO_=i>o6=2<7q6MFP;)Jv#a>#_&_! zTPy4@JY&cEipAb>?U&MzLlkgf2k&k5X%>NI4$RNG;&s%ufrsTNpCce3K=oE@>r3E= zfwtTKca9BrM!j~KAoVSd{c-*SK`u4-S@|QNc~0n|SjbF~%GmLRt>IdEobD~c&rf+# z`OS|n_xl7aeh|YtK)VCR5AQ+}!!56#J7De$9XSBzhcxcWh@KpRYEx>WD z9Al${ZjP!Fdih2#k|o?e=I5_`9omFc0MiW*9ej2u(w8n>LRl||dc5z)k8I%d%OWjA z_WkqWDx|!bo(DDR_$@=?6`Q_CK2W`I!NIQuaSmt(r*HvKt*`rklh%_aj{XKNeeAFi zTCLjD(9zcq^{p)}6}~cZCC<8~9=o7|(G0{-Ez-!ibB`JktYAyJ4(<=Q+BVjTq2SB) z>*`NMDl<#KRpe_XD8SIXhv zwc>heo8mOi7s5EuO9A_2sa+5L5C{naO6eo2IAdp$2O>#yoI|w=95Z%fSufLHym$dH z6Yt}%;1fRnf%rDcMKNx-=ePG3^=n@NGaQ{g_O8`Jv?`^6FP04Puw&Wxd4VE>4vkC> z*`_pZ%(fRjnve>VW1XUR5(F=Eety0V^lVVvC=jd;mqGqOp0AKTrDuQl8*h%muGUZP z)Lg9-?d|PosX#4MkYLu*nJW3Kx9%8wEM#zTbAN}Dt~qa;3EcrKY!)hF;K7RcSQk^B zr%I1nFyTSQ9KM2&KgQ~{>?#%xT5iqv7?jwMgK5n#M;?aq`h(s$0go*^kc6%h0Vgk> z!PJ{+Q6a@WrUiM@$gL=8vB^vZpSK55KT`aUq4L0XhvM_Nl{*R4El}<(z`x1-Lezqu zX(1aj)Xb}RGG_sR3zUBu7(3ug@WJFhXw^pS!?7%}?NS1VewsfHxBIs?J(7L7MaZ{l zFG^ENR!!}crpF1W^1vZv#wEPSc$QNmaO@$}8ZTPTXG2?EfR$RM3GhIv-rwIxty0X< zoHXciHOd)taNbc(&UN{>-zBx!y1C7#SAX4c*wrPe%0pOMJ@_p7c$=TM4e09VOtzb1 z1mAnEiY<>;Y<_)v4@B~-mQ9e$m;x2jzu&$Q9wub0(#?TTaSKb!Z^C1LlwCHmwj1iJ zDdN_bv#`3-$zk8FsEd<&^WCiX=GHgRLqQpL+MkV^{t(3cN0AGqqR>hkfi|H074#=F z0j`z{iFoPVk*_g2{GqGG80YHR#C6Um(xrEaPU8Y903%=d4O4xhumiNwNOcZ?5P(v^ zCDXch?{&yo&Oe~=ieK_y2ovh83!@hbjKlA!fK#{r4bBc2)fCKM zh2l=~PATYKRhWY%P`2mp=f^;H1{Rw2SidqZ;)}FCiHsz35HuoC%S*nUG$DX9mvDV& zv1Cosv)D+L^w8*dTw+pc9@N+bazRQ;ifVpSK^Oi!@;My2+~1O7SN9CkNs`A~edu`x zZTcI2qTp#3+ttb?x55m%?mI+U{}NT$QRNk6V3au;R5)LH!+az0$%RNYh~wZvqa!IC z3>`G_BnQr=2qc(pqOI-b&!p>=rKP2a@5`4jd9urwR|{gSqeH^S17k19xDkfh3*3AX z^0OO^d8R7x5#_%*j<%Zp%DTM=JA$%s@QS}T_rBJ7Ot!;|Wy8l+d9`}^(gX$0dPWpG z*-a_Wr66GO?{Cs03&=o#@DF-!;u=UDDZO-Hs-S`n^cS!fl#B0MC3q$TU+FbNV^qpX6#=(Qbk9}*v%n)|*+jN?>^()Nf%D?QfvsQyG*wu7 zn6=wlS_p_w*6p$89f`tTy}kL6b^)vda(%0~Wcw#?X90D;96e1>k4N@Sxvu09x`ffz zPb*0?RVzz!wn0qyT?7Aak{6fllQw6akHisWy1%KBS;XzNYtHL|0&c(w)E6aBNHvBJ)*O}SQ{eyy|)iZse1 zgO$>ny)-j>#Tu*x%|Vuzi%gFV@AhQH4cOrj-ript$ZvoqO%mQ56+;kb{nwdLhg_%fl!Y#vOozR8 zWg&PzPNHO$V{br9LxU7(Zxnen9(KcXCp9fievbpSAK1Rem6U*d4Lg@k!j%VtWJlh$ z#DphVAr-xQ<;JnBxy+!ld)>lqxp^vCBTf;wrSO(WWb|DXK1hH-W$z^+h><^y0*ul@ zlh8kZELhhefK-~FqK=$L+y76O+jV&ZAGIe7%XXer7^BGbz1NQ6H4%}WVNpmlnuDi+ znj3a@Eo|Fw=1f`K_*g7tj<4@~oyC!P;snbi3Z~6xfJKt)KhBE6+LP2i+#vWcs8ATr zXT)!xKz14_G9ZH*3l<-Wpn}GZ1{YjVX$fug>(k9BhU${sBpdfWbo7=v$v#2&EG_f# z__Mi?pV9CTp-_O)H$OQ;5)Do+IR2xVX4l?4NSj{?N|Wp%ps{i9pgV zwA%4?2vAE_l!>Mj!YlNk9|8Af{y$d2d#L+=phf}xxK~9uQ-D{@9-ls@K-lu;z2oW+ZBTXP``QC#R?0r{_Y#&WXTBwHw zh&SKo%T7KOoSI(dNxj@Rw^cK{t9cW#A5(TbQW@G@GQ~2WoEf09ryTvW#ZK8vL>piG z2A!|m0b#QgjHKJz+Ct032%vaWiKUbFem;OY*K5;IjGCbKe||6|2=T_vhD5YNpgL0K zsi@XK0O=u^WonuBAjhHo6x={CajK4YMvm_&MQLOf-S6W7f}%r(aGqgm-)?BWh%>X+ zbLqlx2oiDVtsMc@i9-Ih^E(pa;@|MG&iDOdAHQeVg3u0cKsn~?g~f^J7{p%YrYs%( z@5oxezJ(tZbMHezYI19dwprNrfOfB=t4orhj5@i8V{0FaicSOOL^%q$v^czn|kS zVl5X)4^_cQaJi$4vmr`FLPh#Q!LwnrOZoyT!J=(g*kQoMVNX>GNmC9VsG<}kNl?R~ z3U9s&=~htGpBvl=fCwO87~^$~u%P9HI}j}F^1*DP)ZpLY1eO^VV>c_26j?f?1BPM5%?z+(!OVN{tNQb2D$svFjt1Btsjl+7 zd9plxljkHhlvlf4DHF)tzpLE@F@*1M1YXdZ)V(@)1%A-OtBQ*yv+RRW4q<+sQ7CaY z8{xbI?n9nES`e6SdNFqZ8$iE^uGD^5o$0%pHUZ2O>;Y zPYBGodDIFsfHzcQI5;@S+rQPt%$9A;N4r{c_z+6U6jY*VqU--nBV8VmReq{pPdP*| z7J8N6`}>H?v^zTjQA1($#E9;B2rdKAlSoS563nye3SKU!}t za$6ghN-_odR%DRZKCCqtDgJj+(XZy9LLIlo8i$*Nh4Enn4;Ki*2eGUMCJN9@t=%_@waB%uysSq+aQFgYfHJ5cflD1yvhu zJZEG?aDT>J%3!ILI3si8Yi_;x`Ek`dJVbQdIH~8hw6*du5?-d4h<~}hs6Ka;d+)Tf zm*)Ax)tbyVDeAadWl3!am|4W3jlGv)hhNniqOF-5QG{{myXZUpb5>up|G0f!t;MP z1BIrj^@bUTNkq*Ccgb{lXjU>22>YX<9orNy5s0%E|Dv#R z7lRTCmkR3VHa`>;@Z~0FJdkn#+*xW=5{(1h65u#5s-!uI{-pe$TL1zEs)!!W)&(9K zwE@*N$1ZNWg5*iIb1iN?6EUiI*BH>N+=?n{a2_)2Kd%+hKr>@7FGC6sPlb0>Hg8 zEC}Rb41u#6oD_q;OifxrZ@|=`NojH6hc=?J!e#AGW}WZE(D0$X{TZAL;~X|3Z|c1k zDJCobOht><-8HKc3}4)p_9;jJTJ-1Wx=+2JJrJJ!#TKSvRp7QOWHjR|`S6RhR^`o# zs9?S9R}c2?3(%pdv*@@u6s7(yb)XeYAbY352|QL$=1L*SkX>}N0_chCXJo-ZhSb1k za3E#3c`idP4aIGMKH$d1ul{}#-5~Wgjx!{njz9p~>at02@Ta-(dNbb+o3l;6>Eq~j z^1;mc{Het()$WagsBp5YPdT@S?VFG9LfHPEM++FLAv^@szz^x2)}{ctv}9rt-1RZGco1XZ?5|vy*Hp8Yfans@QN$5U)=5Ay+njD z;tn#VcQ`PLm5Rdk9qt823~PmkkMV43->#iJK1dRBa8H4n^h16=IYbu0;e>RylCJK# zk3CrtdkzUYZ7I1*;m+Brnou_SO=6D@pG$$eKkZg~c)sl6*zlTX;jl(Ar->$CBa*K; zJZG0jPADH2`_9?*eegLp#4Z^Ez~5I~r(rBySFW7333pc0-8N~HEy^KQ&A1aUWZRj_ zhIEQflku2Tp`z^e_IBb;o{E+GpdE0NJbh>PhVgY1kFGByovgNgWos9?EZmWV`yfYD zCo`dw-aP5R09A+5|@8G~?6d*rNGBx2qic#HqZ+NhVFr_OlrcwLemZlCt z#FhAnlFu7!T6m7a1_KA*DjDY98{c)VwE12-19PwGuqBU?4`&=eSfl9@uL29en!FV1-m|58VA-=9uJu4EaR`UELU`SD9BJ zVU?9d3_MP*lh^k8tcQ30Bv+jNj|G^``L5~p;2m!WfS}fqup->3MkCo>Xo`zH`b(f?@>G=QJU60~s7 z1kAmUCZ?gk-;(foV6P2a(@>CO1RjQcDxUoN0$ed{|LK z?BYy-iJszgR;FN^Rl~SF)5xl?9c8}V`M!6~en}27#Fv4L&NYT}n_(vHXr>0ddKA@; zwSDtsfXLJ4-;Rd;xs-6BPEkCV4Fn$tK^R3I)PaK>GfSo$6?LWh7O7*XLCwwpHK8ZWZziRYc~(Z zcd8tV7j~f0%QLu|+T3Gz4JCGPRm6}zS8_1>onp1l_Xxq`YZI@PEMvD){)*DS{5JM* z)Tx1dZ>Y<=iPHH*t-=xbjjOfqt5&S8G{M5~+MX~h`e~%9@25|naC{!^tc(PK^LP$! zAH;}iwU-X$u0WnPwBPYvij~!Fo^3jS$coqp`mQ0UiPgcV@AOyJk=Slxh4RTzd zB!rD#&vwV$(0eH$C)#Z546@ooci`e5S{(X9{#wp@1Eoy+kOZhVlQzOAE!4@eXen!sOZ0e`GSUM(@;*=y6U@n7i6 zyeKU#y;OReh4QFxav6}xpE=ZH1Xm=mVJc6Iqx=w3vH9P;6Q39zCNK80#7%1rOh5nz zoNt?wr>zIzdi`g-Kqa3H_c^)<^k0(aoSqSeb}^$c>&ktpY;&N-uY#M$RS# z%vX?{Q3;{!!O(ZgC;zk2=qPQrD(cPP%H0gkB3^V%%+tr-anf-C&ELL#la)nPDKrRs zQrJMo=nH<$RHvy=AV3x1)25YU%|tDF=Wl%2u8K+S85}_znN2yV8MsHmgs(j!;ar=k z7F!dApQM5>jA&PK1MG)OB$lA(-cUlcJc~j4T`xb8GtetW5&QbOx>GQNPU6XEkO(>> zntk*96jrPLyk$-I$_PJ^qLE*%QGx7kU|2VZ=@Ca!4bs-fkb8nc1IQ&D$hEzJ?Qwsq z$#$LAu4L({mwG{D6^dDUL%svmx*t3!vfd-mc2L)TApb6Bv=JT&TrP?*wKt5g|CaM6 z$ms7!?)Lfdh3$j9qR3W7BTs0B|F>!#cPnj3^AXH@p@OLTRWJ5I>x$K{)zx0zRfQn! zqIaJ}H-8G1*cV%~nPp`o&ix_Ull(*n(PFXuZ{ObKiRCGOB9`?*UgA7tt*Zq#)9R$p zgajwLi^)HP+d@pWvlGf22gdXUVrQl9_og#%;(}V}{wIVJ4Ge(x1PcKy9=+rTvNRAE z0Jorg$Uy%DT@d*Aw=V)wF%*lQKl^d-aJ>5!=Hj*+v1(diLr|xh85RP zUmXq{9cg4kiY|{E=^rx9KU+Ss!se9zv#4)@+Vm_5r1QE#&W0(RhUx+md@%9M!dir? zK7sCjao-4iX1aG0#W=jP^uJ`5Sv;fvF*aJ#Jv1Y?w` zPr@x)xbq6m5{T3ADpCTWiN)W`@K0e`a&&-??%$N$B!z4v{zbtxD7khc!J@7(Uy#4)*7j4_s0kn?2-ND_L9vDeLQE zPVQ$&TnEa1z!C0LILZzT*1Own%uKu3)uuplIZ($!LD=ZQ!-s!~#Qul!E)!ix{%AEV zd#`;gD4>9>e}_1`HVe;%J0bXV>Y~s01f-6)w1H@u;D0c}M+h8>Wyj3eaGb5%vTwYz zrP5 z_}s|v&A<&EIQR$c&Tu_z>|uG!-v59!2;!|3Z3Ne2cy8Yi_)^9H<>oz={dB@(`?|uL zn0}ggdkOVY{J@_p^J@UI_*SlOZfpoRSi7UOG5A8+|GSZ?sQoco#E0i@O2z>PqVe0RXPW}R zVC180aFFfD~s0oX;e4q)|bWintw5^2|jlm?fUm&#^8ObAfk*;H{`d2o_41= z@U~cyW?!Cvl0e+u)`HhU|IdNoko$D{>`ToI+-oVby^LW0{q=yL0o(-uW9Ih~uYl&P zSV8P+3zkFry2j4acIiTs4F-n?53K&XAFPg$WivK%`K6Ct&s1 zaiZotga{g-p;t!Zv=|zTSxV5U;rvn;Bamc2&dj?i*5E104EzG{_imPsab}-6T#o)a z{YC0p)KlU&iA8XXouOuKXeF0^ksH*K9|DU|;K=c zF%lUHB_u#mxNgzYjpiA)`9b z@pn+SU;?ZyN(+C%vb^o?{yEV*`5n3sSJ5-~+00!sG2tzph{+*l6zRZxRvXsPiROV(-4SPB1~J_purR!O1sB||yPvxxiCKn5sK z=2yqOSLv{{l}jk{c=XXCW6Djut`%eu(Fcf|5ig%4&Ht-V1qFl#93AAUHc`D9p~9d9 z1BhWR^Wq}gK<>Bu{1kj!)z#JTKmQ(IA5MguLjsqtLSs9#jna~+BS9O^cAqwau1RK} zLCQzhu?sKS$q5P)fD0E~Nm9mR7FkAmqQ_q^Kf1V{x| z96j^e6mcll7_wq)43*$sg|d0Z<|p&{+WgIgGX~7oBj;6O0XHO?_J8wI$U6c4=RG_w z=-95b3^E)TQXBq(nVi)5jy=8;bz+Mu|F1pT_TOSJC{G(s9 z^=|$zh)Car3aX_kABcYxAcYZ~S7rc7a1M5E-`jBP~UOk6b2a?BiMWd45-Tmr! zP$*)@wu0~HYluK)Q^&F6CveaCu_JMIst-S;L1wrQir4CFX_=8}b7E zS|@csc4f$Y6g&Ah>r7UD*vj>CrfUcOEAb&8j=a-<0kN^Mn>W5s*l{Jv@0s|v>nzD# zofz6dP9f~FFvs5RvedRAKu8!_3T9()<*C3A&jXr;WQ;!>9$O4^ZN|`lG@6N7$Qx=3 znL46>Jf)Hu-ooPVv6Hj7xWH8S_SXv4lItwU+kh@``u{&2&zw?GR6$u5wJ%Lthm{z= z4|1DF_aE5Vwqii}62(lxaSzd=hZtQzLO>&TMpH3knwg2g!KvyS>xjkR>XZF(YynVx zH?hzAEJKKsb2j`|9r3yB+pxyz)4c(D&6uL~0LiMtYiXoPlg2tU$-gaA_bOC4m<89J zW1zhPOT_-{!k-(!NYVpxZk+QN!YCPa{RtaioG}F3{GZXC9xNxP`?9Oo^#>IqGTI`c zI#vCa+iM@+%zH0$WlN_r+LU$Mjo}$M``@3H3C~SA?q(8y5q=Qee+6$b9Kz%8HeOiO z^UDT?LgF5c@=edmsv?vREQiFj`}*~XG>YNMszOf6oMQMf42`Ss1e_sHvoRYS+8JNA zUOM^U+O!|ki60t{fzxtA?`pS3l(GeU2qe&^%RF7Vl@qtEXIvbsZA5&a-*K%F^kC1tlZ1~fe!@M3FW-ji# zg}etKG>3_%huPi!k=L{^lk_Rx~vM#$odG9RFrAD6Mx?0z5*T zTI2cPOT4@aU!&~8z-CSHcZn~Xzx#ve!=M-B8RoEEU^)h;mU0V5?|)fr6LK;X2{U6= z^V#tI(7fr$Jq%Hvd;LA*7fvp!-pN%IjTO4Z@A>R`?M~X1Ne-~K7{}z9S~n|(fA|lN z2j7Qo(aJteJ3GMWS`vlCc+EYtFJ8N+f>EIAYrdn8;%m5hJ!iW^#vhLQGAboV-lXX5 zr`ngqE(=p#HCNoGZpQgk3Xt^|9?}85BY(FvI#NvQY@d1DbA*c9Y;PD% zqi4d*u5ZYpB20|9&Imy{jo+5o;y%%%_pU;^#XL`1i(SZWrN4Z|^KY-GYL;>07OhrW zf7-o{!`wlPTl?gg%N(zwAJ91(#?+r+Kw(Jj-pq zy@59+il7py8cc1mqwVj~k?;!duXu6h!&~L$@jINcv@1hp%iDdG1W0_$j~}dMop-?h zd|j>+jhJ||r&%$rIN(reh(p(?^B!V^ANQD&w2n z1hc}(WE>t=bXaTtYx~Nnt|D<-dE!w-u|!j;XyzXKoog%3f@{H9>Nfq4)lpQVK%F^L zm#CXkAlut=o#OST^(F#9D)GCy{_TA68l;Bs)eiX8?##hlkLVq_`oNcmF*#lLB`7V51LMThZ1*V@tATr`(m%8kE0sQZaJTREQ# zW?C3ks|<7%ueDkFUoN+4Af_>ttOS<<0a)+tFWk!-Qi*>)>3=NcH{23R3-`$ri_#<` z9~k`qb2<70Qy+p9%`C`$JCNbNlKPiLPqvjS_mfYA)}HHCj~5PKVT)5f+bE!K3wuNN zs1#2pINq9YPrn3vB8#X8)-A+m(dnJEhW?4SARY)AF84 zwnH2$n|^)#sB?_7Hl+K}AtYrH2ni1y^K~09Y7_N-pq=ZhSM5%?Q-tgxoI@N*x>}BG z2K!xSmLB5PAz#tb`bACz;rJ~LS@!<$89iui{rF7mamA|oE3(_DI!}jB>e8*$47o|z zA$4Ol`hhX>MDXg+eo~j<2<>`a!(VyFZ*mL9+|S`x?HmoMKE+Ng`nvz&b@6sVcv&77 z70th6{va&{MTaZ^=a!5?GMYDB7CmgjByS06x?dE#03u*DyftY&{x$iLD2Md zrC)JG#V$&Iaobf1IzYpt&%j=o6q9v~AAuX0?pf*Z4JZPG4U#q32vn zG0rri({OdxefFh=mY+U_%ekI03BCx+rNQH#DE}B+yysw|9!JB*PC(bIEar+Y>*Fe{ zYMHtEFNLNibL?X;aDwG6&n8+L%?TkB(KP9&w0+H;%u$V~0dmKn8TirPqVETk*Hf*2-btY}=mndtMnSl3bJDhA$zS4GoFv zbr{=;Z(3JzswGiQv(K%kOBFgIA#qNDcRaQ72&qFOWh;K9_th{r-^9idByGq<=}K_5 zP5m4nGi>O1U_qZo!7R{UZY<7Gamrf})-@mMBn@E1SV_yf8 z*d)vE>jNw1ChLcv+!|6Tt?NTFn87zbi};!AJv}`V@s|qa<#5zs-f`w;{&X;ByFk$p zXATFu!>hYbdO&d1+}>0PIGM4(15J(RpXW7AEiG5sw`d5Wy~m08_7B?mi^uMUdp*J= zw89Op6S~%MVDGzzmW*7Fjad5SZKAX+WW-V^DqFb@2(BfhH2t{tsO&?XE&O-3tX(z6 z&{~5*A?xyR=kn3DK@=(5dai#T3mi+{`n&_gCOzzE83e$!l1-UN8f)5rdBO`*Vb#R4 z*s9oSC57Xk{CGTjU4>Eqfry}IdgZ_3huE>z#g~Q;oILq0fOSlFa%IfK#p*N?AYMZU z0>60hZ4lS3n3$N^gq1k~;y}dbMPXY{9y^Q@tSBC$>RPIIDzsTg?4Eg~sBLe4srVsN zfW=z`eB4I%3M-mexul7AI4cH;u71v}PVhMsOD{D0NLu z%`Xc{+A)jEHm+BF*gU&H?qLlcqvtOs(T=sZ z1w^z_Sls=aAtV@c1cT$FFFWZ1KsTItS=2H#CHCDbxvWuKOpPN~$ja&z1`D$lY<`sF zW|F=G4f8P~l5QpO^`|N?Z7T&zE70Z`j2tq38YD~Z+Xud5o6JGskf&NZS6c}s+VMXz zy`p?MAux~g!=$th9}@HkK@+>fMCj+9O+8!x9{s@*eJfUrp*FY9NuHDxDF2qF?DOKl z^U0rj&O@j%l#w>Ab_T(FxtNK;=0d+qkOLK{*1e&_iqvO z?|+{7+qt+rpIrp^z4otrTA<q1`=O1_&8U8Hv`w_yExw z)7G%jf}B7Dhq8%Goybt=-MOv2VXAbB0Rj&O{B=@4gNXU(`+3kpn{?Gt!HWSDQ&4%nV;ccBOo&fz9AQJ7P|9OGjf?q2t`${3-EjTmEd>;X zhtvM13vr8=5f1`V=(?;)a|CjPh^HU_|Hzi;|Bxnt`X~3|?@to#D=1EUCz}ruX#@O@ z?v4K@y-V(bZ>4k*WUN2tc<|yL{naL>1`}UTNilFB7Q$~T({eK;6tLIeB<#I;kGCMcq^zsbC?hiZJE*w8OdkU#Pkw)VnNu<|uSq^jvv#i3g|Q!?5O*;?SG$!#c-Bpn0oHii!C>02G+&j`bT~{@Bm*&N-;t#=m@Y1~&pR@S)>vp?nr;JJO(G zK*j=b3T6yV#V5-A6fOMbY!@5K7H_W7_-%DxC-tD9+NTwGSxCp?iHy8Fn%oN5d4dVr zu-{{(YLiFDmApI|_N$CRs+h9?s={;KQK_CUtTMIcSOZO8mmVuiK3~r^18s2%s>18s z35|@H_V{%IrEmrc_>b(t<+rQvryYL1VE#lf8>~cc0Bs$&k7VK+KAE@2Hm7)d+v3?8D9krlm=E`6 z1L67i5c&qMWGxM{h@e7|oEs8>2mj5#aLM8U{TCRe5Q8;AOR~$By-DiOhA%Vv=T~c8 z<&L+M;aLiWWO&qWApsatOJYXG z5uT=l$;a?s@!Zm2=Q+FgNYtSKUmhEou35%kW+8U1EV;0_F+PhML*V3FI1iBgb``I? zg~g-rGV01Mha1(WP9PQJ5q_G@XRp5?0zJHwxW}Y%rU&Br!!?Dc-<)hQO{aI6`trS6 zYmr+!?;|c+#G1Ogn6L|GN~TSj!``W;Mr(0-$|%dMkfXxNxt3SQ9hf(eW&AunKBn#f z(G_WHH3eqNrmvXx^W_C@iPwIMRFUD{i#a-HR*X;H&kzncvZ{6^q=-&xemw?DY>JcN zuWN`k#oax>mX3qz$Y0dfu+HBs|KgBO;>D0-B}V?3_~VYht|-IZDjLPh(YNi^&GnBp z7Wm-P!z8z3<^W(l^8Ya|&J*Fij_8>Ad!wUYegefjkTZ^@`JY z?|Y4L5h91Bzg!%>P8UAo?C`-OZ-JX$4cWPaf3IX)N!7Nm`1ws!$`S1p3e+<+AfVP? zrZ9?@iYS2A=*sSaX{DdAF(8olHEPc1NYhoA>x)to8W2n159}y4_(7X)6WFL4wyc7I z4Dks3&(-vJIz>x_vXy$kHmzmc9!5734@^FciNybVQ)6S-6V-M#w**)I6D|sv4+#^M zy$h-Q(}#J>ORS5P_cT~$3J2iEkTKU7wVoPmC8Vhy@&y4R{x9)s^YE!>*Kj!CL!iA- zGPR!A-BwG!St}G2D_T_DNZg|!qA$Ds94Z24aRs;IkYQp6>i@=1# z^%0w8F-^kiNYocZ8;F*KuxnIW_~Wu^g7H+7WDaNH8%>MV>QCx~127!5H46Hz_}A;4 zy%kKt5EzoGLL~Nm#y?(|g9)cTKAr1|W_~&bCO?Rm6-gWZde1BwPQUJca+G3=csg>< zy?SMAGiYW_rvby|NdKrJ{#3M<_YM=Tq0}|lWKz15EEVKj!P>az;YSIP zjbh){sW|G!&FpGjr8k^Gboed|U3~w}FXSe+orX#G?HaR&m7o@X^~ETf>(^C)#G$bv z5GDStBxY%O%5r5LIV=gm7_k!{&wpk9%9sT2+4@c+^)pipM+sy8`-57AV*XJ4S8@2~ z{;>|~e{)Ibdq(hnavx)=z2md8>96RPsD~?|O-Zt8W=h5=GT{5bAp8zvYz5B^ECeD$ zagw(TE3$f{Tj3)^x#&nuO8%`x)06f0-P=NrXB!7xy#7-uD{T3|j`fwxOAG%(+HURs zQI7u^$=1Yp2mA?rCi_4`91stIRvl)p#i-&HT)-qpME?E0HN-N87aXXZ&}krpq_l{* zC4dwGV6S;^%nVn8qnPwtN*=J@8Kmk<%n4rm00&1Sa{x5}uEV60B-AUSp~4~~IiyFmMWa?FqOK%4lz2XV-wSD$ISU6oB9a1wRv!76XwzLJ zxiU|4Nm|VNkj2aPm&K50^2>kjPx^*wl1>Gihs}XU6+DSjlU0)K2)M;(uS9B^JwsV9 z)Ysn`4DQ=;<;!N(AuBXmg^mG%BdlvMfI|=eHsyZBfG(hutdj+-WIBdPhyp*G#vT4! z#OZ{p7H)Cm#RLO1y*$*acI^SXX!=>fwQzKIQI*!3Yj14Y#|V=-5^&&BwI;!~uw7$*Cf!vN66kL-k}$M) zXAW&EOMK~};q{Dzg?3U5O%8igGFo^(Vv2?UA}$}vn8E&i37-`Zv4dj@wmYO>p!Pq& zYlzV#akODv_2vpr${5_~aQh#(@S;cY!k=9_@6giHf&vTC6F1LOGc-?N5_X^U+^)R$ zhR+^v%vKMW@6s1Aowy78^5))0?|Jt9Ehs73L;!WA*)Ce?I0WHB3Wq_K8(FyY?+ZCRYfZkKogIGt9y;0&ue>4J6$_T(ZCQxt-@&H z!6W#ag_j5?Wr;xWpjmDhTV+(F^1aV=uh+MO5o$$9_jSTw#5%Uaj}aPaw}E&ACuM^uFJ zaI~^piWvMr3?sZ{Orze4MQXr%hza=i|ZL12jdq2t)C1Y{+Fb{Eoy1V zsI6G4DSkMFv0b^#=3!dM>TQ(87qK@n&C#JpMgdqxA*(HOWrOXXqADnxw%UqNY?J$3 z1JDANsxA>zA&zjH_$y~y=NszR2%T>U2#|rWtS8LSa_0#b-Lj^A0x~mc{lcy<>Xk^p zwNEr256 z932zI&!ocR{Wor5$q!$gB7x7GtJfWeD2MlZwNZeBFc*BG^7rM|Q5_n#PF>l@$MX%e zEU(Sm!&7&|uDDr=qaMQW947=21oS@eFS`KfihU)^K!@ZdC`jy>_OX~72~di3JUWfo zVi8yvs5!X1ali+iS2L&CrTMu2w;9q;GX8{zZrc0eu+J7RKRu>zkJUoPNL_^n>0j<+ z^`2vy+HzgW&2mZJGy?#eI%8mMs+k&JYtfIVakSq(sr7S=sQN-?xguOw3hvvdb{$#9jz@I%C?oHtf z8f@G`Dt=v;;^Y#)4noa*^qrOh1w$)#2N3`uy)Xq;2(oUNu*MNUa&b=NJFFu>fc>ue zpqc@0ngALwsZtkC4`Q+XUkQ)1D=1?j z=s~`6Yk;{Zb->Mwh0&o)!SLe=SF8JRag6^WL$(cm3lYcct$OcCMaPETBym%lQ+KAF zzUI_%TcH30v)b|aMg`Ap+@NIOzrS;im3%%Ve+%2X}*sFlCd>fRK>N_Xh*2 zdpoXErW|7)0+$D@MZuBS#i%?>#ayMTlg7Ld{ar6il$9vNWx58H zdDS+eEf2;qEONr8BlafUKxp=s32S{h+URdJ=i2jZ|N9Y#0-}q+3-FIILO`S>iNtk0 zJyyCK*OU;@&avMYO>GuX-Qg4~x-0c*^A9KaWVFS8Wo24gQtjosF{O^Y-|8Br3a|0F zGZ7>a4)@@yzjKD6&&`ym9o?xOqxZGn=ml;=y91;d)+2nssPNS$oZRsS!z56!`gtna z`~~?rYOU=_8Fn=1aI0=%3E*XUC$)vL%JEB91tBiI{{HN~u{~P_Q}eBB5;v$sCe~+H zx_;<(7Nc>Ep)|D_XU5oFQUD02!Qe>f9V*&P6fDQT*S%~N@< zPM0h?;MdbgNW_l=0RvgLn5@p`Hnru62TY$diNCndCtjR8PLYDXi2&Dc_&+kx5{UxN zG%gHX13#Qm!@`k_>Qw2-7lT~89L&{6YOkc2HfS-B|5Yiq{JOOEq6e<3QG)N?qV!kUg5Lov}n9Jr=NVCt(QBf27@8O$I zqprgz?t*}=%}A#Oy+(6IMaNb*`^D3&cQG-Pm&)Oi<#3`CqiOJds>=NujN_kQ8a5?U zI3%Oq3^$F~P1)qSwO6o>|I#5k7TY_N{1F{_n~2Vw>QmiLs>-LyKo8e-oy`H{Kh^S~ zgBRpsxlyPczsccFKW4?Qg`nQ_;BjT-_oQ^LEYF0vPe(O-kl*&F-xrNLFA32dh9!wI zES1NQXHLh2?#JcKKDBJS>>W8@eqRivB>M2-e9SjRTm}p2O~DV5 za9bog29PS|>HYH?cD1+t*mI$_lv$f*QprngDDbDa?F(e$pLu`x3YlI*jS5vi)l@c$ zbH=ITHK7m#>1z9_iMP3z1fCgZzkF45N1!nZHwTU2Mxs)XRWvK}IV&6v6n#3h!QGrV zcj?(xvXa)btMD@AbC2o?QHxI7{7yV{=1ADGDl8E=;wY);k&6>{bHBhY+lIXyn&8G2x1){sA05|3t@gdPin%7*Q_!d`v0< zPQDrV7<2}Bupnze@v1<{{v6Rhsz>S2c=eDX9;8zhzbht35WjY6 zK-#+0unQi-L+K166Mmwj)=v@ef>4%&Ftb@nu1OE@=nKiN-9tVqaoAq$kqmK9Ue zCOl0tJ}W4=xupI>YasHZ%h}7%EG8_3S6J(3KQF7>6dU{GMtNPTJ15fri|4x!Tnz{J zwGUrHuLc?G)QOzN$F8?|cl2h-eVKS57q3lnr4aMD2K5sBH>&IUB9lm=f`=Z^?xca$ zM3~AO;>UCh@*Z!aYhvj2F{8PtCgkDc0`Pf=&-q7<7 z1CLw|s>7{&v2A2`7Se?lD3enfJ?3yk|K>MHpAAvJE!hxaI@JO5A@l^ssJl6)B}x62-RY4Ag@HzMo%uFHYP?YVaOVa}J^972xH?q* z{XvR7{i5sY8Z-5PFIOxsjf`ghSWz$WaNT=7Q?aUl#vF$UV!c=$X;g;z$_Ku?7~hiV zFFf*B4&K0iR}$=tNc3Q&TjEK2y!EeviF|(YH`x>eE`~g#(YStB6M$d5G5~zsARs^iX z=n0_))sMrKGMF@mmwIlH>zs}kO^^=EDueqBjdHL|d<;1(b=ESoB>Cjdx^7@boxy#Z@Wa@Y9v z`@9!c=?vdtdPLZSU8T`wVrg&l?RBUd(En8tNfCwAsu(LREv+xh;-{hPz}^=-##(={ zD?OCa#5OrUwW(BSbX0h0ROfrjymxIv!|7_04ntS2+1q3JVMi#>v~Mn64yml5Q&B#JO#NA~iB~hTi^LmJ4`{Kg zuz7iR)yp+I9Q{tnauQ;yP#*R#%h@qY$`N_|?!Gn$@WoH4pCU_Xc!d&^l4y_+ zj=C||^x4~I_vX2w1i~Rzb?Ui9ys*idM26;|-`zPz%qj^BzNM<4_j{$C0&Ixn7EG6P zj2Cv*zpC5$+UB&}-dRK?CM{O~zIX~kFX7^GA+Sj$x50g|NDD#T&bVCDM5tXbT)|jJ zetWtt>!FHtr^O@h0zlYbD4qKmE->@z)hh|sZxgB(O7Ee9nnmee-9kUF&QkmIxr5`O zITKC2ApZEpi2Y+}4EClemnL2u(V|!B_XVg$hfE%UhB(Pz)wRMZWp})?M-BA1NlK2s zZv2T}+_!gQCkZZtQQ+WGNeA`tcG`r@6g!E)qnW;{BNLmWsOo<{i7dR~(`{}2{<^90 zcqzbF%##@s@T4uEv@R!>+aMP^POkd!sM**cPHK$**6JD*d50* zhH|K*u!?8iyoS`dpcM?=7BTeMib@xMd-&44uM%O2Fuhgw4B#!fO^!I^oa>~%(E6Sk zD^{NV=do+7DeJPW-Ps~!R><#o|Abg0ZdUJNn>KYlDaWI?e|y^LBTtwWxAc$fd-77x zCn?kQl*#grs6DQ{QOIi%p>-$>^c@YQ0|s<=kBiWy(I1LWjtc0m!?dj6^s~t5iG4|S z%MktDmTwchy0~*m;{BNyQd7wzD#8`1aw%Ur9c`E0*eRwK{0K+o^qjb79HS^UlpmQX zyJ~LjKQFs?*earr5p*~@HkMf=phH9NqmzBBus%ipM3}oPFEwMMWZk^VN@q~|5X*G)lOhjb;m5KQdgb}P~QgNHNF~X(+ zt=I*FwTG`Hf(wN#I9A1}%X0s+nsLtAx=Eu8bUPteEKYdVHy+Aw%`Vz~Om7S0iVVBD zjY!0h!`j69D7Sbz{WFnwH4rHj>Y|r=UauY8tBQZ$JwVBZteA{Wb&Gn9F;olp+ls_ZoX+@ti zdFB3Z2ibPwN=90hE?vCZCUlk;^CMpTbzM{TXS>k$t$kfpPVydw*Y%|De=uJ~HKD33 zL^^ni7IdcQ?{}9pV460oC^NnTZij38h!)h>>5@w0Id$7v8Qoh&3qwL?whM2rQ4&*`Beebi6C4zgTF&srC^? zoHy~+sDa{|+hQxn>kd!(s`=0+7?DfPdkxu%=?9vlhde6?R^jee`bTfQ^ge2^GpQ(o zwI#&QqeA&|8LBIA0t%lQDQKGCpK;USIHJUo>8fb-^f&}hToP8JKS~sG!<3jb2x(#F zGn|hjjZj_JpZt-gPj7MQS7&RVP(8MNwxHb!<@hWZ|2#7t^z5>lqCr~1ulclt8`8>lx6Rt~hSe{$IPV^@A;+~X?yG-5)ErFo z5P}qtlPn9en%hf!_otdgl^my z8W@>~#F+`LqU`mAg}!GjE>m(TlrMLieM;xIj*c+AxURJYOP|3?ZPW}I^G~;Kk9Jy zY>pjc$3;9|jl}1~qPvGa8*Zu1Q*BxASW) z$A_Hh&pvzWwY9X2mCMX?5g-=4zcT=mpN5nNhf7kwKGONP7^Pl`a`ZHk!QsAB;umbW&~^`75u@m%n_<3u}*XKwT(Z3WKUsrq!^c zwR^@>zbq;}=ZuuM<3FH|xCs3oA3Pn{HR$-+KTISN-744jvWtNUFGfjQ+8JOGnijPIb-rK+z*FM`P+dP4Ts z4Jk(^_{HMd+;>~HzOr?7RAFA;W-y2yi;yftDZy0x+cO74pBk?z1_dgf9$I}$EbB0| zfjz$-xaIvUGEEJVf$nIYqTqK#Rpz+*!{g$ha_} zW*qYs!D{~|d2!9Z&@5xIFiLroow*p9e;;i1+S!)T5a~YGwbd>M+DZ279%i#k?Y5qM z5r=}!f8B&vRHu;#crk!TKSwNoP1=_fclkfrPF?En z4vJ{luRJaJcD?}HLsq9mz+{83-RGDzBJC#GEIhmEeaCNFUTx^FuNSJF*xtUwInnM! z{@~Vp7IQp0BG3R+j<)krCXt@6F@YspZd&)7YmKBbXgXM4Y=;DESIV=bK>;PZc`jO$ z0-5h{tC^dr66JIEF~wbxh7WCq&=t7-e9wD{PDP5R3T+EQ81A{hzFpHRl&J%4M`avQ z)c?|`|F8Z8(x!=(b6qbJ9DzTOTgrtj&BRV*PvBx?B_%c>T+d$X%0!JA`tII-%rV+l zR%Itm7ZRf1LBVG*Z{vTLPQM~f6>N-qWK3^AY~VUf)*u2T)qF^WbbIyG5z+l;Z|U*g zL8z0s)`ys>HrKy#t@0Ba^c#Z*NA=q*v&X|nuXQjS`%!kbQ*?^`a!2Xq{W(V1Ssk#f zDjxF|Ez0e07s?bHD(2O{(y`j`=}y4%i7{@2Y>5ETlrErr#hCu>z#-9xMO!E>PGx+H z7}_G~iRcjuwP8vjUo9h^>=X=dILL^f3ly+5Lfqb#e6^CgnEs4kyD9Q|b7i2s zH=1CLfXiV-h9|l{BK2{U7wuVsiS3@v+5At(1YV3JhD0l^ZBoY$CjVmw6Yf>fpke@ZUj=)d?E%<;@5;s!WDH-L#piGH;T5jk0_bX~RNim2H%%zD_`$jlSZyaW}(2eG6(%)8Ravt)Fr-I+7^V8}r24aFjqm)&F z2r^-6)z1FvpD!D}VX|TQfNSVuhfB|14JbU~eg5TcxEPK5hKQL>a}%BlG~@n4>v$Lh0j&(~|T1Reu^Alw>a-AD(5A?PZ)A|p!e z#Gak6%s(#IoRTJdokCM3WzcWe+WN?WCMFdgis>_Bm)w*c%9|AOSM3y90}vqmw*GV) z{#hv1A#9+3AStV)wQ>4|tgQ;LHUam~7ioq|QmQOqDa4Edax~0+^j;I_*n1%F{2AZd zdvPBb!;NTS!6V9XGl}Etse(RK5H!}#PdTWj=YQt01$3}VafFfuIAlcxTudY{(ob(= zQr_dC@kV*<^h-0le&R`FWYo^pwFg=I>Muss*C9O&oxa%8{BA&Spk9e$k3StHjLP@JoekM7We1zfRA-cW|YF=T6oitwBwQg0t{BBO@RV9 zg)^SqDgFqwl^lF#Sea3AcPX_ps3@Z0K4^7SSfTOmUc6h}7pbLZX2w$1iO{z@pnQ>O zd61IEPcf}1i!}+i$f?P*ZJ52XFYMQGf5z4LPEi7xgs5h=iXWz8A>)hoj%#bfHFp>p zYhf49Z8E-mej@k$_kI69&s`ffeVJJzYNu_SIWn=tX#B(r;lT~Ox|ya6ENTrVS)aDM zrC`Gq8Vnq#@8_3s;7MKh@kT;D^-bGZTL(A#vs`~_hbfrq<8uZ`iYX(Ze977X6h9-0 ztj@eOB&s{@ffpD`+hag^l$KRPxypIc&>f5nq?yx^d~I+u{-g` zQ<|)_#8jH(igY`ZiAW^xKJGMTMr`JGT(FJOZr>iH#Ni?uMS)ng)=}oM;L4iT*XvZc zCyXV&M>gEX2MMhaL14tr^^aSfLv|olN=k)|)yr*TmWlsd;u8ypO(wv}E)9RJmMx7V z>o5>zONif+67#i`$9h|bRCU?T%stMujTPl2OSg$&Nd~R7A0QztEdl8zHb@*TLN^aG zYU6<;Lx9F$j-tuv5ZMx$75jd9U@h)^0=42|UU|~-Dntg)iFi=SD4Mbyza-W!q_l6R^+Nl))qV_xW?@)(zf|I*5ye42EGdIF01Rw2X`c zWVlsdPk8h@HCy}&9>k~02EJj%5r|bt#LwNrt{&dJFJiw-8uOLj82U8f(AWz%&5AIU zQZHanXbd?l97q;WAx@Y_63Z8v0%C>6BA2VgBDu`MtJ31A^q zPRZ>OpBV?gGQ`HOrm8$WGvS-4cyx`*%LjG+PN`WmP(sMlWeCEUc=j!KX#o1jafr zGO%$-W<4yb$B}-E;2IpG&ppRah4Jm>K(1yMTj9FYtW^ls#=7oedi!k@do!EP^%+ZX z{VTwZ5E3{0rJz*KX$iC*0xzX7g{rnb;I6Uh{gpDzo0Lv?De%kF{Gol|Gg4@O;R30& z&^iK5xJDIJe4rUA)>y(ho&b}6&%$n&X7h!Y%Wnaz6UL5%l2)Qmq!YKLt;FD9+x<*2=6{puoMC!h1#?eG}11| z-2C}$R%0QRbHj+*#A!%W41ku8rb@2jxOw36j`zU4ZkVDi#Lc^&Ycoxro8>>B=-^ZK zQZA_X z`J)+4Li>re7GnXMx52(lqKbUyf2R`Gouu-=UGOAW(8v+B{;ofFWEQ}bVzN1yrMz+Dh8jkp`sG+n4TKF^$ z9zA+1yz`Uot_{_y_Y4mKfI|0zH5u3_zJ;)2pfoXY`nyI+Q(<|w7hxi=QB|NZq*Cx{ zB91_%%tsBX$E0(e3P%`({^#w! zjh#$4N86p`rCAXbppJ*Zr|4|843VG7n)tEV|QU`|k_Y`Ur+QPlB4 zeOY0{tuwaiwi5<^Pmf`iV~-`PJ7hJ564JQ3FdFI!4eZFCsU+7U@;b?SU9eKPR;&uX zRsTpY>ZD!!T@Haq?=?T1kwu{h+&6IpxjBf37AO$XW0Pk~u`RKopChj0*0t%2c+^Fu zBu)c$2k{f4165(J=z)IL9;BctgZFP6k&(`JN zOSf<$7_Xc9Y({WRzr|hwOyYS>c*~aQZ2uk=;UIG2gKj9TVq!$6e2cqJ2jbkL%-q zWOzu`Ymy@O>XobJW++tUO@S!!AjP3veNBPti)+E;c7|cxv--S{Q%`U3I~#Jh{rK@w zwv3S^77#s?-0N^dAWJ)ZnX^uK=56fIaM9|;{I8bBhPN+$B)(4s$@~piy$buEI~h8F zziyPuu>%O2wDIbWzo|KQkaU2s5mkl(gzTvtmAI_0^%ac~`q=Qp!g=2LnLlk@w^2s# zuoBRP$aHI_jlSlHo9^Ek_%Hh=IEda|u0n#6T!!=8-r`mU@dH8o zZOnI|rA1DzhhrYM^ofX^Nh`$NW9BBZf;p>6D=`lmX6=LP(FMq8Jmr?8kCK! zlibri6nqj=E()$e)W_VM>8*K<x;u`#~u2r9^lPUc?GzDK8JI+pjeoDHNvxL9TnZ;EY(DW&l|{kI2;V#9`*9jnw^7 zl&^nX@V(&&WyEntLgw&5khV^T78t1_(A{36q(_>-!XJ0wx2s7usKo0o8lp15Yf1L- z6lmH?@hH;3YREFZ8(Nq%3FLs+3ly9>7X1+R2|DDz`XwA!)0@gN(9>Mn8gB6Ou*@|J|ua?9J+bwI7|X$y|zikuMXmrL7n{ zD#0y4yC9LxP;A6nmG4UX2CkTe|4MjsM~de%6(TawHL6Nnq*&o!O$q%+fhW9j48N@& zobm?$j@47AvC1e&X27U~-Mhy_n%bm@NgTN?|DoYvAmC>Da|uF$5O6yC^!}qHRvaT1;=^)#hEC+gRA*?UmMP=O7>eGg z3p&I77P2~focBcRO`F;q)NBCUgtW4Fy;9=m;u7jiZM`N7wJp*c4+vEueGwws4V<;C z_3j-T?HC9#fGY#POgMQqq6A7<9wy7TA(>If8qYI4S-z=}jFA5dGCqLdkc9Ni+PfTZ z=$BR}?xYg`<@wj$40!4hUMb5%Fyzyn;tGopJ~>>Y(`Hq-{EKQCqIi*Nf~L-}99@{Ugf zJG*ep>Ve<}F(Dod!O< z+o?FGU^4=ugEG=CUm+&cApU{!Lw$tbhoXRF{i+}E$gJ{v41+WS1HtLg!ttSldf=#O zeOOasZy^S4*Dk0U7;xg>>bVxwX47VZY&*k5(+dxaI&c{@bn0vd4&#T8P?(oBWe%E{ z$jN5%?_f|HlPsR!$P&Cmb5DMjOQD%bMOou7u$qJ=z5xdP+Q}_bNM+bXR_K&cEv*<)}ShCSdJ6QSVo zlAWN0Nx}odNa8uW{<|27uPn*UX#)vA9`gA}*(|wja@r~w-GAF=T8xpjPOuP=s2rdw zvlX3cWMLR?C^6wQuCWHymGnz7;cUgOm%@JTT2d5e!os9$I;p2EL#+8`hb|WN-qU`> z`jSS9RhTDre=7gw$zzK%{wuo?bR8!nUTByjc7(kB!KxG98Q7CMxOy}1xN5DkcVY!DWilI^ZF!}aJug2foJXvo4bFlIF{ZJLviG_v+?NH=e5 zYo8>%gA1toZhB#;UZ0<3q%<0zBPh`JRpm7$x)4C>*MQ;NlW8bpW=f|Pe#cA<4%O1 zH{$SB#Xuew4Q`gh^yOEXIL9umOkW`I*6?EAhOHUHseS`5sru!*ABRju{ex6TB$c!J zE5iUns|vO*M%4*uuGqGhVY4r!t6Yax@khT))-J|HM_*@r&NrE<{yAOcqjNJ~?1#Lq zY8w6?7!v)Vm0}6T%~eZ$`!qt>9j2=7Mf26XPb zHhj>(KWTHE>0X&kyht2vlbqK?pQ?MB?PSN5QstRleye1?PqC7nRkQt){_#f4i5asm zAN@`>WhRS6S&H>32!p%)WL!308=ySxPeCO!wps9kZ`JQAX$Y~qL`1lYM*Tj;x`UH4 zfu(F5Z**mY4V@d!j|K};2?JR?T1u8D!YXSby48?z9Sg(3hh-0@j??;+jLp8~=<&FR zokp>35U!{F4FBQ|d=a>UBdc?Hx&WPeFYk{^vb&gghHxd~$=KvmqGgQ~BaTKGZIAw) z^d-P`Ea9*)36m||Tlr_RW{3i76>rccl#l*!eUD$0^xd54c<0Zvr2gJ5qcPFrEx#}B zHKJgS11|qx^a$CSR4G67?A3!5^~$<1#<=Cl9XNOZW+UnJ1(#pmn}oJdtlnYs_+ptnpZ-_)`lD(1n zl{{asC|7enxtip~!F(;aYT@*{^0h(~(r8rQno@y`!vX!gY)F} z`z25$?`l8I3RzCow?Q=i+>$$SVUk{TkK}@FZajBBe($Ew~Y^_>r;eif=?e0 zFtbIb_s?iU%H)2ZUZ-6Trr9y0c>DHk*45Z7hZHZ#g4!p4lW}mbh;mZ$lv$o}f{u(4 zJk2uf7Wik%`rl5xCYX8PreNJ8)TQ25WW4>vyL8pvdKR@1u90>j^nMxi%`TsWNCm0m z_Y*6+MkE;*UtY}R*k3-Kx!z}9laFYB*+q4nXnSMc)=ZTUU(bseNH#B7c9 z=7jC18Rt!-1ho}Xevb6msH9~MQu5hO@L%{5mdLWQrcU5~x@Xv@G9bEG>hH^~fzAAw z0nOPYmG5R0GaC5vT$(P^|2Ux0qh(GBeD$9PKjGM1Tfi?0Hj6tCBscXC z3CiI?OYji&jJi%jcH-s@pKF`1-2i=t7{%95~}73+++3M%12FOld(xlbTBUB*{zjL6|%i$ zE?yWwO-x8~wOspPx0Txv)Fg9r{gLyl*H3=fvymn&B?4VGiZ4h=&)nHlbNY~#kpCN} z0g7Hu&>fZvJo1=;ktx%ffv=;_0`u+~-mA=fn?|b=xiGqfSN$!NQ^e~)UaRE?`%inw zmK?0JdrEKAiiAvZC7-LMj2X8j`ZVyu z6k$n(tL3?Kck#Y=RWczLU4Q&#BZV@VJz(4pQGe*<&yP#?(*MoGzIZLWG2;xiW)O#G z8p&`X-7DEPClikWxazYilrj|p!BJ;Y?PmK zjhs$D!gCPtWT`+;=D?^%rF-7cR@;YkSyQtT62bKzIaFzOWX)yfsNq;^5u9NR7>swkuqVz^BzmAwB~H(whWMa=NZgu=pfM$&(auz; zkAD4RB{k)%H(Y^{9dJGX-9i+OW3v%-E+l?~?P18#0Ns^_y z>fbsv(ar5<{*3wd3)@MLgpNi5M&BngH^++nFvf;*W2rCgEp1a{_AweexM^RWlD&Ts zBOP1JfJhj;iT$lED{B584He6W!HmfT$J;OZMqoC4S!SW_!8cJ2GS_xFll+HdJ)9Tg zjI7db5#O-3^n^4(B8+Ma&5=Y~L)2$O;h9P5i-&fmXMXO4H}DNfXmK2u;|j-^oPd_e za_D4Ct$jjDxUUoqX#lagdyz)X?=Sg!{6ez9v}@aZ-Q{m~KS2+|6Y-`R`4hQOi?QFR zXiLbiK}&4P+^?p~u97tZ;W!!y*-v3W=Cdv6 zO9BW#lK)fbVpRHRTRNq1AP)#5ocM&kgZvrk6F!$0vOgE^-KPGETi>|YXve2Fy&HJY zD&x~9sg&!3QuoKDoZThykz3Sl{l`07KWA+jH*$gX)CF~FG8`*OK2r>fMl-8Gmc~0i zw7mEJtMox`bsK0oP6Di&?v{+nF@L7yQO+$9;^_*!&_I7N z-*eNkc|v(voIB(0);9EaVC;6Ixu(h&9v}k)3=k=5ub197?S0rG(~_tNbu>_2N@ zpo;${!E@;T9M(J^hgl#L744CYZ+K8fRnJ*$XI!$#RNL~jNti%xlR8%rhVa9^2n`3x zv8^wfk-@tP9N(_Rkt{c}J3}+tQI9`U>&pDFs{S{U<&<7ysWZN{X-in|%hkMIKLk1v zFY{=V|3^lEg&f51S~K#$O|H9n_!89Gc+$TLRqN~kT& z+M9n;tgL?$FSj68B=M(Kbf!R+ z9t!JoFjIEIF^eP1*VvbaW0pSAXf({#nO!Knz+Hniktp;kWFwVCT^c6Q#f|kVhaq>2 z3pZEQ%8Gwdn^?=_Wz1J^zDiwC2wpg(WS-q6OM}<-<|ed}ljL267B@hTy?U7b2=9T# zf+7~PE0Q?XAfouhdQ60#%u_J#Byob{e_!Z2t5~*{9$Vr5UIT~BE$e}O#`Matd`9io z-0Vtu{CN?BqsZM|5?f+HOsKaT+`oQyu$=ZzR|_@vz|;N6*~S{5O!(%y{uT#e)Yg@@ zK-n3Wy?<7?l;@j%8R}IhM`gY`nGA?n+{(b*4F#VmQriz13opnfMS^R=txxnQg~R zeR9@|0gBEc<`z)O7K?w#FdZEYO}5jo~!Nw^9A$C~?S zB{kY%ay%B4B&v?1zHqSl=CyYW3%@%NiZ>>G`yi3QI2JQUjHECuBHVExn)(Rd>jm3J zis((46tN2H#lTGI;ng((OC@{l{cJT)7nX3%Wdmb(DuBz=${Pj0k)WAD)Nwv z(7AT8ZZmRI-)RxeAo*-T3>4!I96wHA*+V zmL*A};q3e`7nf)N$A0p2uNj_N74_FtY29Os_520Z50uS50Ym`-r@BBW#r=v9KqxDpwqu6+$eS(V)N8h%%gNq|wHZxrJO?Cv8w4h#%U&axi)9_`4S<#^OW_2_o?Nk8=A zWUq=sa3Y*b>qmitKRHyO_0RwM^oE8&^X&C%{}lc;}pl#O0g$~^uPsy30G<+J_VZ0_(V0N{)l0@BLRE(AK;Up z1Re5H$K6QoSF|N0X-|l)mwRtDlBokH{m4T}?nX??o+jH!&Z#9vhAv#rS+9z@0zyJn zF-{ejokMwRC)+VLZs{8_-R8S(O`jEw>cjAtvtsuZ6{DB;Ghca?m^bO+Q_V&pRBi}L zrQL=MucN7>r6B=ghrUdD6ji;o9kk+}`WoGS-SAd4BQ{q39rj6^FZYIZX<{2n7LY*g z920C+k+Qs)Te;gI=AfgB18W*|C5N)*_irU-DQ?Gm&YLz;zGDf}15-6&BVndX%2P}i z^Pi=y{t?OUZ?$|4mzmv)(6}fE0)EiC|9_~YKRiXG6@piYz}C`tYa4ShA$rxc=;U+52Ro1RF8Ye$3%aSxDQi z{_(%Rvq$tK^_mvqG0BIgQ?AJ}$-ByXeb(u_R^?ZO*qVg|ZxS*JX~T$7Qt++O>JC@? zr(LrZX2bWqilZ7!2F}eOSuQ;G$W%L{`TQE7`JsF@IyTF^bf{ zECVwpHDWB-KDd>RbPGT*P68jg0o(OH0kQUy<`4JxSZ+8e>}M2*2iJg>vHaEgbkT(q zpJi!q20?eH5uh3ESslXv&`bkmKG)#v8wfAh-x_a~L;)M; zr5!Vl&q}yMEAXb~uOwNyrmTFl&Q-Hi7mStBeD}5i{B09UOVLd?T(?}eVsAS7_qd2h z>u-wH_n^Zo-R^`gPNwuk96g)1sP3p`@oY$N*7fqnCI@=)##N)6)K70q(*qB-H@=*% zbdp322spQ7Q8O4i;{ai8t?U(=4<`4yYG`xWL`{k=wy(G`z&E+x02|hcLpGvZ% zeg3}fCKNrf`Q$|-EG{X#A_uSBom%}6Hpa^y&7(XQWrh6D7i+Neq0zz66;JzsC(1rT zBDu-Tz3}t-9v<-60#Frl#96yCknOwP!%KUZkr@G$+(QML(itj~juR1p$(^Y$g{4GG z_S&r7j)Us+r4qSP9Yq#nP5ag2ksSjFb3cAUt$!&7jlXNz7p8pD@cAOZ5p<&AU5u?> zEQP**C)uQ%&t9r-909ukW1lNE?`K~=n$Q~Jekf-?E?{+VS}D~T=i)z_82O0^@GEb) zChMG)lvVk|y9IRO7hYCB2AmHhil7hCFYNq>Du_@B5cptc+^<#hfvZ>H#Ktc5g^-cN zscy?5KPw%-ODH>z_{plfKx3`QBlrb@*8dna{cwO(VM<#U-_KuJ7Pw~ene)|k-H_&x z_(TCuw>=NvX9ws}<^^pf*+T5*SDB2T%i3~B-#=EVHS^a~6pwwAulcj|()nX4QEzT6NEo`MLH25ZVPhhjU@u|M@5P&T{ zU{tau%xVmC1zd*JjI|4)bWu`!+@5INU#dSftqQ_Wmq$Od51>w)8T4cN;|(8g|8uFW zL~}OXY=2@ao0*kc(E6?K;b0)jF9`oqR`9OrrJIo_7{2E`6!eDzrD-nukm3dn0iB7} z6t&oano)bgZq11-x9D$)COyV9YBfvv_2982dVgRn5?4JF2*9#$3GGWcX*@6ru!WKn zB3(#PG*BT)b8Zr1Z~N7({mSg+eTOYdnd^(H;>Tp=r1loKtmXyra(xi}5$#(yP&p9V z2k~ppJx-)WCBE~`4?&Wf1_lxa>rln?3GAm6*cuFJ3dA_x=Obgrm#OyS@A|iuWWAWQ z_mbkebLT&YxBq#*d*^W>_idgFP2dF{X$3mHr6J)cJ_Z#U9*woa0(4CGY#+${C%%*O zRR4cn4)MRPwjX_Ib*@eR!OnAMeEsHBcH8ItcHb4F)1vpLaafLTrn$bL)BB@a;vXJn z=5Q)vwSiuqSmgsb3&*0|vzkqt>Yh<_cO_*a9L}f-80KLx zVaSL4mLFQB?*CFM753!Zx1%e?my8X(>%x=M^rd>D)cMNAErm;evefP`W4eH5q8C?f z1^kqm;U*&d=+G0rMhP@=-z>NxxTF#81fV{_E5J+xnk>qrAHRR!1olpdk{dSB6T4TB zMTenO_-W@l|M+QG7eE}mzh zJuvbFoS&Tc@vO3E7M^H{PrIq(%d_XwTB(vHSv>o3a*1J;1yg+i=Py<^3=P!moZ808 z6w%?GmV9-)t{}^F31IQ);eTH7j@VOscKy4ACGGU!AK_MOqs`wAda{*8w6O1h;u!?v|OOlclU1;4qUDiB4 z5Wl+M+xJLHPne`=%If{J6KPRt9zrg!te(O7^k}mHTqSHF$#36slhFn?wi63uxnr?M zC@_YQZGR7*3h+Ddvv44CC)!Zt1`RBQtUCuNbe{KW>~1NHXo^y~xK{l;ArSy`LrzJY z$@Bcazie@3u7Nf=Ut>xhe>t(8fl}-o_W6zUm+LQbb6JoHJ}f^Z_ijhIMoJ;rwCa%b5m-2(67$VmZbv#Gq9bNY_uj8H)Dtnrf~iUZ{BP?% zc}p9tcyf!p;$Y&yr#)A#s~Uj28-s6Lt}e_`eV>3AL)i%(;5L*j3R%O12#<#e-M!6> z-*#onz*xf%8ugbYn>TLWy!qb?2q6`)u8?U!ZyF+WCt~B^`dDTh21@;N2}T)WT2ZpM z<1@2=pZ4vJc7gAv-gMtVNfN^fb~g-*uq@pS;`KVK=V11WLneg5pODP6vn4a={p-DS zWak_0r>mR=yT*(ys4!eWzG^!2cX62nKMn^myEy}jf{AJ^uf4Qmzh z<5%qKYYrayxYvq5;GlwvyjM6L84sF?_9Ma5HoS$MZEf;D=^BACirD*`M9E(ffB9?mV5#Pmd_X6Ng|Pvi(vNO<8G9HLs3}+yEnp#-!(g*s-PJ+f;@rz2)@Hdv3>_An{E=~JB}*Mk=Yq3Tqnz_sNsjE8q;@{ zFC9!$6Q1V! z?HnCz;iYhK-4M+pT^~*+I)+kj+a2to!SZ4v$=74o63fIU3d&SM%*XA6)HKDMSVbV4vRd{uPtBO|jFUOr-Gv%!4sEZ_)o=g zh?NW6IUh)Yg>v%b4}F$5KoDV@ay-|)sY-W0RaAfmI(fvO?>>PW5F^KWh9@;?L9}DG zl9V~^kLf#$sjd%&c16uU3yKxiO?9Z-u-1u;=fBW^@{__Z2DKWbHq^~CR(SU>S)hp3=;T+tyxprOOFiiUJ zovLSMXycauAlFf%-S0uM)?)ib5@*@k)|Qf;z5nHV(@uQ`thVb+L+xH1At^nW{C~(f z_Eu-+YkH!W8O?e+O&_Xt!34~5Wzfh{0? zFwvJQhvaBGB<%sI7!t(YPuh>2_0F!O6QmI4xO?%RhY$ooBB+U0#%LYI{*Omem!1%H z>d88%Y0uhKT2gPTzl`Sh&ftDaY-*Uk!R zW@`7L2C14!QbcK9OR2+jf$!k5MhzjS_QA!4mz?E6e7ts3S*%~zqH&Dr*D(ECVwOTE zFm(8aKRyJ!j!iCGKmAnRVR$^QA62MWozE3zmy1VBJafSBy+`J;!0+NEql|dnruk zh2HM3X`Ry}pFqNF%Y7EYWB?&LQgEPfDu1PnELxO_tb8ph)zJKitE%C)L*hvo8J{~w z6(pVi@|*^9JQR)etd|m)T3v>P`2T$cN1Y1k(QT^3cZ2_@>w$X?P?861c&V0Q{CjMi zx8&7jW%*$TY(d5D^x#@ZQiH9!!z)B2R?Uc%llp)Qs{C`68ZqIz#`7WgdAsOmA36uc!%Ajfcn^ZVImpKCF zW>rEAb7)0N?(5iGVY&E*N7>nq)#Il>CMXfB8NN`u=(%RK8 zm%Dqe^2x6_siFy5RfM_>8Ky*8P)^COk5Y{bW%n)d`$8p*cryOL^Ba_tv(r>;U@=$u zQ=+$Rlakxp@2EC8+ZONi(JCF{4hh-1>644N+A(e{lz~FPUTXO8|A23-?o;O+=~Qdb z7o5POhPhqwYpId1saLYdO91`RhmFR{q!|CuzP~+tXT)uh?UZ7Zrwyd0m_u(DMr6(? zlp#RHsnW=hRk)P2mf}QFw3cJB7_|94lTn@|L5?nTr%3RnN976U!er?xmL3e8o+ZZT z$ehRU3kAYDJfNG)!VM`+0o$eO0}DCA>Tl!2mM)l@_aVL-5tYnWKJ%_VQ?W@}xDaKw z^tJiLgterx$!_iI|M0~9o>w2-EQed$mARk6glvxr7ES;7Ns01cw$bqiK%-sZhXiAx*Mz= z0*jeM#SRGsdo1^xw{I%~nOx@Q&fN(JjlmSu08>)k>OZ<%kW;@#!-s;}P2_YWY^m&Q#d!xFNL^Y>|b5244ynGJFtwS4c#}Hx%TPjsOKSC z6gXt!@`OU*gXzQ8eAx~|uBvr6(rKLzea<@ zc*T7>;oZA;qzRF|Ybb))GSQhC6|6aZMh_-w2u4>kD0)mu#oo4#hTfojzHitGmPzg0 z`jIPWrOO0()+6jbxV#1VCK(xPcq2vaccfDm5Yx)Go{A?J7e^qTh&v`Q{F+DRA z@;X-4OyfX^+BXuloSChLEHR{nyM>r+trQ%t?_3bbd4&z7FKbZfj_48e`3L= zBD--=)ytW8cSdRYo1_QvSGNvlK8tlAp)pRBztP9kCPS9v$FZ34H0MpdbO zt0(V$LlLyjotHix05q`*t?weM6np4t!-g&Lx3FwWQr(Kj4wF@)pCOtDXv_%NkT+7d zo=eUBcfwo(yLIt|8SQ&X2j!71>-U@MO^qWcbH>ZfYZ;Hy4cZq1`NwsGQlDgp?5JSgu)ztt@+cZKE^W?;g#SBjNl#-xF?BLJvV&T>i9@n`(aDV zppxZpB^4Oi1hVGtRD<1h?rq89TON(;dK6Egp0njUmQuG zlpL6kq?fI`etYSY(j#_~p9$p%MG>0Pd!4cQ&4YSBJFwTZmtgq5-_B4O)Id$ma-{J3 zMoQ*hE3gve^ZqFl{oEa_QBk#d2GyzPNaUprc5+YeZjB%hAEgw>`C?|;B~|$d27i2q zJ$Pya5r2t;lfrMWa0O0OqX1(T0|k#3V>1!e+1z{h=cuuKS5V!GW=d4lG89|N(@mNr z`*nJAip-<<5mGTi+>J^sWFUc-?f%-HtFeKml&0>3t_G^a_JsQ&qubGJ$CX2psVUqwab{mgQs-^z<8 zB2?%ED#;&4FpW+~OX7GG+;r#Rz&Wpo&bJMN&DWv6?1$1yXl1d4 z>V0^HZdEVlpMrTJ9q*z!O3#*WcU>1`NXw*4^Dhi>Y^D!?ypjR)9o>5dDf?RdP`*}P z=5X8IYZBR^mlO{h#;rU*EQ;)xUwr$85?j;JFt%E%g++tm#wW8#RKdoES}j9<{RtF8tVdnx7n~QT<+iY1={d z9q}v7?aN7ZDX%k`X6~4d%Z2|<9Vmew0dq_ne0HH-Z?jWU;QxJ3Uc!If2P&MuYr20b zva0{pO_88{tdC{occ#I(iR{;q61Ha~Vwr@FkQO^H&opel--+rvCAEf^;%d${H3^t1 z89@K%+- zZ;#)~lFT;B>(?PK;_!B2Nm6j?6f<0k4JI5^PdxqiN!wc3B87o30_Ug?!#6P-}Zdu-}eolPM_G;HFo*QI7z z-nFc^Q<8H(Y%!zYcJ6{qz`(T_v;jhE$qYs6>d1a<)tW7@RXz!H3iQqEtc{OoYMjPSYXWHf(QDL)je-%&eP zVJptECxXwnRJ&lEb8IQG+H%uFP(zJE8EaO=uemGo zK>ur0QX&aNIyC3Vkn?mh8;*Kg0_B*l>J;n08Lfx}*d&#-M>)J*O7HuoG(>EtZ?-^1|q<{aJclBBk zpQj@5^vTcY<|a;NT;9E~S!f+Q_Attjm9;dx>5|lDiTQyt#$2;MSupQvke%<_-+Rao zsC)jSyTMI)K5@7QcZyEN9gUltR4`a6d=n6hX$OI*!UY4U7RE+^bY*i&DgM;{>d?UO zK(ys?ZFi)TTN9@vQOU(CTwn`XtrQk}j@^@~2%ng6^!D4b*DABAMXozGQl=lk`+ukZ z+;^wl>^rT4QAA*Ml7d+dMz>F7&3|R+XuUCAs#%6OFjjh@-@>^#BgTq2cSs)YM7>-i z$#T5f{Forc;bUWC}0nH4~b$LM=@42njLh#g6(Fui-o<-b>lL)1z<3bzM~Qg^Xw{azI9C^1@*ujE3%=Yfzs z7w{*xZCE=Xl)kClq(|$TzCgU3aBcz_d%vf-d*$-rz= z=jH7UOMA?p2Y_UdF$8Xb_rTx8H<0AHw8Y>GN+ZLY?TR0}#b_BNo(@2*UQ36e4H_#a z@F9q)i0p0&9tP7srm;D)*2AF?b?=)|NMfgv%srX1ZTo1O+OMgfFiGTWw{{EvB6pfz z$g-!ou=kD=l7r=%L%F?5aL{i&Q!c}*;%cok9vS0{c+IbZKdcyTXe=kfr}kmcb?~0J z)pqvg&sr)=X@aB+S6k^<>swhI=eT|tSPUFoB-$3eN7>lSt-G7s9^5m^a5H3-H~7i5 zYJ$Fv1(^f7R*x>77C6UUZOo9Gbu)tW-9}q#Q%6GbSgu zQ&05$xjBFSEU(9th#R9{%%p4Vb>kb(VCaK#vln`v4~%Qy9d|C_cixq7Q&(_uxT^l_ zz}-adr!sd5g$lJi)LVMI;v?VkPp`wwyimq3eAiv+?#3!M3~|wyf7}u$Vc9$Q%70c3 zQ(pRY>||-h?wDl#OH?p!|B8jd&O2|_Y#is>vwXb@{~i;eeO=o&He>r|sKKLZZjI!rXEcvEbRMNYZo z(DkHl@$6Qs_*?WGwsCsw2nnP``{2p2HeP+ckvDO9@Cric9eh3MHq?^)%P$W%CRJe| z8~?{0#}N?k=-k6wVgsw8p2MO7Q^E8sLCjm-6q@97R44`;Z?@JWv^u)R&Q;>flABeO zURG+>bfoz!gY`n^uGQ|Il0s&}(e8yqY9Y67Rvs3-W6(>ec-`nw(SWABeS5Tegq*j_ zYx?QcOEhD2vhFrr)reQ}BTp)vnR@zk1r<7Y`MbKBe6FXDere&-;$2td7a_3=N936o zTQK8z4HVBLwr^+k{-kdUtN?aEI<(NNhGx*ea99i`LIP73Y;7G!p17x6xPgfP<8=`yMVviQil^^K$ zFUU$)W{s{fx2UgWpliFdwapQCqBdCw7X2~mbg9~k^*|+PZI_p@5!%u+Z*hPo`IJQL zV(L4ViBk&qO#QJ*)kJbN-une?Bv^R&xKFRt%p}<^0ojOc5+tNPFf)G~QR8bAQddpI z;60M0-71ynwo4vc0}j%IDIb-o>TRSpWx*6^(}7E!A?9g^1N+i?k6X4LS06u6KyzD> z4CRRw4Z~^yw>~yW&$7Dqqw;1Zg)46MCblA(YCp(Vfz|r-mUb~EG9*C9L*fkD#~MaV z;~x60J85>h!`9h3_q7cKB6=oDtVpu@cYm&7;Z3;6xFxs!Tdtb27EL6dF)@4=^esU=%)Jep`ZUfP+4y zJbhlr02h*uv$GWLqcOvF74KXef~e(_u;DJVja}Lk9xH0xM<#ny&NfI4B}y&Q5@}iQ zQx&}wesI4#X5FYr0cVk7T2z@d{mdn7M2Sj0V{dQ&@x4gh;@~7pDr*$i%u4L}8ioR`pl(&sJbzmO45uy$zpb|#p@Z|ooG zGq8wkD!oYEWgZ^u5M`H}YPp$Co=r21>BA~lw3QZ8R} z)+lwWagExspqCK`OLHaZxVZYck%m*dMMlJudal7@-Y-f}T|w#g_u+HDhP-)HBDXu= zjrB{Eb~$Ldk}zE~#d+9BU5Nfd1hv2kEt5bs$~_qd+)|GGZHoMnUN9* zN-zomnLr$*O{^7-+1E*Qw##U%IH~tBtf{RT|G|TxQ21zgpoTizY;K(XJa=sF5rvk- z2SZqg(-68=2iC3Y4(YDvKYeb){XlYyoLA__Ml4bF6PIu}aE@f7xnbL7K>j}Roc=no z?%b-LwsnbGQ{K9VXg1JXY}V!=32_Dt9Uk=bTYRiDvm6fUNeSorT>Ky=cy^%cO0kX; zVrWoHK%~~5d|a*YK=y6MA~UmE?)W16rmqdTn(++^Ig7jHckPObeZ3{KJxtFqv_f!` zV^;K886J|jIW1<4?`@joGMNJ1f2ez?_-m}{=u@A(Sk)crG9NP&B zEts6a#Rpxx29|YwPFge^+*$))gSC%Ka$&OF1`WDW`~m$jqu)L?NgJ5C|N43ZJwzEg zq3hON(`z)}Oq#09SIZd@bzdifTuAuHy}idc)@2wceazf7Aa|Ijesz7jP)<`%NRA<` zwfpzWq;!MIakVz3Y0py!iyp^|na<~RVvmZIO5T_s#l-N#s){pNqkBb-J!O+>?3l7= zlyhziFI%%oZM>CL?CG^r&@W`uV|JMr9os*<89bR&1uoyM+T-^+&D_9(wDoQAWCeh8 zg|wk}VktlT!qZsPRS#N%H3GK<0FHom~#$7 zd{D9M@`x!1Ap$heCzKpKVpZcsd^KJn@UVu-I%-wJx-*3rG(is-lv0P zk6xUNrU_Z$^XJdLXNsn7ujNghP|!94T<wYG2z3?M4X*^#o(Io|d`C>rUyUZ%!$6p+%}SNp*JWxIkgv zbRs7!@Pdc;QKi^Ih?vRXeL(KpsiHA6M%jTYvPUYwBD`tc(8S5NFUMzVE!((Rk(2yt z7GJ-*v839n>)f;;#7ru&be=waCAK|yn$AF}U^b?s+`j-snLvB*H93}{ zIsJ^J@J$T-QtMy#9HaueL3ZZ5dOPdoMO0C`gdnhYu-?vMW|{fShm0GM!K+3+4b#nF zMOhA`Kt>1Ok_$QEAiwLMJ&dB559q$VSbDfs-gPbPy*MOR_bYFk3lZ(&s>65Mv zj0;@#khpnjr8XBezJh5jk7Xkbzp<;dD~Y6jv~~n*0oOt-_m)z`#+%V{BJl+qBS6*Y zvE{n%tO+TFB9G41t11vKg@Wa^gO9JrEAQ}j;l1g>BHzw&ZlGYKiE9jln0*+Ufxi{u zdH1~6dkzLGF~t{VhHUDC{0BnT$y~>U1ctW;MO^w6L+}$oomyh4%civ_9G>QfoAhbb4I$ml|7$NbR>TaF1q_} zpGPRyuWK(wT^~KD@@?HSJn2EV1uI%|O8xx)mP6Di0o1%yvsagYGznO{)(9)n`4_R* zwDZK3y0O7k!_OPJ4VpXr%^TTI6hNfDNHfdaxAg(p5S?}yw#Q| zcPfBH>m+J(Vps(RHO<*o+xO6UHiJ{Q|4qZ}WdBVlJ(eb`TJe3~)apf1 zBv=t)wQJ#2#BFg4qT(P+ddT~+W-0OfP}C>gd0AhC=81h$ZfwHK0lv(wJ*X>qp>Dv} zftDY8a={FayNQ-LkE&y7?KIS95_L~~y1S@1KlZZYJek=NwQ@s?#4*X_&;kTFL4k2`ueNPcXS7>QMOn&=KKuz)mYxE-_}9 zbDD}`1CMbi1iQW1VN{U~`tRRP50@lGt{BqM{(<}CJ-%tQeNAm`Hwb=FUcMI#ShBLu zFSFNYqg;mo7Q;+kzN?!6$k^3|DRV!hn~fbFo)hAt)GT`U*J})nR>H08F<-pSb@H)H zAz4rS8EzbYzC0yXn(|;}LhDYWDh!<(Z>qn?N=itO-W; zDy*Xz-wl;7)Z%5)qkH1;Jw~?&jUga=PNjg%CG0+Y0eT_a?x+LSr-0tFs4qVMCCleJ z#cw(Fbh(HqRrz8L^5}?}3?~)Q4YGv<_qSumhyVCa&#;9OYm+Kr?{R?k_IjKJMzW3V z%3dbe-!oo_v%A*BN6^P|s{k-?(q z;xu|kba(zjjxQk(5<%k=25HJgNLKDO3?*Dy1L zZ`}&JloJqKWwz27>*sskVn=aj(0MF5KUnQ2lhyO!uguOSw13EM&#%3gqs^uH8Wudj z)hUsH!$f`EE7G@+5Lvp_7<2x)rXbbpbvxf~w|~FY&jx!}a#&+11M9G90*?RAS3!sW z$i$Z(JtcxgG7Z6W&wZ&;c<9HLDzsp^^yCDaF7MAUjTm^`kgLKdreCIhEgiF99NdSV9;SKweP@;rj&p*e!ProVe4qTWe!FDX zw{m&|A`IpBu+YV6CEAkNibG6M{GQ+OSpWP=&A$T?{9(y5%;x>PD5qA@wqR;`GLHg4E09#=J<;je^pqEt_ zV{qIN2e02^fnO*Y_197Xk}(}GF<8kJ3`D_&c!3h8F_oQGFZJq+BCGnBZD|u7t8+0? zBbOxmYK(gbkH-&LH&egA$BNHOmA9vF3ZVg?m-w@w`#uct(NJSjB$|r>kFFX5!Xyf0 zqAJAgNpM#rJ_Nr{#JbI?ubOO>F~w4ay}oZ1-y8+cQIphsyg*Bp0;4&7qbC z^%+QdK(q@|78xl@b5Y*Z&_aP4AqxG*U7pthpz;&Yqd=ZQ@@!E0864N>!&yQCBJnSf zSKzQN_f9Ph3)rG+6(agQfit<`%MU;HvDZ)POBNOuTx0xl#QOJL!RP?`KkT=Nh&Dm> zDi_8Xif%(pIJ%*SN(sL&qBteI_-4w+c3*niEhu*{?b*S0$e`y*twD$cYwEPOtCZUP zJ%1vhRXh6M`7%^o=B;@th;*@uzf-GrqblWP+=c;_J3jVerioA}IK3GWAw4W#tK&B$ z#K6_H;LAwqGE#_H5ihE^)^!xxG={tnz3Lb@K}vzr?60g0Er_+`7d2e$Xbxuoy~V-a$-Y^-;u=FpzJ|oVEiVpU$bV!+;RT! zvtD3jfa)L{QsN-P;2om=>DgKAzQwDik4J1iJ?IVTF1|gY+{9l!7-z!t*z^3c|7|83 zO3`Vj8R!vMFwQ9l=YGYvP0w>W(4m!t%pxp_k&HnJha08VXaA5 zQz3`H!yz}3*lXS6Rjru^fmqU}49$2Ec6BFIpc-EDz|ZtGrD$&Z=+$z@(C7s!9rJf1 zhXGT>07tk@}L~(fcr}XSw?}|!uwLjP?gb3v~vjk%VG^YV%|a zi7+M-A3O+q1QO`9C@gPw8LWfo6|j-M#PnH7NOV7Ij}|4ZAlR+`;-vl}CAk>3Xi06A}>y6Em^X-+s;Vu<#~c{L?NOIrrEx&|CmZ zALQHeO?gAobXSbAX{^^*@R^0ROik#fC9mF!aCno6)f8VIa4r%x?`rqlR{Q$qvgA(d z*Z$OT>LQgeAq|%-=+tGhF6gMddU=*}hX35zFb*uCf#{hYn~5Eq|G@mHkS9K2V6dZV zm!uL(M6U25J?W7=@Jq?D3_f$kwn*gwpwKw92m5Edh}9RGMm&u~(nAasl9C&bZ^Jwp z0;W>HdV%<4gs2luOv?Y<1RE$tQzth0gh4`G^=Hz5UyeVX<7Qh^z2r9lV+tG$|YZidR7TB5x&Nh2JcqEG zWD=7U3R0LUL+gdH{f}TFhErS4kJ!0iTBQ}9fcI`LWE?93;W5@4X)+Jvh)jY{i2`48A`v;0!yEnHzo+B!nOjUOqe?Z}lnFrzOVv4d^ zi!%N_?bH)NI>mFQ=h@WTR+s)=wMWE9Q^Zqxrlrz0&-VgL>!Ydv3f?jQAKzgTllUXV z2$UMOe`leVPnU=dg{XG+$4)^|HMv8^8D;4q>cGW)F&E zya42eNDu|`3Z;Jc!L<0g-xiD%)e%P`itv>}|A>5wa>T4k*f027C*Rg>&8l|ITK#GK zZd_ddSI686V&Gx88X4){eFv31(boyG3(AK2r6o@ukTOxY{MI%u%=gWe%(xE|%s#**zGs3!|lvh^T z%Y2&bzqbAuOU0!-cdLZ6ax@pZrytDC7|WWCW)HSgwjNAsT!X>@-~PMcvuDF-NDeZ2 zuLwWu$dUW6t7_(UMe7C6-1vLw;8ZvI2fn4AH3YICd*;-Cq_xlWoykTNSJ_~kO@wwR zJHq$G!_ChviD8R7zH-_M%lo`Wn?NtL2STRmDD{iW*c_q#Pr66>3| zE-1tkOCOLI%@K7CPJ`^qo-BtvDNWvRsVSAeKLNVX;^tKY?fjCrJ$(g41C-}e+kakE zB!FiOvLw+I-FyCb?yM0r7y03(GhS;??tqT|tER%@EIQh@dut2r*s<~;`!YPm{k#COm4Sh9Th8w^+X=;}See9xDf%!S z`YGo7dj8-Ct)+N@i`@GnX?Z&|(BlJJJNjJ<|B3Z4ID2yw1XaTsbWWri?roBcEbQkS zaXT(ERJq@^!h2U1)kh^Jo5A(Oz9i5a(DH9umd6l+_yg`8y%QG~+7R*LJMLZ{(fJ2v z!aqMS^D5@4+qltoIJ~;`N55V5z+V2T014T&;R`}I>Z3~EU64E)`F2JgtaQ%9;s zsVvA<-H0O^^DL!2!SJ606|5HC!9QvEC0jf@g{m?)Mo=hS4>n9RX|nX9fcDqpvMUU$ zpL5Ch*=sIkQ4@Nz(nA;Lr|Zwi^9yo36`|JA7Oa$n$>E#vt+7?ZJO|qz>LFbrlm%{! zIn)usSVhe&QgLf~G(ejaSuvax28^OSOOULGqIKDKM5-$29_x#uRvv0Hv5 z>>u-%Y{{_L{Tv*XTmh&|C4>lM762)tL{+uxCrhI*b$7}PMOH;t$)&aDovvdi(zu_y znf}S=WfZ@T-g3s>w%C4y~y#Ij7HD;Ou@yu zyr@u?OXD@|->%Ehn4iRpjUbEFIZ!*Fz7f&AG_^FMAtiR?@rN2ZFLZ#Lg!X=J5<8us z&oVzO*vcE8`5gB+jE7-XI4u8y*NYvsogaR;p|2`OCl?5-_woaMBELxCrU73 zwpR#=@BQza6SgPdM8wW{yM{fkxF6%WIi;FU=eqx>vyS9^+=2TZQ;l11?qFXhd%r%o z?lY=hjCowGM`O>S3%T<4T@q8QWf(lbynwMY z6z~%5UJDq#C_;SNo@SW{w17naU=;<e|vMN!5CM>GEafnq4kpG@T&1z+`g~bIH)L(8c`&@uOxxWe!eV7K^2MS?20Yt8{iC zzZoq;N^$XVQdde1E(I=1F$02`fj9A?BM74dMj`Bq~bNv-TAVS5$lZKn5&-1 z7v=2c3*i}_T0kMhJf;#g|H$Eyrod#Za^;~zTU|>89?VLcuBB{?vD<#<+@?q-ozq}H zF#$1$-)r!m!NI(c7{9EQy5oGxvr(ru^KPs0bjZy56ly>rhA(h9DlChqHec6BNnqp^ zr5)&b*EFDQF&~%hhrwL?-ki$oYZq+1{~t}~0gh$gzwyfqiOlT1$;vD{**kY4A)`bk ztL&A8$R?4!XG>9L*(D@t2yx4(Y}xMr_t*3OkE7##p7(evT=#WdzwbED&-q6lIprh% zWC(^f2B>6{=?rgNOpP|rh6J0Nkn*0g>GKDITG#{81Bij8ZRu_SYT z7PG=*QNz59BF8KS2n8E974I6OI<>Xn)dL0|1g7N#xeW;WkfXZue1y-B*JMzI#V%h+ zwX}Hs04Crt*+Q=9R~G7@KgeE^b#8dXi|XL z2%eUiQBPXYoWfo=b6i_Q7r#zXOhvJm7CrV)gAFLa!-Nfp3CMQHG4yv)mi(T5vSAA! zQUq9>L+;_j10qaFqf`&IgLec)+A{4rC$rO2#pFw;`E*pnER%`@jTOlG^f^NN7_$fV zB*$NkCgp4_RO*nMAI|q$ns$%e-AgjspLU1}txhJS*uDd$-Sgr>=a1~{?8^{-JpnDh z$Gsrqw9U7}50XOS#X^s~yau|mw4N4tUg6Y)ZXAMmqAbP8Fi_PYHwH}1&7cATeF~^l zx0UQ6sS`r3PfIC5MI8o%VUR?-+tPaoEa%9&#Fo*2cmRjV!1wP*gFHb77ul9?L<%8y z`DDM(hy%1#g)4!jOMLOE*Sgmu%9_Cdi5-?QJs8HsgA49w*&_fQsGqbgd>q)g-OuEO zF8P@SIO<~*WO5pND9`bVVK|!C=XgLD%t6x?S#NJB*s1`~0>qj$a|C1rL4uX`+4F!p`IQZZ)yo-T&wFEbNPDjO!)*G`#+b-l zI>Am-`ns@h4VJeaQV&fYVEwz@lapCe<6i7PRN{cDRM@)m|F1~*To9lP1gQ0BU$||eV&DE8$ksNj8=!5{SyV!5d!dZRL z^uVMQB#Bh?SZksxI7Ha~QAa|L997)IlTp32G9csE!Jslg?er!fG~Ib)CP9p?9v03l3h9|HUG2@F zXrqRdilVVnfO}BP6^#mMZu)Xb4w+06K#nS;8{2bOrrI zD73+B4Z4SzISQw(eJ~rxf|V7`jia6@Wu~$oeEqs?p6@`0*9odWnrp}u0B8fKc1n-1 zg0oFi@CT@*0cyXQl33LO)0@_F)dtWRc1DmL1iKg{x{y+08kr(TVo^*Z5@K|)F~{rt zSlwzrt}76xBIaBF=iHM6VU0K0|Jd(_RwRewXzL{UJit)j+rWR)Y5!%Em(fZlFFld; zM+Mr4Ye)9Kt{8jeu_&kXP{`_Vjg-b-jvrG$KnPrj?`Ud}U^aX&-+%W!Lk_CJtzY`D zUIa0th(6|D;tlVK_bL@So@m-CYkDYtITnZzC=(Fr@V7H_dzz*TkMdeI%&l~ogj{_h zU?AUldSR8jHl{^Pk7ts^uafo#EHA+>CHNT9QLT~A;9py2CXzaooIjs1rFyk+>m`mf zOrpx@xO}|F$hmCyhUNkNC8kX8bDXU_wbmR6K09%?GULw z4mVmcm;J_pyD$d<8Ea?<(hUNW21+Vm($LwzE%f&Pc1DH~t2nEY(!=sx9<&!BfxP20 z2i$(}4^24IVIRrOs^%!3P=)<{yRfi8>D`y%xO*xslqpnK?0 zEW|v77pye}uyDJR_V(Q1VZ`%b$cl!@rJ)4$K`Y;76ecROIa@{*_V!N0L1i*O7{~%t z1AOE|uhKf}QGJ3&$v~e!Ib%DlC2w>0k;>7q2){{}XPRDpzzcKcI4X7VM4g(NU_ zMR0+cD^=s}zz;aquX5|v!b?NTB+C@r`kQah(u->ozwNSdk?dgzO`cZ+ogG=vva1bA z=GF7{*ELOP1_tgIf%^m@OhG{p2M3rAAaWf6R+1-R3k?bZ$MyMPkdc5^+wmc1P0=3A zoHqv(LL$-EIgByddoy8znjLnP)9s3xMr=Zjwns$(kH%!%AeFV>3|147+H<}VQNI|9 zDwdd?+`@H!JjM6?RR`UIzV}OrX;Nhn*dqc&(vMvlpdM8Svn6fEDZK1 zj&OsVt#f07?I}pUlglM6$utxnj}o_%yn^{BXrhh~5U}9K_H{WSZqS88@{@JrpQ|2k zzbN61@Mra&ZV?J{^!V?bA097fo>|UuV8t0A-}$+7JDF^0y*ud8LQQ)Cj8eN^-R|!$ zUVl*YVlZH@!rWr_l1_@C9+3t&(1Gr8tKWk|3?{uZ&pyFX04E8`9fHpd#y=>04h~`1 zp@3`I6EX#Vi5_EPOJM}nLIj5KaO}HC(Xj>lp>+D7mbyBekq9dd^ckKoKR{MFc&YQ% zKsNSX=j=VpK%PJDTNMwAn2)V&CT-~NpLjNd#sllShq^E`6Ezpv$iF!;7GWH;k6A+F zM;Xsasx7}}tR0)-XTlG@f0A^J+e$RcZirC0i3dB|Nwu7c9*eb6xqHv>6c~meswky% zu(mx7!#kTCkjS=QduU zR8kPf&hC}U7o7#i?Ez$czW_QU_~TlXtug0vt{m~Ul(xUK+VkDzsl5rGw>m5CoCj2` zaHQWEmd!sNTGYu>lUZ#2|PSCLW9sFj(6Rwyyrf;X-Y?4}B#lmce*^Uy?pv2P8MLWt(1>6k(8PhIY5; zr58yRriW#gOE{Mlx<#^(-4Lja?V9p~nm-;+17nI~G>76L0u{C{;<#hQ&6kay7wOA) z_ZAa?X-r-QW`E@xjm2>(*t3g6 zT>8I!{^OL~4WYSnjLm%bwa5+z^Ncjx@QVeV)?S{XAcMGX;w>8{Ojyfv&SE(5q!z2K z_ij)ZoZQu%da2K(5!DYg7ZH&ob>IG=*I@-~NN7)Oct|KPCy`+hHVE+%rEzDmpbK&) z9|6?v`Q3MfDC{ieH|Zg_Vo0WD7v6tR@aOG|C05XP{>M%kycyeBuY3Gq6og`cDS!BE zvj*OKa+u{+UXB9oajPjJ5SgNn$E!ldYyIM*W8S(CoPTs$1gR(Kvh`jxes;uDo|W)G zpb)%4D9Un>x|}?a^RiL)dYDyK_c<_vQC-^56DVMartgFS1{yj({;RTuPl05@7hdsz z{sI?W%H|k~NGa$l(oNtx1@?=T>9^ir>+qW|S={R+?r@boya1*gq*DS4FZ}9obd1L} zNe0;chyQ}YoVh9b5}rdnHTe8`J@^f;F|c=hjuls)4Je3wSh3b9Ynm2-n}mIN#|V6% zFflVJJsr0!aMIM`(1(|t|28p)smZ-j+{_g)g@X!-Wl7b)$qr5QZ$MnU&D6zPwq#)C zMuS$Qql1+d+4ocQIt{3bU=c7#r9quP+H%3t82`l7@sR&PNCAiK zawnk3m$Sxqb;ggfO|ccl&CSk+0XiWwPiD+`Rp^aQTHi&`xE#A?w+fnih&`i%8WH|Z zSQo)ziW#%#Tk9g+QSTTkO~$iwoag&;m9LE(m-It>h9kU|GutrA6PAfF;V*W+x#F%eW#+*o@?A*et@ z5)=!dytAvddL-TPn-_dGF{HVb)~=qsF?8`Pu{wnyC*kj0aA&;fl>9xuivct(QSi*- zq{rdHfX?N{t6-yV*b13v;}a*j00V`CAn>156{M#eT+pDUIs>-Fak0wdAmz3E$XP6V zRLjY4#?+2mi5JY0P*Or*FZ}`e&^#Np!%rNtgVdtUYJ^Nu|UcieIQe95caR#i6XbIm=pHu}3BKW;~dYITXGj<|Ero_fg0BMq@etlsAEW-@@5LQ_4 zaabB5TM^6v;Le;bqE6dV96vpK6NCuptU`%2n*`l73|T^&gLjaG3GOzygWJ**sq)N5 zEWl>VwV|zA3C6rfa}Tfq5y8Z%dPq9G=+rLTJ8bw>Bv_3b3IaM%qAFwu9rKm%RQsI4 zI=`%qp?PZL$St8s0{~7L-2o`jb#scFP$m@=A3;wuOnO8z7*;&6G7+uVY0z1QkuKT9QT4D( zIsQV6izP#skxk?vvxLT_OEb~W55t?=5oW6}YmS#D6(9~1C!d!0EbH;$Mc^Shwm*tQ z8ae&%?eBuI1G3~jh4+3uC&maT{@&Mfx!Xbf;#)Okn0a(9xi@F>xGDHd%(~HL2)ebn zIRXEs(J2_nF&;2qn7^)sv|+G*Cp&TD_hI)p4y)ndJUxgzq}Z7u9K@Prx&{s$By)HS z89ktKeBpx%3eaSN(K$$S%?z$L?@?Siwo*rQ{fHZmT|uNu)|X340~dvL~>& z2J$A62FqP@KCP?+%BiQd1g#_i!UTuAYl^ub;Q^^gd|%9gt*OVkkP$Nhp7nOfq$9O9 zBn=xSm$q;!iDDmJZq{HTYPAkklh+U;y7BvSIH*0|Whv4k-4mMAqSX~FPDZER@M3U> z1gYg-XgwFFfh+XUYYPv#_5vmCa2R8$B6@Z~D|r1zFoBcQoP2e2vGeMS?@_Q|PuR5k zXQ+l_vw$f~JQMHv?e=rx?vVwDPg~H1q9PEmBTAjKi=yeEW`#RhYU{aj!*N4Tjz0-s z4>1c z5J`Hn9TyZ4W>EL$9Gi=MA=FEtk$JX85yl{FG67N@zO9)wL4Yp~`mA z;EM5{F7AS(X(^mG2tzlVugAU4GO|E8C7`>2_8ev~LMi%(aZr*LywvN77R%3IU@@Uy z8fU#%W$JW=cz-zz3KPe%Mt|iikN`Sciiy;17=$0iU2=Vc-?*st@xIrfW_HHA&bc^6K1F+es2|d08Rl4FnGP7k`~mL zFyr|r&jnansmVjJukr>v>QWU0?o-u*ji<;pOg{7~?hRP8vM_>(A*Wz@4Nxtwuvs>r?W zV~ujdB|E{a)5g?^inj3lLhf|{@mxcL|2Y`U!}@=Yx9L4pwNAibfaEBp(EY{>TKP=a zRH(68hgj;;>9z=thbQw713PHDFMEU~5Ntd7K*6U~+jP)$4+MH2$kdk5^0rIep$N3D z=%T#4F9YSoG2P1|rr&yBG&8=vDF9wq*iK)3I=!~fzSlB1Ds|^&O~qIL%~crWs73^l z_J7gqWCw~JU_oGd`2W5acs3>wjs@Pr1Mqfy=Kc|2EPz4MfsaOpdAehz+o<989fnT4 zhX%tzP+cbX6nUwLwjE~{_JHCQE#pXlx?zb~T2Fqk7~9B`4NPXGuc)!`jkPL=)ePt= zmNWZ<$PrFq8UEUP-|psq7KMiav_oxn%TCVV#e;_%?RsD^-T})RMD>K*6S!9(%tBGt zFysWec^g!fgJWYg3|)NT$w3cJna~<6_`gmvZT9%MFFO!P9sk&Le{OYI<$WbUFW~2U zO=|WRn+SF*zUbrX6S}mjebw1V%0?nR8_Tq+a4nq9Ix0E>E%Ti|GoYmPDl)1PRJn_AszTnWJ?Zfmj_RDPHvbrvRKE6oykLc+2YbwSBR#W#m z*Mhn_-}Vx7go=dsjNh#?Bf;{4*9@WCu5~s$qFA&BB0Zp-7?zsTPFfhO5YPbpY=f5z z4UvWu8@@f5rzGmy%dxSsY#EwH^)%)@Xs{E4e>*K5IgUVNKA(#I-;TSd>l#$L56w| zOns>AJFL;n4A`QsFx`t2tGGW04A$h=F3PhZ<1Z|EL_fLuKRl!S;ocqZRuYFTwG@y~ zZ?1}Req;j#UASgT2@K4?U3+C5w=S2}2UXH`RA#$7X-j8x`-q4t`XV64?9O|?2;YP5 zp6^B3%xp?Bxha*bzQ3oh#doTmn!0}Q@*=0{Ms+M{-c&Uu79Rvszohyo{H{hZ@lR4z z+scd-@hPePZ>WqY@Wm%Fto5K&V;InYf5zP}z)lNct6F5O$Q|R7!JFWf4uhwMMH~BB1 zG5I>VR#;n|$>D_Y3JB~mSF#rb0{R3*5NHE+7!t5YVxd@PzcQ~7wwycrw$r5I21E>k z-T?$uu*+L(6X&HCEEjJVcPP?KYqQYLHgw5NANizZmpgCw)8tQTUi^BQZM?0S`7=wT zt#^7adW0fgr5T@oYD~w-{~C1dAQ3+wK-!8-qd-#&5eieO=Kvcj&DU9;?ie}`2A*3m zUZnw%E^O`{0M7zl`r)dD<*6=c$sISp!i;!1pEj5RuH}EJpIYb7b4s@CdV%0>3KS1* z2rN`Y)&f3S{hTVr+D#^}cfVd?G33i2U5EbS@ z#8TT+ZuERGK>wnN<-^jt)XZQQSaFCm0>6I=M4e)UT*%@@#R$xdL3Cz( z{{~%rTP>5%_)@QW%X65{0T|&bOY3D<*VN8^&8Vj<(WhR0uc2(DxA8v8Y}oUx_v@b< zNCpab;VPFb+v3sC_uiU0yF*>_?w??OB|g01q=SL@56S4+6|Ni>z%nu{9F!BESx%Gj z5DwAKDiHza84C9H>|bE?cLWb74F90c(FK?S68u0=8x+29%@F0T;I3o@a8qGl0{V0> zmL0e!5&am^2p}fy7>HYs_^1HzcWn9I&4~x@HR13I1Xvw}$*G^Duroiy`m&6k5Ke*Z zZ;RGvblDAz8iE)J-PN(;H5xE#fJ1hvSG?8%o}sVRXZf&M+wz}Dzwp5;0)(kO6$4%39<)c3<}nzm+Bu|aMNtN{-Ozk%XV|^KZ_%PYyehFa71MX zg$wWNFr3)zcd5k|RDa%hh30B#3WVMb9+^a78co|X!d$q+v^=y8f^g%7k#Q7ZVAuf4 z*H_wEP0boW4FRzaj^p%`Hc&jlj{!NvxY1okmX$+65DI{j@|Ga`Lb^0z3?Q+P%ZN-g z(163~in5C)VPC?OyyK@b)_*A3q{P5N5-cB{UOJ@MqDS!t&jA51GcD~fQ0tk zH=u!e)(<``zPb!bnQrto!{D_VF+c=-1((3NxV3?>t zrS$rCU2UyYX;&`s$%^e&@L32*31_Md_AAbJxH8KudZ&FO1_uq(K|Zr+QaE|x*FRQ1 zECvoDdk!okj^Smjr&v?;SJcmvaK3z^v%8(2M8K|FUmPFZ(UQa1zy-(7In4kYh{zTMZ|IW|L0*a#AA;Za+p(_!u56 z8F}z7cX4q+n;|ZLJYBG~ybzPV!a#sxa*U5mj@8)7*|Ad3s{zIm4^^*J>9YbYi~_SB ztnU4?62E_@ygBAD3?YydVCRqUr^jkU$R`E}D{mDnYF@fp*4sjcA3g~Xk|^&jG|n3j zhXSZ|kQdpPI|ti!(EY|@Nk6BbUz2P9kNNFoy409n)nsZvumMLX)*I| zA2!dbZ`BK3`>Pu$EQm7Mfv*Z$0~nfvnU@73EOY0)t7P({r3)iN^V&m;7H|DfQ@0{w zsqUMy=C!K&(a;@@m-a<87I#Ap+bp8#pBBr ziCe#4L4H$M*V6oGdM${7HC1AzoRya1!u%bItK`}NEI6!qKORV7VaJ$t;C!Q))3 z^#^l-z|ge#K2mH;J&FH))_7cBCdw-njzjH-_7y!bh6Yg>TBw~n zm*qu0VRpV`TKoPnZ^m|WdEFbYGe~Usi8a!+E0d?gzf$_SM`W*gzX(;{>fZ>k>~hFE z=*%Ol5i;O!u|;y2QX>}l=C>fe21*?`c|dBMiyGk&VA~>-Nx;a*`)2H1p+<~I2~8g( zQb}M~SAF|S?GO7$8ias0h_iXg#?F32gN3kjxH4Vjze zefiw+drui_t#j_i;~vk0O9hz_Dm;2uH{J1MuBA9$NmuL#F(hpUTj^fYP0KJG3MPN zp~f?4%oqz1`*{?CQ2?q?Zjx|pAC$bTFm3Mu(SkRJdWh{}8C$@r_yv$efH&oh@kPE| zb*{3%>+6(KScR7h_#K#04g?&vPB4;y2LVnNgEwcPNc&{_^h?!9D`hhEwBdfkTrQXr zVi4U7lBMHef;)e!+RoZM`ijEgmR;`}kADA{#@GKFC}=npCU)$F^h@hj|?d*}%dvhFY4y-WRA z%EaLM^Q zq4{=4rF*_kAw3TL%(f~@0(O)dQo@j*0SWGV9=$U4Zqu1&mc*g=2Dmp7H< zLPLBT$gz0tQ!}F@{t`sqo~kvJW9#z=x)O3~qSU5k$T$4~LI8P~J&wh6Ddi2b>@R2O zS+sy~!%XC3g2cnJ$UF0P6H!l8!UVmoP2zeDAUAkSDo;p0?b_`JN<@!1qI*h01$H(9 znoy?-y>F!;fz9c`8vb;USF!L$;AF}xzq%yHlNQe^Z0x5Y`3Dmwv8?qinxaqB4ieDA z0>&AZo27<7o2N}wPNokEWdpYc`oWHM(^C$aK2u`Xx6e2Hv2FH%d_$_Je)0~>lUVK%#4AWUMa z$oOnA#=~IsHCnX0F#f*Y1rt&z{6XaiEMv`ai7Azs0{3t$dy%cu=SsCB2cd9>xGl6h zw%U{L#2-&f3G!!S4mC^e*VR~6df4@dadBBIz1PaH#L$KHKTx8$aK%zHzStgd^y$K||Ii0CakrVTCA%fLX`L}G(_{44_lVC;_~e#5{?j)b-^}^Y%v#B^CUabK zKIP82{&FSW=Ek3CcIE16Fv2oOie^@6he>!Y{L?cY7CU?>{)dp|iVx+2Oq=))k^vgO zw3STS^nR*_Bktqu^tbJ55l-MwDRt;sAq4TiH4v>)d=MgMp@wbg9U3mmY^!-1R6)FS zhBv8(%&mnp=CgBSwXc|bRFInMp&6&`*!chW97RKO94FPc*zg;P5`-CAkl3N}m(kkr z0XC6#HFJ1^=^7KmvGk^s{0*Pk`{)${u4}bMYl}V;)G(RE(SHs)O^uHs+HJ7p7vEGm zS~y1wlaE$FgsBECc;~(W%>~Sd%|GBdGj#9Wgvo|W=mp-Rnhc^_GfZ~;Z+ONC{Tt%` zs<{+G*S#j>tfMg;t>n0e{yz8Jj}>g(&!^(t}P3-JnR zzUF;dsTx;NZ_Gs7+tX~WVy!nGke^bmBU{5=z3!GL^OmGKS4Z-1#ix@vx_-Ah&>DaN znI9aWnMNi75f*AUbQmCs+`UD$>3%J5l3pITbwzyQjF$X)annSwzBPk&Ida|m6E5`} z#+<|Q0uo8eZGC%gdgIU48#Fn($c-f3y9M4rNajmEm40KIpJ;`Zn2l3>-%N0)Q9Z6X zom-ouyNABVdRC{1ISgLlekziZOHd8`ld2<9Xd`ggjyn#Blm}*bEICIggZ4dy+w?i! ze(YFWc7*>aBf&YmHgIrW39rdKFzR_=^!fB%U5ME@SlAghk|_3N1{Z8F|NYv{dsX8g zYiSQ&p}sz5p`Sa%X0nr_(iSuRMmAiuE5b`c|JXu2V~Gy#1|MVG$8v_t#z`BA`4v3) zy;Ju_a9i{bA!d^pj+wh11x@-Z+1y*li#|0ctyuDy%DucJI+Jqlon;`6)NT%pFn(P3 z+dYg0J)XL22P;pd0iUG<2HWxY`HG6PSP2n9K8=evX6s>+)3*CzM4Noz6u&7>nvaP5 zC2QP0m*%2e4}}$79DV-F#LI1bw_3IN0B?X2+WLbRyaC%I8M0Q$ZCoGX9>4s`bLmrh zj2!R>mhsi}#tO0yJj0n)6nPVXO1s;>G|_g8;pbVS5@w9Qm@5?C3-|jjUbU-CQv6X` ze~*zr6@S_V)QPby30*f=MAW#f*8e#g#ipbTY%R$+a9;f>UWFmPAq4OBtSe_9nw0Kj z;=EsnEk4}caXSAHpy<+xv>MI6rH3sv&;0Q^t+9PxR&<*Ddy4#x)0`)URa=K2@-s~> z2R4+J3hVa0DJ3rZ#FWyL`eLI+fD(J}1#c=C2@RHNdDyr(To5qlE;CR~9KBo>!J0-K zmcYmtlL3rE|Ld}03RF}|$1a`NmK1t0Zg7N^^T=2_-~+sDoyv7P zM7A=xvu~$=ab==w?KwEcr_nYXIJU|KOXCCfJ6}iETm|Ekzv>BDta!*~LLG9-O!Pqd z%P#*3`Rq?JHionuO458(NskTMg}sOEive<3C4|Z04LCc%MY^i=er9#L-OGow$CI_= zIwODOCzq|ZzRT0~Z=>6%3%BDMN&Lc1m~Nf^C8?Ux;n)+?HT}tMi|cgtQHDW3pS+Ef ze%BM@i-+?IEXIh#-u$?~MjA#(>7aeho6n)hDG!!aNtLkLf+pJ2!)x*$gUan^N7AVg z?T~Crzv_}$8vQ}qrpuWa3;c*F7F*uKTGnC}nEwzDe=Pi2s73y3!62cXC(QujD0Brr zgG2?kW1!8*G}4LtB+gt$1+ALFjUPOh@T> zhhKDecJ+T!N?iWA`n|~c3LQY>_n$YC*xt!YmQ^s5x{s25_F5Km|`X4k~ ztd(;!vity_F$&x_l*9yU%@#KgJ1r z<1hp+kGKXo8%bZogy~@peX(q`XGBXrGZ|~3dPiwku|KHGcTyb`1rtC+;)R$vi;qr< z10tgFKZFTSa%lv^Fm1=uzB-|w@~tVs*FJWfJ0`kZ>KO!sCis|2eUmE!o~2t*R~T%r z;m3v2E zZI=&TOwdy!rNU;2G)p^D`hk`Rg+L-T4veXPtRlznYA!)#f7*VZ41V+1BN`_QDG`1kXMt@LX#P^oFp@?yt>b>22WD)h7hC(AU~dBN zgYVZy1lCBE7AtyaRw&c}d9=8?6=}{b93>(tcw1cRI4f??-}XeJe=f%fW-sH)WIww< zGwyeOt6g)B676~dW2ZZe6JppHTkAJS+tU!<;Xg^txUJSz@Zo%~wnp=Knl5RA<$I$J za+{N7OpOCQ$39sc?}nEXObg($fkNW7fFJlF$I7f*9}!Fxy6=gUU12 zX!QmiWzthk5F-2ld574)Cl(v{@*otW-vRO#P_-~%Qz}0)`nE;dAR_Yh zMmN-8>H-FTd*bej`Ff?@Q{P-Mn&;0vJu2$bS1kHDHHzf~D##6bWu?$f8qonj=cXxSS zZSji~gq=VRGntsdX2aHzj!UC)nYC%zO4Hmp@?nzrnYY54=?u7Q7M+!=Dwh=lx&`=x z-|uv6c?vj&*(IouC;rTO>n=jLpKzGvsOWL-nG-oF`)!T(xZ9z!jT`yDOLYXoVz0CJ z>}7P4-ne-ap___}UCd5jGKj^H^5BvCh@^~LtW<#){Wz2z? ziiMDDfl`7&UjpyID8xsC5DH)##o0B=$wh@jAq<~r-3D7TzW2SQK&&=rRwgkciQr^K}Io*uR+pT zrA`d4v}?sP?^VULcDuCfN_xj_8!jp6uY}jv0`PMH+@m`xDoQ_?T23xD z23BG0f6GjK$imDg`vdp<`81pMMzOfmD`*Enehbzue)uHarL`f`UsTIV6sfp00|SBb z#c$JIM92?@B#|jSa%Bc_I?Mg}qpyH_IaX^*9t>X;UZ^y8PBNzWRSCV&SnhAg&K1Iy zM_cSCiL1CUv;9!ghU^UUQUVo43ZTc71yn zUF0_I2L+E##j{Aetxp`~-nw^7=SN_tpT&1;;Ws_{#TJO-1*aZg^Ni2&$8ZoJlH=J% zKN(mU07s371VUn6Df5c544+%ZG;&bSWc55qU@<%T`$>D;R~Gn>v!W<*b)k9Z+V1a5 z>O+)|AT87UI_wbH*-jgOoZ!j*!j7XYpYLY~t=J80vb#Xe48Vp{k3j}Z*k2^vo9asV zb+EFXL>V`nTtk%AM-H40fH(ly5?Gp7mCg~*#P3}1w%GpW|d+{6hY@p8Svn^tSyL?xV zJ8yzU67U!x2!&rV9%Cvf3bXYVty(n12y(JA&Xs%`xL>uQ3oj$hV})IT{dr=E>4)~6 z!AL;(xM-?#0nRTVqpZ=wwinRAWa>L#`qy0RJyUmAwQnbc93&-%n+$d|AUWcCLVDV1 zb|&Wiq1>06X~716V}e%wR0?k9TD@urR1jPp&CgAUR+yij(GO80QOCWmHDJV#ITq3d zXJ;1(Jmh8{-ms*UTpY>35j8$BZ4nnH?D}?t0Y8sUpPzwfcSdK?U*a#L+a;F%$5R?d zS&GgK%6Ki*l_qb{ejJh#f1yj9y16PJ$8eo7<#2d8Wf&34ndSx|)+PkmART_;t5+v< z$v{a+Mx^nsw((JAa**|Qn#c3Xq@r|C+fL3!{ekmQ4C6|agyA)!ub^PW*@|{-pr<7& zN(N~AC?^J#j~mCDrf5wpdWoj|40ds{9yyyZjSInrTCeo??RU5Tg(PDIP>z>Km3b!a zz70QSx_?!H{htm`0Jbv+s2|D2-n{1g)c7T#?6oOn3+UgyLSW+mRI(>Icx+5mc*mC!&XHBWzlkqUyd6XIh6)so_0!%rJ zBXbwjC1*x-4!n+I$NmTAFTHbq5R z3txVc@$GvT=Bx+(43OpJ5te7X=~bX%66dTgG3>p9KYgaYcU;k6U-y{k%*B|gqpS)x z{m}zOf!gag8NM(|=LWU}{dShWYg9wWs`P=BNqB^uuhNyX;D*Ss@+Z@P z8YRQS5d9r?c?G*Fv{kg{RUqXd;0A~oB%nnCB4PPaW&yfBN z><6U6H85lpzJSRO+Fp^@;f7Z9q(T<%OcShAq#Fyu&Y#g^?Xl~cd?07A?UEvf>#$$n z?@@{qAf(=hBMf0mA!oH6R0nIPe$F2yX|)ri#reioGuTn92CNk~(+mx2~aD{AMXaxBZlZC7-Ns)1s z)cXp&{l%2&_&W)4=KAj~uRK%ny31^2b06Ht5g#GI;13veh;u^s{U1`86p&pLIKm&_ zLjV6e^xQ~YTOD8--=k^ap;Ojpe$ zFe6NFk@mZiKD5yBpy2xGBPsjh7PBF>=I4h5JTkggmLnq#=lmnIaG?v0xl&(d#;_-V ziz|UiYQJd1O07Zcrn_a6$JX9kgRr0$;ZP5WCJaxok9BUV0eLVzv2HKm&WW;Sg) z{it_4d*JARJ})O=UKH819Cx#Xu+A=<%Xn>*o=_-dM;bc^7(!xkR}`}96JRU?%3|-) zEl_LgZT4KLsjW3lyyrFA?j%(6L9SwLhTTQXYAfD$d-eM_o#9}Axtt2eT0UZt_bCh^ zOmsZLODn5G-m79w^ZYjnGo<0>E4dz=8BAm+{ZqA8Tv9hPEFx^nlB)mNGx{nmMSTmL z>hf z4UIznC8oKgD@eX~7@83~lO^U6L|0nDbiP|#1-cR>$%7P#*9bHYn&(*tm2eW9hd!>1 z2Vud0WQ&koO$@yR2<%;kbEzBZtzt)=vZQ9Yx+M&K&$E+#5!<-Y@FLevQE>0sjg@x$ z^qtd=TFIe&m<01dJ3vw(k9I-7{rIh^W6H%%sc-jTt^}T8$H$)|7h*VLnxYf%DSg{; zJP*42`!4`N#4BKvcm~F{WVo38V1X)2l9}fSh5@=jSF%@zCYLmVPHr<-bX|^O++>Aaut zvXBzquNXJqJ7h)LJ&(b(fGN;~hDCpWx-Konp~A^5norBOaZ^dldN8qn%l_2wd(&rI zgS<8^$`WZU_exczvifLT4bH{RlXH&KN+sZ)Kf(qsz0ii{6lJWw%TYaXha=C9^DD)c zPR}h@DmxL88TLmo+62C^+IqR^WhXHNF#tn9l5qZusR8Iv9@tKyl!L}d2dLR#e6NEjZs&v_Y@N(q;3N5c`)nujaRUsibsoTl<*wM z&`6Wm8MU;qKJI{32-dKYiJx_weT z<4Z*>$BL75T1ddPVZUar?ahOki`Cn9&3F*wSy3&_U6xO+E%qX_ zUf{Q?vshkSp5aZ=iM_CO5;r@^&xY%j*$Rs9Jf3a(P&$1lEUBC?w@6d_rlH|o*UJhK zRrvc=JJ~~Xk-)M5MmSIa93MkF@cDlB_z#Xylg4Qyi2+iL%aC{I1o<*3_Yvhkz-#XA zmxn>OiaN}192KH(bqhB9jfh?d8i1sJ`7*9B(ga&04dPLv?$=fB!Aa~eB~OAWj*jTb z>R$(atPnq5Hfj2cukL8KSE$|k3YX?$P4*fIcCRYVH@e zE1!OT@SYf%Mf3R4REqA6n__$#xKoOJ#Btdh@mwmNR^P?7AC&8z*_yHa(%SD2Q2?@; zzpXxsMPe*R`M+rChdq{idyLP=Z^cyLyb_0`t3b7iN63>uzA!5Twt5?AiM&%a;s1bd z7n}u4_3UJo5BA|D=?RMJScGWoNft!T9=H$(0sVl#?o()yXsB8hl)qgXx-E>H4ciXD zA))^F*Hyn5iv=ZfY?783y@n7mUZJEd8G91mSkx)`1LE zu2-&n6b{N3-XkIFfjJqxJ%OPe0pdMS6hn9G32tTmz;~8paIQtdGrEkFbrA5m6@&&Y z-9>@tYqr_y6naVX#g-N4=M>rcs^%B1diL&`Pjf^Ih$ztU5Sj<;HTWBXoAJ5(Ca16^ ze9lh!fNt~O-r9^3g>Eq!ex|UXg)M*F!`jC}L zy7h|BweBF$M#gDa&1|3d9=+ZKj~araMq7&BmOrm{=K*#fLu57-WtS#yw)(5KkjC7S#-ZbTj~{2TnPneN8W_LVWTj@bM~W?{`MhUK5^F z%CbPpPM9JgxiuO#VP5#0Y>GtTESB|v-tZS3jWhyVie8(g32-+-1cy30P{Hh}u@PVz zw$q&Gc~*>;!oU>-KL8I`{ZaDsdII%va=DIM!aHku%R%@UAXK+Ez0p@RScnsQ>GeeF z?T!oIK-r|n$8S=?d%HLNB5Joqgm;7bk{I%Ws!4QWESl#qoslcN0<8|i*hyX@%XzUJ zy!R#l96vAOu#J?{kS7vah|jfW*WSNQ()CyXTS>wS=T5;|Yz03KVNbx7yCo!hRpDHV zD#ZKlI2vDG-U{06)>Y%vDIb#WZTj@?;?wA(WquBIHVAVG!2z_$T-QKcX+V}o8Ai!P z0nzX*ix9E*2;llK;aYwQg(Jjnaks(7eJ%XM{lt;xL5ayh8b%>Rt%BMl0)-UA>=@=m zd(_4a2{Eyxi6mYTy+v+3h3b45oXDP_0{Y*?0VSWT-qZfTlA9==-uT-1VuR25#1Wt@ zfqVNT5aAFG)2QATfJ1kCRpXzm?d-uL3gag27 zUXCBs-;58~brHm>*~PqgxLM7*yMhdenPj9tPmGGp&5+J&>=8P6i0U&djB=(cw^!xw z=VaYGP`xJ?b#IYOo2uJ6$<0*6$M(0j08!j~QDJA-eh5KEQ-}{>7$7mo#H3|ku+t#@ z2{NkvxX$wUtWgf$QmdX`MDBkx8#|hUQc_P z?n>-1DXayjXgHHp21izb0SPgx~o7WlH^mkP=1uHb{M351fcB0e_REEP4 z`SYK@Ax=&8c&lOZMAP?u3@XWLkZlIh&~z}x=|W#}dkw9os>w42z+|W#BZ2Fj1$WQ3 z;L8&?7qkrx-$tHbhT$LDh5vJ9-W;FviLGE(yq+RHsN?P`lwxkOVQ2>;L>uAGl(sBkQVvW0nXDO?Bko{K)OmCo6!S=DJPfF z6|iAI32j?{od{MtD7f^o>mc7K*d37j>RQ7zGYAJ;1`ilGY1!>CzN2PLyc`#F{o~iK z2z!Khpcn=RE`-=44<4+HS^>gpW^GLgZI9Sf9VQB@pt6r_vSz!o_G-)SR__T7A%6TXeW9D1{c+t) z!^hRqe>Kc+Qu{PUy~_CM?p{#w44APHt(BM(di+SC=asvf>5PW^p~L^j({;e*xcBe- zc^WE3TSBF+p=2~pleDCzL8w&7Y*?lBNU11oO0?6G6cJh^ElQH&L}|#@K&A2gub<=n z_vv%q_nhPKbl<=6{a)W|*f~6a;dFAyYbsxeaoz6i`i;uxbN0N;xr#Igc|oXz9-kFb z{F7~n@gq~`!^A%}4bF;`?5h8S#B%Pr8#bIiO^D1TEw)797Fn|?pW<* zhiHf$>{spM7Jb34KOk0MBd{PmTu9@h8cDS!_F8b)z$F|)NyI0{J4$I*?;jK^xiRjR z+LpRuo%mqQfk6uurn#*2pl(q1ZJJcPM6dg)fVSm|9JcOZeC?Sh^A&nn%7wTGl{0KO z8n@U+{bml?i(W75PqNy^BcT^_khMi1&sIUk`)!{KTxVlqKmRUe^mn~Zcg&L9P0aphuY;~3QW1U=MZ2Xh2$LF(A z<+gUVw#0NDA|DuorcXWD%ieiX$7U>8AJ1kj=@1N_B?~@_4BnR!8?6MBu9rJExaGi8 zLGI15mvFz@s&odN-(h)i`DEx73q@DTb^Fj;S&m4hFL<@g=|XhNz~Uk6XrI)OFCa{` z`PM25uoOOWS{t9(@@#jR{$U5J0yf)2EJjjXcGYrIf~;e&_uIz3Z@S#=QS88&uF9^2-S%;a~AWs-cJuT*4dCA@@+Hc>5ynX$mE(LN_}#en*0SgUt(U_foxCF&EEFrmt`R?qiL|5w6T1I~ zjCi?;nWZE-u1lqO^PmteL8LSo4~Z%aYObN7V#n7iPJNv|Xn8{*IjDMV`;M%GKQ1aO zFBO#;?IWnhg_OAcR~B2;I-0a;T59-hOpKY!>BAgkC~7vR&2+PV*}l28izUa7vwd6b z@8CGrY{HtrW{-x z#g*~m+luT1Csb{Iu79ye;g#OVg$9dKj#~d@)IT) zy)OktH=1@qrbXgHK|pI=`!tXB**yVd0dcT;0dQV*Uw7^Qe#|B!YMpu0J9|ZBi~G9N zBT*HN)JkZ`F;_+yMRm0pDXK^+0m7#iW<5@3D*|k;ywis+(^lqiw|o2--Dm7-djvf1 zd}Dd7Yft;n)kMwA8?&n!%1Lfa$&6>wE@lP+FV!XvmOePPAnz4n>6gUnoEr25Rg&3PRjhYl@U_3(Cg!+qZMyVjV51N0ycCZykY zbaaH@MclxQWsZip=?aI*kJWu=@}#Hp9zljn=y$^BaG1S=Ws=O1r~By`mEy}SgitPs zh#Aa^jae`Z3ConcsIXm07=u`tFbX0gm6RUHd51w=7<7gkKgN5OZXKyt3F3nT1F5%B zvi!;a(ebxWU9&$*%P&Kc%XW6OGVh9m-3o?W3F}-%w3zI^fk3Ucu zjB8_fXRM=3g)#Wz9>zo}OkFf)j;6N=uzSo%F-H9G+7ZOvA5=L^1AZHN zB>vEOnBaU}ES6_p!4*a#cpY+kZ%M055ND>fQkx-HBq|ali{IlWa_P;K8WUiZf_h(beIL1!-^L$53%w< z%AVUi{m|AG5mC%%tn=8}s@t-6!I0?Ce*sD2Eo39pcB7Fl9-h`-&U=Mw5 zF_n|Og=ZdnNc$GPq<`aDnJN^&{h!4`m@dO~0$Rs+rut3GEVKOTt%sJ?PJh~yVX+o zK2BUTPwSq<3QW``52RT{+t2>w`RRSw5H7 zhfWDw3>*l214ke(RA7aOy%-g58pz&Gq2j@pnLML%Fn*I40$5#0E1I9*IHkGpj3pu$ zF~TAnOao46Bs&2Q7HN5ij;b3N&B)4HZ!3w>YtP|39BQB=qT2;U{>W>}Hz{UG;b@87 zkvDLXVcao#VxxFU`_rMn*b1VGFxdtIgRwT==$~Tx)~yV@9oUNp~SXYFRrDV;`vLw@~?YodLRLto6*1*apI*~(7S&l9{3 zyGRuoOCOuIycHr<7Awo&m+aN9V7B;71Q_b;X6wEB*o(xIgnRA2y|?rP>rOdY%ozJC z9YI3kw~B!UaH_Go1=|iiq{A?`><0iac#M zWN&2^x6I$IsZ%g-a#HoWC_tdm2u*^`TtOZ=31Uv&VBy?y((wcVz;2Yp`f26!!D#E&fY zx;H0!dD7eD;%C7r8r2k^GVaP%n!cFJESxZzxZW~E;1}3>L$`--Feu^c0u&-GV63UK zSx54Pk(*@)7llMg;E(*Z2nh;7hV;^@U28-k7&Cx>3jP*`H5+%wD)=Pc8qa|D3}kZ= z5~=(_@#@dJ1V=`s8S~Z(#=btdF7DR&_i=ZlZ&LPb_yhUfY=MQhCKqh$a!N9AhIjnfke&^ghqbl!@aHHJ@VTK@Jc->{Jqu^U~H zF*M5@n^f_ON@{*_){gY+&KGQA1v@eLmm-_I__$&XTVjZlW>89G@pM*;5(gpt;*8E`i!1 zQ@dS&>)4FA=dk&8u9nY|p1EaPmGIla$7b=7BQFlF`xo)3m6zv(piT@PK%Ip>9ey52 zrt?3_PdTK_7DUO-kDTuw%zgcQw!dsb6Y@tDBZZ4P9e;S=WvMz&+z!as;Hw_vmh$e; zKV3Tu?FcT7DGsP4IAvku2dueK$UjL_*wWW8Mp@^B=7$3*R((xjJBn>gmqlw+QSZ04 z?5DrouP(q_iWfb|Mu~(jtAdXE=IHm$%!MWcxYAtW(+@(%L_-~z-F}- z-f`bIXf9vA!62_=g(JJks#@_J>Ap1a9-*|CU{}MAChIb9U;21+jkd#;5*-#(X2X)j zXn(?txr*HiKk{KC+U9TCtqcbqaIn4^Yx5jkU}kWIB$OdgXuZgjG2LLIU+>NT)lSp9+VBG?!VU?Hc(lZXe(8ZxKevguM*14s?qLB zBRq-Eqh*Ls1!(;aUKu2%oumsR6qE(3XoXwD5>jjX58EGs0fhq2oU zOYe<5aUL(UNH*WZ?)8j_H5Lj!Y*gSN7wy%E=Z(&nqsLd~7k>8A@F|?dLy!*5`Jf>4 zERE3deXy&>_W;#?@UQ-jtxB+GCHZqCZwxwn*lImQNLWHsghG&#@CJCbpsGPXpc*_E zKw@6O$pHx$&`Xx%14UuMTltR#7PBc9zTNrOt?1-PO~Pq|w84dmGYbtR8V9c1j@L)K zKP?kwJb7yJ(43WuqYYkwyCsO^#O;qH2`ybfBD#HNe|BL7o`uO6=mmJCbhtS*Ow=#~ zfz%lEa)=6?73s5>Rq&*}irEkpdxwF-YC-wT2f5q@Y%|ynboOE?wN){3#(be`YL2!$*zrE!s=t zvVb~H-1aPcbN*|*k_P`fK}32??gH`I5inX$Kq4}jaZybkm~5GT>i1LUip4qoQ2GNf znpS1SfcmN+tN;zrv$ozCZTn4~p4&Y}uBd#x*hHVx$#&YBw3l&KB-a1(l!n14zxTzo z9`5MiHfV=Y$q+Y{u=$I;U|5HtZeRM`$8=m|tH9t3m>Cc^hQ`G!0(7ay9O@LeiQSoF zWxvnJY4v=uuo&CjRI~p}pP|`|rp5yVG(7J7Nk~`YQ$8=mptCKwEC>Ak@l3miUfPc$ zlOOLUH#Zg^I_lZD4E0c@(AAucD%r)RR zq(h9;%w;=D%4(m6`Z5gCk4)*Dc%L`V@^^uy^@X`b{fUPR*&9#QC@>U{t4andC$Q|0 zvEqOrkIRc+KP|VlliION-{RwoiGxsv_}oQwQRw#H4^Gb;C7lxx1*|GKAvMUGZE#b& zo={e3{EOXMW_cl3P5UrJTIn3B@SME=2J6*zp;Xw8g5ogvvz@_A^2CV~=l3qCvVV2j zRijB={LrSaYHKcZ01sX#im4$=q~h&&ve2D`U+W9fu9u|$uW`2y9fUHcA0}gu;X)V% z%uxEbyZj?g>TR#WrtJl}jCqokYH?<{K97HRhr8PKN#3EjbJ#_mOc;-Mw={)WXJv|B z$-T5vqUECI^4dt+b@o1X5BJ#j<5S2xTrh){NaztgI=a7k!IgXu^It!=91~we&whI% z&@xHPcWvsgESoyG4TTlBVrtek_PEI}MO)>^r6E?TptW&p$M87G(iWQ|8{e<>5|I#3A3pAcAR)~tYSFLAFyO3a3f-jcH+cv zlt4TuBcQ5yhbSfrL)L*~=7*9BU9ws$)b}sx%VD%1rM<0tl0+*E+Vi$Usm*2rULPl` z@D2a2hw%9$!MX+rMvn{{Z`o9p=Ri7TNjJc8sww6uu_a62H^H%c@8Iq_J$0Lg_7|dR zt%(f>p+7R_nG7Mh6n0xUG%GRyec27X1jQ&u3@uw8Kl--+uoZXh`L@(1~Sn|Z?aWn?eY@3!Z zIx0!SbODj6WMBo8GV;=I-dvqmk`iKC%ti1fktJwZ5bv<7LeYQg$l%uUa4XlgCR&Pn zUfYzsV?1*non}BiV~q|M4d*1;0h`OL5W}!c<-QM~3 zKkN(aa06;&bbZgZUOsH5>!|>#BDa-Jg_i!|`F+w@ zw0Epn$f!4U-JyrXE)4<3NCxBhPAWE{bn)r#1}~hY0{}0&k)}!lurd5SP*&WSkrs?|AnFsc8oEE5 zz2aS)WHw~3jMwLSGRhpWzwL!aJ!6m3zgOi@5((QR&%rGM4-`fM5-H>L;+9Q-#n09zxcI-yG2T)PW6kN&7Z$-b@-%*V3&`Rr73)WAX|EzS7n$Ef=q` zCset4cv{u72RO6OIneZ3DH$fH;JE!Txk1@IIT6e}G4vz+zx-RL&t4@vzy1#@V|~%t z`L1T}bB#|t6VkC;XhzG+h2XXe*kKVXHHEA|T1M#3q1v`cDmyMf>!XU;Vu==mXjx92 zl)u>eifQh@2SNbz4&E=it$~nCBQZm1dZ?NX|_=~Qw)DpehHK!`AVSngT zu+223sd5@Gt+wH3fh@&qD@`#|4jSbr%=IVGK#Y%+C=qT-phs}@CD1h%!`B)g0uFE? z4$gr>fE|Rp=9$_&-E*^yOE--_>|f8CWn>T;+vJXdw%$LnVOO)jDt1ZASAX;1eA5F} zPAWKENWSLGuRApx*NAp5nvjM!#p4YNb%<9JjgpLuuyStyxv?vzWoW%*TrINUM~H_j zY&I@&H=YI!8^d*QP9*nw_8;;HxH1^D0v6o0NKn~f^LcT(2(%oLT~7j?CWmLTukmIC zuKzXqj+N25|7#vahy%Xbczu&k_Ub0A{%!d-6+*q%h~9U+)alvn|0~d`$>|!VKT)yG zaxl=NLjexUFd^&>^a6Y|dCMSox{E4jmBlaP816o4#x*YaP>xtT+6zhjCIvngs1f0^ zSx1tb0JKPnMw6Q&bWddpTQw3^8>%MWlD0)q6}(`zZ0%Qb0P|>=|RmLYeUTy4qM$kcAt)#vsvgA!RWx6kk ze<3Pr5bX}G+ukbL#Ch=MD{e%F^E)|CA6&PDti*R1g~^PkVXB8=P@+ws->3P-Lo?Gm zVDBNO@6KQB0BjDt|7(`mWUvE=pQ*$gsD}$oh!q`XmAl(BVrQc&S^sx|uVRIklN2YA zH)K5|=MDlcNnH5;y{KAY4T{U#kS;Ai2}*x>RQ-dKh8!R9{IeX5>g!_p?I2xsN8p|j zcwSHdgw(*;hghvzu?QZS=`hJe3L8mtg@U5z@}Od`y!qYVmO>lv$+^oNwxC8{z0RTc z2`p~heIMhT-s!g!Hv*@R2d=WD6P6fZG5;L^!mbItM|^hcuO#I1%)z6@Bstf2Fm6pF)^k;r)NnhBb=_{;JI-{jF^uPD+)T-aPV>_uOeT!qNpMw1$7xK$PO1-#`da8W zMN)@FG{B}KGGCGfo2KJWd<^^1N%uP{b{@#ZIG_2;lX(Va##gUiz5HvDFC;Rgplu*I&hx~4DfF<;F9bvYCFAZx7ltkp%7PF^?qCO` z@|cc(PmmmfQQRZ4sMX*4ZV+!|&bzb&sHqDkp^>hJl-1b$8BaT%Bs0RI#ONQU*@`I> zFR>orWsI_}@W+odU~LF>kcc#?A42<4x|N&}k%stwhUpr*)d7f5aTiYZ4C|5+LaFmJ z$Bhak%7SFkWrm9>OqQel!g|{!QS|zv?R1^j1W)nbIhH(yh1<3B#4@ z&o5So;)(<=18iV(zI8qi{N}hKwcdE*p1?Q2Y@&5+A*$_?2$ zaDbC*ADYMltPy_#c2vgVfr5x26j%R#C3VibEd7PF(PwWoPv5F0oOYc2nA`8$-n&O_ zvG(|r)g-FJu&B!gqKFx0%wV+(ZGU674oE`+P582YMFEoq&IDS-%2V6BG%p&y=xL0uXH8WcelQzcym>C))@t!>y{kba_ zyNq)VtHg$NHY_6-C_gnSFj4&I(y2DP-hsA_a5fFuoVsq;gAg{7&K^tmihlklFPuaI zZ9I0YTq4W1Sl(yJS#w?MO;Cl-lbsdaZ0F_kAkXl^%Qg2JY^PJ38|vKE9>80Ymm`AD z7pD-#<=B;fEE~{tRNIoKBZjQ=g44rh+A!)QcTk%iQ=1sFB1Y%3j=wN$)oV%9sy+Lo zV}nz}$CE?K`;G<}(;fd;8BmC~KS^jqGXM^`G+@q0gXcgoz^G#=-^slzc;(cvVRHK# zZg`n0P`X0;YZo&n{I<9*;$RKco&b$qnNZl@jO)-wCI@1&QNEJg7aTE{E?pvO6~dcc zNQt+gf3X4(fIUF6D51wDqMI8?HZct}zk6y$%Jk@?A)I0%s=vI|!fZ2Z#G`c&6H`yZIA zz4gxFWh7X%eNkg{+aOn@#f+R-#nJ>_aTB51qOLM6{p%-LJb%7calB<>o-9)I=om7K z{>W=ke6N}-tE$?`OT9R;d4f`}wT)&bR8j6B`oB10gJX1k+zjS2renmNu{=7990tC6 z2LD4UO0?_<8wgw;vxVq?iSwqhad`e*i)><~;d)cUrURu-?hldh;r-!Rrs*3l{josN z6ys3YVsC|o3t#n~DG3{^GS@qzv6OH&a1eU8Z(Ou%s5$9>nE*&3%!Gawoh?QyINq?{ zskb()B+MP>1#ICv3bp=s?MI0bg6P7ak<$c3G)f@%uaFFAq+~`Dc0w394siPse|IfQ#bsX`gsm;d9GHqtE{0 zkvxj!8CrNg@fb`d@%nLcidxu<&P)Bx0RCV@oSuG>OybtS9@hitL3CQZjaa+(=gC~ z0%RDp<4YG98@RE9&vn&2g?|4{T6Sypu@FVk|LQ<5VxA3!FX=Qe@B9DSZW~@mcnoY< z)?Xr7O|)lY!8~?lX5zaSR~By6|C!;v2L)~ecIPM@zM|zhM_}~SMG$THt0i3xu6*A7 z^Z{4g#G>(Jx>cc)J3k{>S-cB8UV_oWH2B$~&l(%hKcm`#J%?ddzRfOgI-`Z@w}g_p zj$^J^gXf#sGa|&EpGjRJ|V%!VR0e_JAF9?h=p=_4X^c9lSD(&f~7?c0ly!Uo<`nFHMiz*O7-H$&m98uh)3H=|On!rPR zPj;So69&+ngHltD=b`LuJa~AdBpJ?fK4Z-_?;|ZS0JAT44Ab%d1(PJbFqGZDnHw5}$=?q$3AoL$2@=j{x$6}8TvfB*bE`l+bolRbm~F>yzHhd>q$U{_}# z8z3>y{pVDSR7JjYovAl|S@488X}q5%5qTfpw1q8p%7&RUIA)E_BSUAGc(P$j?0wzEa9BxrZ9&gZvs2d*u?dm z_mwvE5hRu1N6gGh7=*R@u1$KrTdCwkr-<5=NTD{@2T!!J>kf7^;E-i$CQxD10N$O~ z_o@j5I*{H)(c$`|`bExBV`F2N4{RAS-F0-Qk2qCmyG5uQ_8~}e{`dBwR9h)2OeRQ* z$zRt*NGT-SA=(4(*Po4QaG@kSTJN)z4cmyDxjW^oZo4PCGAUf~d_*7>?y@JMQvRhN{ou{!&sXKQHCpgtL@$ znOR@c5nVgRX;v4j_Zk~wvR%iYyu~4D$T$RY`>SJjf{q-r@pop zO5OBSP5{ZsB+|Pd)60sX3)^q_j=BQ$&zyl8T+`@|PiI={;pR^N-~MxPVn;1}kr~1^ z6||{Ft`4?8s0o|IE)T}#3FJ3QSXe=<0Ynj`3>4IsljGNg{-R^dg%@}DaIUQSVMBol z_TVqS7mVD?g$eCX_VGlo7uc$~!Y+E{fZ86k(U^IVy9IE}(w9Gf!Oe3iQp`2KS$>;V z$sG*Na3l6{M}$t{;vgqDkv-g7mJv$06-eYZy1d2boCE5eJRQM8dY>+ZTOLs`K#E`h z+?}KS9+VPt)7=PW27&iVC_y-q;NWIE3k4dPU;g^C4P_Y~za#+X?-TRODL>X&1;!J$ zyALGN*GUwyx=SXuCVi^>JsUJRJ9k-_E(IYev*_gj!ux=xVq60n2%ccF`Bejf>+n!U z_rB+*W{Kastp@+&Gt7x2BuQFVJ@qNl)YNgD9iak|IXNL9k3e5Y=7L%^(hHE{S_iWKiXWf#wA1XWUTIO}ArpyKZdi#%7>*ssI zy{A7`v7BDOE5Z4TZXd~SYMmo$r?kB^UL$_{QaNuYd#AH*D$}zEYaaQP3jFK6^xra> zdb={Elu!J2ulxmy;7n@JdF7HkKXHhRV#m~xK`|3d8dRoGAc?bb&zGkWBPuu3^P+7MojP*()*wQ`;T5O@{{3#5KaFAl7Cr%rk4a2A;>H3@Bs zHaZ;x%72CLs3gc<8vV@RfydFBk$Oe>WiC6Grpu)6+nhLEcvQST#`Wi&oE+j}OU%MX zVwjULTOPAjCYK^px{^6JjoZh*Rr}=2?JHZ;7jd2na9^^CE2RaA?!%oPMieeck!Yho z=s^v0y2f&a3MGR@4PUOTJ9pH-PpBsJNEx4}s0n`J;XnlQ&!5|n0L20C>b8h!p4E$Y z`&%jr4_pn=x^g~-{mF!rsyO}CQ2N)MQ;GUf-24*`zb39lBih5eV?%a3M@$1tdRsWE z?XgIuR|hYAU;bsdtSX`09CTKaw+D(2>{tN8Z?dkec|j*niuK|5Qe+DdZa4+hR>g%m zH%n>~YOv8_BTH@OlRS>lIO!W>=|hF(X1O8l9*=NplRRy>Z@-%txPR^3x9@Wc;FT5o zBR!>P6~Bw540A)AyiZ%jK{^yHn3|Dweelh_a(S8iTR4I8dRC6IV_pJ53VXR@H1uMt z=Pciz8!x9Cov8ks()VgtXJy{HB?!zK^vt~W>r#e*H34FJeR#IK^5@I##Mc&88dx^K zyJyd8%h;IoY}iP5UMDDIEUXp+Q&69W zwzkTM{X-{(*MnkQcU|&qO1T|!>4274RP)pRJec)y`bC|tUtgDlhBEo`PBk0|&*Njz z^(~$iyzn<;rFPviq5PDauG&4BDTG}MuBRo(gFgXp@@`mmVx(DYiT8?2%vEfR4_9@p z1(=y8!c%h>P(ot@MG$A@$KFPWV}#=52Bs1?m4U#c13g05UrK9yS)?@EdPi(9l5#!A zlgcTM;4bJbPD)*OQ~8XZ75~x5xBK7w5qgWQX#nyN42>>Z$fZlvMu}`PGXp^5JvZaG zqdH)5lY3bo6X+2P8TIm&4ei4l3w6BRcj+#qUloQ~5U^}1`c_GCuCR*8LXWG>y3JCd z(MD3JF&nP9Bi8NDX6nrbF%7=RBrFi;FO4DrC1z%3K993Xxo9gW4)u5r-sS8!t~qYA zwkA4r7)yC>{p^Vyg@V7SU~b;&2TKQPPMtcnbVG4u#r2_5=M8}+$>cG5A8#0iHjPzqx1pT}S%d8Va}3aPi!^R%XJ+-zsn00-7>S=)@ce$Kz#I z=_oz2LUEWOt!ywVRiKDzCbcH1QEZAo!N`b1gqs~m@Br2i7Tgc^C`m8`(O!5BH4E*i z^yNdGg_zB^lF(D9XqcTqjC5XZ%+*yz_V=}VM)^|J5?Y*~iy^~A7gF5nw_E)auW`B5 z(|%b;33N}C{z}@a^msE*!;xT_|6VC8t?Ww*A2l|)LO7u8lK>wTx+LyVbL2UByO$no zR7JS|B%TINya_q-1c$|Fc<^L+rLmpZbOZfmlc7h```{>6tKYiTE5YIN?%1rp3(x>u zRc`T~BmE>{mbZHhnx<%EJMFk*R>hoZq$EzfW}imn6UoJf`M7!Hs}TV{T>0eG16gj3 z=w=I>w)lVxBRB0?UIpvVs2>a#nwTHQ!P`U$&sVi!l+P>so>0YVShsqx|rB0ER z=@v=?J{m&JmhN1$tuQyV-+V_>ysiE0UTKC!9-1Ev9s6}|n-S$8NM!Y#)XVI`H4ayP z+E~8yFLLLXOHe}5MGywiY&Y%k+DONJ1-NPhv~IG@u?jPp)fEB3!VO$!ztVsN5cCPE z&j@aHPPfyr-vqA|C+)*`UL%}zrMr8Zs+-)KS1ot{HYd3_qvIp{=2RD#z1mw+BMvj+ z|7IQiP;~{`GsB zOOhjSg|K1^xhcfGa1DLw?$i>--S3{xmfqH&Bg`=nPO4S#PjE9aIc~nX+!bn9u-jv`?^|Ev~TE0o62!=31Jq1rZl|k^N^{|rm=0$J=dj9 z8UMPgk)&_S-Dt=Nur#cX>^UhJsvwp>^Y;+#=jE7##XdzeH{Cl$e+}D9xPWU=&!5wi>fWxSuo1et=y%3NsGaG9(DU z*U-=Fcn1$Cp_kWp&QE>%IH4fmIzSf8%qL3)f^LHP-0v1_DCfLt*QGCZTOLlvQf8;_exOMdQnwtH(Yb&l zRy;XwU*g15?)bF9p|t!-4>QI5SYh$*T*^syyZyDTr(l#I_+zU?j|eVsLZ?PoMNw5w zdh(-t-BX@7-U(=W?Pa>$`w9}D2%3ou@ziJ13?OzG{EY4m{L6t<(kew8bhJ)H2+8!p0qRSUJYA6uG?bN{rQ+>B4Ty)7%ZL;p%$7Rh#y z6&RRzb8e<1zn)4o5~ht~um3$+2%OqNG@o(-|I1^N%*=C`qwA zYGOq#+U}7kNRihnA-DvfKs3oh)3|yw$FxZ`nuB^6ZDCtqc+2B>J>3HL6uRt8OcIPk znmMTUmXPQi*KaSL*dEGiNiC6^+AE$E--KEhxOyLcl3NlDA}Dl8gbe;6$e1)ZU!8ss zJMPpJc|qx4;i6JlkKSe%{M~pR6(=#g_|Ts1r=u=Q2hE!h2L3~GMyqmQ0Dyw^5qf_D zk-+XTqvlWhbJ{WCtPrkQG(#jk0x-bH<0YPb$f2x7c;DHJPA56Zq?9CzLG*)D)CI>b zrUnuu{R-mM&?Op5K#;q-IGM;K(+vq0(HKy2pF+t>XS3bcOhe{v#)L;eMStja0(1BN{VuZBr? z0L}vh?K45l(7?m6?j^GbykR#?KtL0i+4jt14gQya8HewGT}Qfbqij9^Qn+6Pn&pu0 zbfj!caeMDl6=82G*(j->-99K!bEoUi z>?ru8;`D^}7OE{`f`S)Msxyp1Hh24jesT^W+gZ17Uzk>ozz>g+JCX8yz0*swFNgu? zojWJi!zqJ2HRyvd*jQIN-ue&eTyQMyKX5>EvBV_~wK{{T&nK(INIu!bf=tI{zi1zyE)DrtcDbS&N-uN1?J+Sla=h!ZTH1k8!|+Qd`b zEG#T!DUo3<);`21Y>QN!3{lLfD)V`8jZhZ506Rm5jbH^qExHVd63_5c|i?ccv2X{6`% zB~%L{spAW;J5`+}KpxPe?)xWHbSL{*Fe4Bp1Z9%r@x3<&60t=@=&UNDbgv8Ko<9{3 z{blj?a6~<%$T9n$9Bp5<({#>KTHjmR$A`^f-FmU=c&E2gw^D3+0el}h`Od5zd8Ojxb-?|vGlE1;#FZRAIec}B#t=~(Y&&4&l zt3r50m=9>AaoXcjOGx8zA*1g@hw8};?o0P7!aAy|3harVi=aqrO5X({ydLui)Qp!0 z^}r#7(R@u!x`Uotig_z5Wj5EK9@(NkZ^v;u7OLhT!{(WD)TyFwdaXk06FpSkMy)&iyHaPzYCPps@-53jrEwvDBHl!#5i(yiO@SA#! zgyo*RU=)DO^QX?3)IrOt3lER+sRj&QaLVI3Sm72LU=C))s_HhSno|)?mv&6KopC8! zQeh)hk?bTl{bn0eZ`0hi{vo75yO;LKknw!0{x307!+>67 zB+Z{WuQZ}ItrsU7QLrHsm1rnnB$Oq`Fri0$rKv5?7+ffEhw<^}NkWbW7yIJMotH)? z;>#WW%ixZ=Lq$k4CRfFo=oj0&O^pqaOi&`g*{WnDT`TfsCmtE7StKVA7;t902l874 z?acmmOe6keT1Cv+kf#WSH>@_u`hk!S(A&m>TLFBJ<@O1jKE7)7qCaDs_ziwe30Y=6 zKAGClmrNB|I6HE}?gGcDu>^19)EyiM6=?ctE>>)oJG!z;Wem2l)xNxdq6sI7hk||_ ziM{_`Ilcf_36T4Sf9dW%R`&B(L@yAWxE!ENQ=-`y*b@9|WO#jWupYTBu)H6_=ElW^ z!f&qq&fy+N5QT+>H}*UgCC6=fd6EfZ$t}IRZw`a?B?`)}5upA5yra(JYA3IFc6Js` z+TWizBb1OrK+FTHG{EUM&aMob0%Rcg@XOr&yr?`KVUVDo)jewibhG zjyP8Nb##3(S|fk3_e^5^s4c{?m44$ccmAC(N;`WvV-_|k>qxUC9ow^n#9$Gza)|0puchfyPp zlB^Odn@o8z!IDGIt3M-p9|smu&Ox3>U@U<-T|oi-Tk?m%$t_Ev-~^0A@8I;x1dQ$C|Ni9m40roUv5xkLH&Y6c}vY9PP@y{@i`Oqr=_e<*xHN{l$-J zEyGA`^w+p!z|zu!L$6V^sf4>iCZhrbMenZ<1k^?pxs?EnApBnKIH4eB&7*FZUGKv9g5DQfe_EX!Wfv6#O| zMjeWOOqVPTcUYPrr!{!9@UBH(%kueLi-UwZ4kXD@5uL&7PD9Q$Fm%ybYz-SV>Gfy` z1?~}Z>XrL^;cHvw>+hnU+3D)zaq|@*P6P_m?pX`4Vxy8>fky!Zj$A2%>%Z{Z(fiYu zpJa=eK9kSkW>kuDolL4~YimR8&*s}IkQNVj=$*GG6>SxSEY*@$-p*6)y!`Li_sTQ? z3RgG!@?bJbt|LgvL0|#HoqR)04H4svNcSyCZ_n?aK1u#9n+RZM8PG2PgrH~SJJ1?m z=IjJy-F`#1-;yq$k<)wRPq*RjXKCn9V zDgICtd6l9+z>*rA)x7iO_>y#weRZ{M#jMWbd_U7j18yIU*jVU&Q=jwfo1kZ8S zm{0^tLu>JO6^P)zC+b`{EIGaM#c&qfIZmA9U}TQ6*dJtZF{JD)8dOa9i*80yE>dIN zz5B`?fx(jSOKK;b#B>;_}YrAsdZD#7aQzSVZl_hDiP~cYD zMev2WevUO~kC4u)RF_{t!x>2qI;i4Ft}w3Jhi~t+TvU;|V&R5pS1>&$R9 z6vEv|S`fI%;)V1b)$*fC5=SCU(ktV6;6RS${}dNn$VZvCz&1xD{bE1jz^ zJDg2xa=&r(qYe0%8|e(TSXck~27b!&n=iqua3cs4IU>w;NzmAzB7xMXEeAW60hGfL z0h+Gn;@a2Y?rW+0?g{$8W+J4$6_P?8xYQQf72!0;Gy-FH*_>cF&CEv=iV25r)(W)2 zYaO)}U-|iCB#Bl*fOEtj$ICn!!P{pSd|~pOU9fOW#Mj7!PwPRh?AV8m zImSHwcR8{405R6~m?pAqSfC{|J<4N=(4{0>ELdwNW%f`$g48vKwSrtjtn1N%lGs-C zJz(EZ0DBU;6`SVjKcxi>70oq8GG;~{IVl+y{R=byEM0&p7qKJ~4;V3co8E~Iod{3q z3?rJb({{5*=MQo;^4CGov_yeX6CbpUWDn-+a zmDb?@y(-*9T5ZUbN-_)k{re<#AsQ$g!$Xa;+3oVZH|x*V^u)_wzXQKmKu2CvdVgD1 z4&1jDxWv$1J;N%=OAopvw*ytk(7clFy~eEi-mIIIMq1s~P*}1l?gvpDGeeLh!$BQM z998`3-*TjH<3odedn#s*3|$C`tE^r>%RFcn)`0+J1Tlk{RjJo<_>LP;tq67>gh7I|a{N!l>{YGde=E1f(o{PmXyQ?I10 zF7wv9kK;;0W+D2NI@pl1KRuAnG4TO_K*h(asaQXewl$*5ZaK6}I8?SB4BRNmcm3i2y4Wz6$N0!NBYlUjoFE$& zZt_5pi9uQ^f@yn>ZaZl#GCdfz6R#@L&~pI3F&gXph;(0{7& z9vZZvU`)HLFK5Nh!2)6<6c(ovaob4Yge|Y!limoxxCrV|lD14jq09a}9Wal9jEjG5 zD4d%zkJ#8@8n<Nlbm5-ylV!Y z=-*{t_Hoqm$<|oS=e6Y^y@8Rf8CfHLXAz74=n)x7{pv(*%E*jcT@Lc_&e9&uGK!^E?GtD_pR#%{F-KjmmhuRtsqB-K{)uT~ExFyZN@#!i z$!FiMv~AxQZ~-SA5YltNeKOE2H^)&5NnE+Pxp2nAn(uk%d{{?N$Z60T%629{m~ZUKy>{n@m`-jn4&#*U>Jvu;EQ&KucVy z*_>5A>-?Gu&}5~yl*_ZFgg%Ij%Kzo^iTmoaXPAl`NNAj>`zcBvR!KK*|aJ z1~MfeeH42kTHClh_crC-AF*|9*TgvKE&8bDW@k zs-n?w=0fa)$eQ(5rpnSqrw4WYP%iv?_&yJDdFlP$0J`Y8xotBr7ynD!8jLM0^H#XO zQ1VoBnmEERLBJ%#a+FgEK5uYbKrV^VDCR898D& zF3^3;&js$=x8lOeoz2W^U8F+}C)#coRpJ=-Vw0)JxW03)%>$1$Xs-rdZuf-0!Mlq# zZEN@_0oX6|1ErG#FlUif-1T{vS_<5H785THz`?ki!s+zT`_k(^M2P!@+w(c9dSPoZD?Lp@bXmC++ne-KlfsuE0 z6*$vjD#va&S+8Rw`}9#@7f=rv)e&i0|L9~+w>kg@f(1YPXR~NG`u$@Hc!Z{+edQ9kKP;!%GuA(Bvy+^oM z>04`p0$V*24z8P@-5!Ar+H<|hdvAP<3^ihc@pI?-U8FhIeEr5xyW22u|Osm<4a zo!d{F;y>+vRojKBx0>n3T1(0_IAQFndJiosnkvwuN5wh<-d`}J56W?jZ)S0cG>2Wt zN~g*Qkg)H0Z(+sj1wXvI(r+~|d@j^?(7ILMY5YnnbCnk-viNtSzFz+xy0fe93=htM zijzMTAYp5Nb9!zri14f5+&hMb;PjI%L&Kq8@Ali-*pOKqj&DHp%LK|eY|){Cb<}gT zV>5X}rFi;aF`+`h+a4JWy4G7`wIi-g+d7g}?2tpiR0kOAN?A_;>i{zww*g=tE|q%;`9ctaT1kn#oE zU(LJv5nbZ{ow^3aE&_T)QPKj~|LmcU}^P7Ic-k*;N)YecbQC&l)z5uIvVp`v1pV*rxXe|G(nta6G0&vw8~d|HHDhIlLF zs^#S%4h1MxwWk(E&vD(IIoDKU^IWB*D%153F#Yftn?dlndhlsr8RE6!*F3eZAXBvt z;8rOin|5_!>Vn?{%6_~I3URY+d&{;M=V)*&;7) zFgjsFmgfKM0paH3KW*KQJaZVwWo2ixpzgKEOORtmjdF*r$JmB2$pQ2ry9@&(7z9|` z*u>vlarU__4mq>{XixV_Q$nl*Ds83C@z+IViHvm{7}n#_F4 zp_H3aX*-+VO$;i*1z#h|bKA4`e1n+(LEiTK&i&qmPwK8_kZbeq?r>Ti_V|39@IXSe z;fs6Y-><$Ob1x!gi4F6)tXsE^TGdo+{dzI?Mt`z_wJ2u(V53aT!QLCM9l`BOfwzda zAFz;3Kmm*Qza)p^mC4UJ+!TEE{Q;KP=@fxTR^Xx=)uX|aVQdIr@Q&K4@Wa$8 z4)njEN@es-d20Jt3$v_+wdU=A57!y%j`5MeZ_w$$8(hJ)TOZ>l9Cf46Z4$hebgFpo za$686b#bm`cogenw8eR@EdO6Zx*f$lrypw!>8ZqX2+kc~>)<8Uxp82oJHR2+6kI(R zoIkl+qqii}I8Hyg!bK+w>@o2Ln7Uv>DkCEkU@n+&4nq)Rz|$w6zM8XpYPJfpVl zCa{~pyTJObsW()cx~xy8lGdjkYFML>m&?({U6%mzy?X-uq3XmTMlyRAy#2*0nn z?{Tu8?(!!REt-_A5-3kCYmNXWi3TQbirY4;*W;lYSgt>CobFsfBw{p*CQk2L$;{>QRG%8)|AQ3d-M z!^daciZ3@cao+$THWXw zfT0Y?;QUS}KgysdP})|;dZ)){KFU2H`jbJKhO7}Qr_BhlAI#kt;PNEWMxn5)W^bDq zK6r${bxYkTX@XtjUL~{#Fq*eo%Q3$MlDY%51;R)GAyy#xs+jxN(^>81@elXs7uINK z*++FIy%fX?e8_4tR)4pnHoQ|BNFXQ%F%5MrIu~2&qiwc!I&hDdwsp4PQea0B_7ft~DG)qttKIfXh3b`zHcZkr29@KZQ=(8RU0 zu_30V%6|eVyVDWgYX1ph)pDxE3kYJAk())XnYq3RTdY4b(Uyv0bqQLB>FbFe?|C4o zg}5^?i~xY~_T*>fN)TlTaE(C+!C?VUjjxYP<|zAlF@|!{tI5vJmUq5ik-q2Vwx!y> zys(}BKbEdLp6a%ZpCgGl9b!Wbo5Va=qHQ0*juRU4PYXMKNQG%c5Nzu!w)_AvHK6z(uLF$)5O|=?6AQ1!(7)5%y@$v)Vl+j^Ls~CtkH(Y>|_;w{%-qRrCexy$N1-W<-(H-Q#lH*3H<-LI4AzznhQF zgF|6#(Yb}}YTcf5V|0Gn-SX9n%zy@UjswLRrMVXdem<7k>MF|&9v$MznpQ1aGVplw zL3j5y{fvE=?UX;qu9~DL$_8XwP_`|6D0ipt=`IM`(5nkzWFTHfOmm(ux-D{u!}l^4 z$*j5WEug^BxNS2a%6VJAtH!!-FD^YX+;_)ywq%`g^skG=uFXT6-WX+4lutwS#I{|# z@;1g8uo&aGYD8F)X`FYQ>4x)+JL(1jE^0mZp12~shte2&HZJ_p5lWj!dddzDm2l)N zq50n7;4rSTI>PTk6lGsXk^PlQc#8LvTftE49v`Yl0X)LADlWg z2q=R%d-{K1(SlCR>9?Z7Ow~UInp5qV>fq{(;Z%Yu2yCUuGbZd$2M9 zphG}i?6b_z2=6at)}am(nJEGHX6*;tmb68t)VhA2Up6h=R89)^92|_;h*bW>l z5(!*a30x4zPGJU$4_q9zXI!v%1q}~$O28B_!J|2aN)V^J0sC$Jw&n)TQZ~Q(dvXIt?40rAV5D3%S~K)6*0eIMsT+)ymDvrB z-DE!hw=P3=(1A_77oNY-YrdhIUvm8eurLStD@!$%Lje}dTaSO87*cxID7R6;BhT(| z`4uWSY!yl-Hx)kSZF~1713r4a(PX+X%DUtc=-POICPVT$j{(51){Z7kxZlK&olf_T zae?`S1kPM0?Y#KO$i8S0biKr7h+mTgp?~<$-ZB?|ZF`@`)sV_NcKWKz#Vzm>I<+iN zwR*I7^>TP(2n`O%ll17f_XLOZeZT!0nQHs>|T zm)v|nC%tf`eg41}?Vj1C3>zEWaXxSadhQFeR-fD2VwfPyo)>f;A&^*+gZ71s0+acj zW8e8d(^#QI?(0zDyh3Q>>V|3d-`3wV+B^cd6_7xbh?Xl~IMc*bFoF`|#U_&2G#@ng z&D_w$*LUOwb1%d!Bt@;ZP8P$kZ~fflQu;Y{m%1d(^V~Fg4z0|K(K2bjZNK~#_DjWL zuIr9aidTMt`~mu~0U{0re$NUg@KXhArUKnr*7%ef$9_}(&06QSDuSd1AGHWjI&hLIw*sO11B_qCk7=8Q+1= zQ0(usQ($0thVlc&8OcEaqY$Dn@HK=ZGGcQWjvwf{G5f#!>0t(!@deMN?VvXuE|p{! zsW1fe&Zo2V(_d~Mo^3jxltu+#kk6f}zILCHJ)6b?<1}snB!n*|duCus2bwZ3poRn( zbP&kSjXQg}syuHr#z>v6cUc0+z?ep(J-=g_#(v(OVp3$vEM(CO{Tb7v`y2*v>X67F zC8#q6oxSegsW2p~&DZo@RdScBDs&EFsrvYaHF?%wOR0`aIz86sn3=G}MK9R4@I}wO zouQB9ZfuZ?k^q-TdgpmfC8@@MHN&2VH7IPpad*tx?RkOC37=i?Qa*4d{vY@)OWlg|2=K?Ll62U%=RP&Xqv_v zVG#)f+6`iJ#%NJEqWaH;*N#RF6DHT}mp8>(f`24CaS6!r&ZBPeagG!G zik_`wooyjLZNc&X$?&n?=ff{E0HeBm*AbjR?D1lnn_HJamR%7ts7erkaGrR>Z9b4| zueBGPPHjA(Vs>$DGgPI}(|#cm4oktuWYZ+GPo2pIM?Xq(ZBNh0)KNoWg}EHe4|gu# zbWq}>jDj%NZHM0o~6g*WT> zD`jUWqd<=1&m!Bnjvf0CNcJ^-Jz16PP}lXiU6<4Pd?H%>Ci!9Z#xyk+^0JCr5&UsEVH5AQm~ z7V^!BhJYiokqzVwP^a_nn)HbcjM*#2jF_5jH&tpE?V4NhytTe)a^s}uwxHu1CzVs# z!ZoN+dSG9&iSM3Rz=-4G4a}7THq5Awsr^?CkIu+1r0mmr-0Sy+L}Z^?b2xC}tC6Yk zI)_QM8y=>|>V-RY%MX6=(4P|7R{YW{u*w(WF>J905((D`gi7f2h*Xl8SiREt79%jX zZ%@yRFfK)hex-98)i{LqPzOd^`aEQjf(8Nyst=+co#=ESl;ZaomLwj}^oRPnJpfcO z-;WIx3i0nsOOXd36c~bz-b4QlQgO4GiyP20jtm-YnAqa^+NI`GwM$3`H&_P~c%>{X4GXT|oY2}9KSJNY;Qgvb&m;zYdk zckVh;PDp4VDkI6o1#qbMiguzWPqf4U-l;w^!i%giZ9fn$_c)GRAzq#>La+9 zh@Y&usE7(@^~2bJQk>V-P{qIJ+4+6>{?Anm=MX>hz9%+q%tqrn|L6dg&}Pop-*p@o z+?Z&rWy{@l-b+lW>bF%+>9W*#62wPzxEPrcMxcLs#Xm8`LH*#txq+bm8>_p*c5K_0 zChMuddr1t;B#C~mpw0bsyc;0T{KCVepd{+&@d|A{`5-J+EIiGlO3dis+DTJG^(N+C zVc*sR;a5YG_*98fdX<)mG4Wv%u@K=?o%yo2P=Sl*6jYCIRi6HAnXW5O5`eyoq5 zt0(SE61MmSai80NJ7eDtNz01G7ACx9LHBQz2BuHx-tD2SyXHjarnHnVh3vH9j{NLZ zl|wpW!~g|erwBv}Mkw$M|EVz1@iL56cl?q%_)6Vjx+$SfslLdAc1S+FYS`-7%>&!n zbAQ(0OHt&CYYf+Sw)I(_x|Bm)OiTlo2Y9g&h0xy^FF=&y&?A)XbWM7gM1jjzs4(cF zp#W!wC_v!TRkc{WZAF`0@6b$-EetBarXyd zPvVFXYarwW3Z8Xd@Z5`yJY-v%)4oULb5%p9>;_r8pKWb%AA!bBL!qtCxgxg7t#{5B z;|Jm_K&S&7gR&e_;M(Gz?ruGgi!PaT)roP{ozqJ!>6?c3@2cClnz22D8(erkr)$-! zON)88R1VlvC-0_PVYwU_s9~U7prc7^9E;n7P*nsO#JNLHXK^CzTyRD@qmVBX%?y~4 z?U@rV4UBTjzYPyJ-maTiMfQWa@ z+wsY$r6hHdKwo4^gMvKLfnSshUKWm^1ve;X@`|3gFHqcgI9$YBNtxp4Es)Ye3}#@! zQ37`Fh+63naTgT+xr%?T1~$9xsuan7b|Axlf(uI!GfvIw_|!X$llkf8X7FN-Z_2QRotUNdhq=-nMpx$C>R zHdiY=jiR;k;cj-1!4HdMS;6)iK4tbyRXhv z?qO>>jXqxVc}YVfMh8P8z#4vEvqZNiM4ROCpgF)TX5gbHxOg<7_@lY%^N#EdYzpi7 z&YMzh6dZXcY>dNn2mg84C?3HZ5Wq>X_v5|NIvnEWEPkkFeM?JR)90rp8=W%f10!gZ zNcTw&rf=Bz*^Fj!Y|0^Vl&734hWztCE>ltXPS<~A79jaGQ8}I>Ew~U*4r+GvDrD~} zNDAcmk%ShBWzO*)NxS9~@ujL7Dm=OrwSC6!)P>A3im%qc*l0;r=rvPF)2ddj8rfL3 zpo_YipDMFaJ%g?I-|$z*sFQfnqDjxq!NCEN+aGK>@g))14XZeSPqXIW@+Ov4VtPS8 z>{~}yAVx||ek!xAWI`vRDx3s#5f~@tiDR5Xxr{bV8>?Nma*vRp18g$|oAStovfjGz5|p9dM|4yPZl6JIV8Zz}kKZH$ka~DStR0wfLiB zMd#3wrK!(unW;QjVS}t{s;eAjb2-SIyYC~6M2P(fXoc-77bQKRex%=Jlw41Ht6Z#t zO>T{jJ^iC!#IcW)V2eblk^f=}5=3F*2gLedV$1;hi9o3@Bo*f9Zrx2gJ?nzQR<*GL zQ_q-EtoLbb)PkY?$}IMF>i1$JBjw@XAqY!+-CQi1)g5NCPEHMWKeXbat-KtzxPhz5 znsZ?LqE>}dYJB{cm$d$%1eJ$-|Hv3gSL6rXL_!}RT)F?*<=!!6&)votG?_mtn2WLK ztbxWHqJ7=+0*wUfHH9*dR7wwxK;F)sZ1%Wt*W?+Dh$IRX9Vr88&Hvy~G@oN91)gAZ za2FYH#O+jRn%iQTZ7s5%o)f9KO>{xHMY!e7sTBYLNU??r-VZY4VoY>kBQhv%d%~}B zwtCjd3-~r&=SaOwjobQbxJGm5e#C{Xl4wZf74otQ9`;M$x=l#B!X}Md>B1KTaR4@% zt~Q+2&dkp4gXjNk)Pu_%2D56kwW2tZ*rWCIz|pN~G3R!c+%->XVQyl7C>UvfWfQb! zcwoRA!|{GVVT5w!e9Aj@Q^?7zPKVZhS&-TmktdVlF;xr`K<}> z5|cj3-r5fk3t1y2w{Pb-jGDhsG?0)nl3UmgMkQWOZn65Dit>tqgk4JA4gudgbhA@trn$B!^V*(Kd$=s8SBz`f z+qKeRdzt^b*(sdifAVV~To1+&!{hCO@)BY)F6fHL20IMUkl{`}`4rH;iiAp%z*)R> zgzE=K_B<$gm<6I5+|nHs%29kT+HA!B4bsfH@F< z(QsqRQGR0BqVs_@I|;XF{Nz@Y-c&UvK%?Ib`<96X}rxy2?ST zoNO5XUSnqi=3N(<8`TMV$*uA{WQFiShj$DitYk3s;qboS-@l8#`LMn8iMqm^mUgcC z%N&6)&6k%eL)h8It{>GbedZ~*&IvWw?0n{5)j4i?exn^iI1RWh5hMc56w1?A_F8Mp z9nex~dp;*x4WywW9%%2fd0Ycs3VyJp1uU1uhLeI6=yGhK z{wh(23u`&iY#^Vw7vjPdjbE!5Oago`#wZU}9kOWxPr)-5*!L)%SHbc?m4_a^K0Ewy zIpRK&)c4mUblofN{7IZO$JV3GOM#{7UQq^NmVzgTAEn8flU0on)NFv>Y495LKU4}_ z08pux)k)HB&U~0H^sFfUEYXVadoP&J`Bj7!pNZ}q@=vK@v&`4^Y$`9K+my29Uv;j-9+$`o^yOlz0>2MbFTQ{ zbGzS{`PG*|GeGA&3xYUE*#RiI4bKfKjXxWr=9u8QXk&`BQ_$jnfm5&<-WlD}LjC`S zkVrELO>M2pA4*{;siB!CsNla{uFzr|6E8w#S`B!vX*3#^uxJiPeHaw}e{ zxUP>Wv}IB&ApEA^t%K*kd6M=YuCbuSOq^!3I{HUF2Ayb{8rKmG;)?diR0U^x`P_6G_vWdDi(90E%D$fC!U+*GM-o zfp^~TPV`atf8Qg#yZ-cnpHZR(Dm!~kZxnoWOVrGKPZ~8Beu%1J4awHq<^}xkyiR6tj^S>?B7EEFt&Zi+9>iS zM%U|9+HN#eR9;wB=(NX2v9;4mT7VL8LwfVVZkDPTRg0e}F93`~GzjeyiwKAy-x}c& zUcl2`M8fd!W)fW#`M?PDtFOQ;^1{je<#DIA5&~13f>>vN1fQurAtL(tU3{q|U&}VF zh87G$?QWG6io-Q1`FJ28k=^)E`4rUO!=E3VRh^G9Kz_`r#gw29zNuC>O^(dLH&*VQ zj*PWf;)VFQEa3&ld^ndILRQ^T&U0kflDb2 z%&iqm27DM~&f3evCEemP-0vv7JdUDNY-EM6549JOqd*4jG%QfkyfjJTY2BHX1lTZ^N7c;byxmY z8o8YKn6)RtgU!h22=9<&V(4x90dZA%rqyik4jX3E8oAF$^+r7(%w0{mGH-qeZ0H#H zjGGsl80039!3r8CtSs|dJtL^Vwrs`vC<3YzO^_lbGo2L@Z>dSAv__Sd-VmI+fTmsW z9F4m2-yZB6z$&z%p&YEB?ELwRUWZs}q-m@~jR5K>8)gXU5>QtF%lH#`GTKAX#}FHH zBwxBIDTzQy5{9DJ1i z+B_(8A&i4x1kQ6V=pE6|)h^dcvw-?z>`A8D_vHdC6ZiEVyXw;uhx}9+nZp8{0vWui zJQ8&2?RHBA$GB5f>*+fvYSf&)zMD=($S2`CAgM*icxhpEbsI1CY`e~@)wjLY<6`C= zUtt-;%QJW7`OT_=E{HHHqk6#Yq`*C%67D{pMJRsgczSV;6Z&&GxAS0r0)w~~8F7DF zXp9!*GKjwkxNt!W3X_k|YI7&|?^<|XXDK$eo=P#3OCo!hAh#mi7@FeWHBIj_5tS_$ zx!+_3CFR41_wRwMkbDkE8zBB9ygKlIG#?NRIalaj?tA|JWv=KE-iHm z-50;4S)5*D%I2s*0U6`h6FSw~30-)U)1m-wt=*npb%naw7btubcM+X~I%4yF;I;UV zlYbnUX(nhu@fugP=*pHBt0VtHj{q;4lCrY#rcKc@yWqn`lN%_ZemYKY z!y#DZbg%7a5C29@9hnl_A`=c0ZrS=JB3x>>f{vi#&6m5gi-9$*qiUqDJAA>jeA-{F z!&rvmBaJu!;G?kJfU5vL3Zp-X6^WF8#}eY^2pair`!?+2m*YyYVS2sG7dTl>bFs^C zbq&!kEgLwz(pH9V@thPrlLJ#c+KGf^JzCV%6x&op?`1WZ$ZpPZ$~>t4G_g2D^PwEc1NZk>tKQ zTkeh{bptN;RIoR(oZ;fVX#h5)EhTJL4z2FW#M^3+|&^0Qd3C zNPk^tVUgHm__87<=v`c!;q08xz%em2car1frW8zm{X}Yysl>489ajb`ptPs>G@?7!{Q zH4E>uvlYE?K7T>jc4jst=`Ler|Il<%(uuK!x>a|JKC(SLCEOi%SSio&S9Ih^g}zF< z<=kLn59Sm6_}qSspI$!_y@q@*3D5_6rS+LcN>QM%5io9Z)R@K?nW#K!yv=NfqQS76df*jSsajZe&DyWply>LP z-6Ct5CG>Z3i(Tnc_tHiq))0 zzwchX<1ru@uDNY9FV*jyaoXcvBcfgSZ&NO2NTjGqcHM~0oERNC`ZFh)VP^Mzx$2D7 zu$(*t=An~u;k~?UR$O5#*^KllyPCFIe;HqBMW4K4vUuTW&)0F?l}GE-O`nDlr42x>>zST614sE9VyZru=l3E!JXLm%heb zt1WKWWdESGz9)GHrPZIZr=3XqmsY3UPjcdlHo;qreyEX1@6f?-DHXBsaj4}hpjZvO zbPVSV=d074H);rAXnTZ|e_~h=V1kSe)Gx>wZr2LyzGG9CL%U;HpPpa1(4KBKx~;)R zn%76rQu-FJpw*kfj##&@EH<8ta>teUWqNY$tW3-c7}{-yS7s99>#-FXhR4_6O(7d1 z%x{T#NOQ($$o!LdNtQk{Rdx^G zOG1`l>(rFhqK|%&C*<1(ZQJVMTM8bmQDj+<`NDRm!d#t`C_o|Y2{NLIKD1*M+ddr< za*enKB~NcJgYg$`AEcISS%6JB7>SzT8~?VYZYv4ihv-TML^s4gOaAZF!OGIis)Cc1 zN{TJLR!7{dJmUg?3ywW+`&Xe&E?i=&{nz1Wh2zOWjrJ568$zE!6R9AAyj!3GM3xRS z<4}~NA!hQk0;)N)c(AV)xCge{=iWU~d;-A@H( z{nlOWN|be>m(N(8o}(v~jZKu=kvBs@e4F2@SqB3xSDn^`vJlCt6stDFqf?$7w5#u- zs|3S|xpNdw=sqknfaT@o4UccRnxrv8zV$IsM{5Z5=GNzk# z>mrb92Of2RmvVJR{q#!#_Y?Au4dsJE4dgRwnK8RF=*?f3y{%FR8wt!m*ca-0WJ$Dw z2=bGOkWV0n0x%}h>SAAWjJK1fEERn$(20OcOPA)b+iGcNcP>%J4TEBW{)iAoWVJ4Y z%*$dU7j5w7!|HMXd`poXw0UMzwu9v>+4fKm;Z%tkh)5&&XDY3ko8n9I8QLX=l|M#C z1HX(0;_4p7vK#i}+v+BsR26foF9qLKX{@UN84Sk~lfuX>9uZaeo_8U>VG zfyS!UAU|>E_B!jzAS;NHY^EKTFIv9Tjw$J%^2A&inu9t8$Q(IAsaqxabba{rSI?KBplSS=8zB|f^}5rei9)*fwb-l z%WcfXVvKgJa=ND6Hpc2tqJLzlc>}KQQ&UHf92_|H>0hMKwES8_ zp9=$^O}ez8$NJ`t+kThrNDxSs9o=VZ#q93v`kcM>GQDxd37dF|2nQ5hxOEVIM1-3p zsR?8#gx^fw8H+r|@5$J(_2>!289!#2WWG04tzOaqZA19B9$_ zoM;%sDu2+BZi(3LSFDf&G~HrOhdAEc)=Go>=2~U)!q%cx;{L;{CMZWiyXS{H^gOiO zJ#)YRZTWTlIQVEZwHRATif)bt+l>j?>jG=X9;D7#JRkKyUa@FgPlrYL%iXFOF%;Jg z3_y3_*DwS&Ldl81ZFKl_i#m)}@bf*l5-R`G-mg250@d>7nem;IvFk4=eOE+l)(|Mi zQXBPbt6%pcC7FJ7orKfm$izuPlrYdgFVf2qXyyi+ObNVtDYI7SXv2=urN{#-fjoia za_gRqnjTOzLTx(c&oMT*VWE@y9t)T~u%Ep9<%|LUVc z*!)OTC^7Z|<0s1RmcccMESC7^1UHcoVT|qe{>s$tYi-@3vc_xa;AY4rj7IC)ezW?f zG@~DRoz^{fgB?zgQ}~+@4WL3#TNofVr{ra>?1r>0vx}3zZWnu;Q*qBlsaO3?y-k|| zdBO>!PC}|IME$*`VNL1lahKh@$?a;z4Tuk=4q=WYSwOQ<8(D*wQxha zVcU)4gOh7=7>U(chu#=Gs}G-IZ-CU^Qtqj39Oc*ya4SZ&@sULX$qd7#h+I2jpE z3xdAp`3LPK8ylc!BEyuAWZR^Kf5?UO880PmBl?KrScQjN>vONlRj#l2Nn`~EDBw$Y zyGgJZaq*gSw{2j!rB@7q6isol{+pFfkPD^W`FGUAhM8Q7bK74E?W9DP`!-p#$Gv?G)D0t>^ENrbX0ko zF1)f3w4k?Avl-g5k9w1|-+n(PTflo>v?JLTs!hNsxGixLnW0Z0CiB}L=t&OE?<>QY zAwF}_&0|Y%&>?k7e6HcP_K%>iA7E(4tuqAS|5K*crG=@7sxED+1KH8E=nCt^4 zB?2N`lv3g@e0nse<*v{b(et^}i5>Z+b$s>L;g)uBv0;CxLCC&k-;bSfV0M=pYSMGw zuFPcgGLx5GE-;bi6&df$LR1u@VQ?=J%L7<5 zyqiQ@5aRLk@SP(TR$8=4n&v{|BATp8MW@T_D9STO-!M1cvuQe2T{^7{7uY{6)jXmqK%t}osa^>WpUpHRA(o%j&sep}&Wz7tt{J#{>+^cc`GNd08wnzeySjle>RW24ytm+N+fh)K_AdRubOP zWJ!TSCV_(le&TJ7K`O%9v(fmioOLh+krMr%E|2ATkU*LS1?hn=C6__cN5}g5-0AATZQgV> z;qUbli3uv=W;aE-IeynXvd~4A*lfuLNuE`w*&x$;3@bgN>e_@>dM5*BXkTtIV>oFV zp1ug~j_q<3)Db|Ty0h+CEaZOR^W%eod>|xc|KvT#y1X_IR~<22ZD4)Y`L_t_BZax8 z(U+*)-(9fa0HwgJ-gIi86DQix1(1*;tDIavh`S&e6y9q;NOK_=q0c(rF50Cn)kZS% z;aa=VpKj_x?#`w`v^q&v$SYd+g7YtW;=ObD^`r$B$R3ZD!xzK0@1}rYWlwG!E9)r> z<%ujqD!y_h(MMw64ss&q*Q)?ffTIQ560#&@bu}vmRF4!7yOd4Q^!rt|A623+JQkm=#pdvj<)`tf=g zLqK_)uc$~FvU{2m6I!wL@?)rLTCymvc*tNbq0Y&_nb_o3t5Sg%<2}W!YI1RC#Z`;? z0tvgLtHi}KHvB(ihxFdS&ki0u=zXvz{ob4g_(j2qgyF5T=*6uG_u=}bZ3g3O%q53@kJmL9)ZIr)<<%d#9#>kp$=d( zF~^EvXk2vtmc%|zh{u~3|H|iX!#@RW^^TeRvy8k3Go4P4j$D|aJj5yb%<2BXUp1Xx zMFXUt0{#d0-qCkU_9$X{+sSGv;7lE40b0e)P3)IFdthZDvS@r6?cHm{mP%FrCw|g| zvZFZgND>9pEBa!5DLA$H1LDBEZbjDT_qY9`^l=*9EnWS!v&4#`5lMy07~=%QDoll} z>}(J?k6ksAyxcRN*$n)sQ%XyprJJV@CqB>U8;Y*8v7TNMS}-COUue$r*6}VOebl8W zZ#YW)EJJmI1#=(hYvu#+`6M28oy6A>2Xs+b6yU1|NFH-5Y2C0K!)?hUN12Sahprla zmImWv1ny`WK724QV<|QE=SJOE6W923$)vfFtTFyE zF_Ry@G21VGZarr1$7y3cS$}z^4v!7V(r<56UKnG?-RhEID0RI&yp>9B*|?z_YAjE# z#Tg1`pB?a_bYWR4wxPUEmUUW=W|9Os5UK>)CJc|b0*GEgfd*kp%cH&C%Y|kcgWtFG z@A{M#Jl8bfvIBr*{o6x>&1Z1!VIIJrpnp;}Op0L94^qH;v-kM)zNMLo#JAO7U8|6E zWK4Z4)pZWFT^KJ6V%xCWawvWdc@POe2SFEgZqTM!qc;BQF){+&32S|d{6mwW!>M>M zDF)>0@dJIwiNYFcT*-!t34ROe&G=gDv(b_DlK{e^LfPi5l-Z*dU2~P0MK;>DUanB zk5z6olgdKa#*@+DVryy5m=@NqjqWck=w3QO)KId__-kY*2 zcw_Rv^(@<+w3ov+z>Pm57Van;p7IycqariWq_UfLx~s*Y`AVx*R9csq$t%{VEc67w zA3mh$?jIQ*9%y5c6jvQFh}!SOD+Xs{aAg_1RQJImzy7Thz+LkmV{ER0I;4VG%~zmC z6SfTRy+!4ocu;bkf{GJ}WpktuiywsUP%AIsf)4V`>$iC`tf27&KaU{;S_fTkNJ1ek zMBS}Ajc`e{D)Cr(jm=!}-!?9lK~538BdB)x6Tbs;q+CRv`XcUYOp<$YybDXPSfBftj#sw*Xgqv9b`yt-tqt7@-sdnz4zX| zcbR+ZvJbIKFfAKH7laE7Xuw(7x#i}!M*p>2>Dv{&lToV^_6X$7qvDuqr{sjr~`y;DGTL zVKdCXx$o{-kKQ3^s$9{}IFREY!epuyAkR2GKIn^Z8$f?ss<1 zR3H7z0QHJ}&QJUoVi8V$7GKYcQAfwVC4w!p@wy-8H9q6zG4T5!(+!+AMD0kVz@3@n zUOD1!=&K33?$i$2f4z^P1;PM=7*etn zOjQM;le_Nii~8As8>Q0c(|W{V;=`2Ozb_7{kQ1}QXkQ{%+_A|xI+y=_1`!@^&MJ$X*tB~Fh+l~EOij3n&%a6^6r3J`IT z&f*T4&8Ji1Or^JT2rj@}iJPQ%;^a|I%B~s1boRXrgYHE}jDnv>7Q7g6U(==F+e zr4$z~*qE9iOe@Gyk^F{bg2biob9?+5zM98gIwlBzL-r0bAdW6h6HI-!ILm?ps_jCk z>$+=;tqiMq%QT$a!YxRN%B^j~Ia1o3b^qQyKSXKXI~a911}VOthO@gqPqnMC+$Ic> z!YrIP_}6FooJsE5a~2;mjm7CHXN17af|ZjaD>o{mJyoZE_SpENhffdGX-RCy5b zpm#k`ou~dTJw4s{8Z|nTx{=Q9w7LC}-+SH|8ICbN_9O|h=j%3-lOm{20?)0ltJ$w| z2^ti7-_F%ZV&Dh>1Z!Wf5bfPm#|2j3#}m8sl!axRRd3m9(KF_>8$B)Zi%EW)8AJ0n z3&T+%V?dD@b~m`oKE$Rb{8kz6!g(qB#XnfnL%WJ;;B5P3icjSUIW~n@eO@${ z+#s$FRVGOcjf7-njr~+UXZSXX`?;>GPk`$|I}|W-3SLQrskF*_PoFj+^^MQ!>RZHb z`3sv%9#%@HL<_Qy)r)UkVq(y6J~dt1<*@O}w-5ak_+OY=Bdx2SM>8VrG6hH-=5I2l z_z3piBj^^`VXSKWqlyUIq*-@oJ1}vZJ`7dJP307dUn<};_d*ypL=m6IAyD_nA^?0e zLt_xDt5W$MdT0&qU~T$duf)2HPX;|g$*^9t{zngY{n1^XUxNb1)D04$&)qa}rhB?U zJZqZA{5NgY&vTsN`&J(?TTJ@qQMhba+QXa3hcHMi*84f=Uy7m`K zWu3H9I}vHYQQy;XWzPG+{cj(iJAK%7)}wNQ&LcnNnNE9WrJ~5XYLsaq_lFE#i2dpB zD_Qfh5<$#BeT++F_V;j>GnboxmQ%b?{Kh4-wY{f(=37%XB`*YVC7UKrwm*4-^rV)n z@6|_kat|BCPo3rr*OXq=$QR=66x}m2M5FaJaxpo;Dt|+(P{{{RJT7TeQ7HTV3*}&F zASyzS#q*EGU`jDp!t_K@?c&8{OJeMnDQ#ITVx@e3KruDt*X1oFhSn^Hoj19Cz~d6^ zLgW#Wg`-Fm$`3mdA^rTxQsP&3g5QtbJ4$>rXOJ)ay`?H=5H4sXkS?yzabWc$foh#$JejGwunM^YeUH( z%&hJ7aX$+)8A`LrMo~40_=S;3mBIe>>I)osRGR+L0c$PStJO#>8OUxkJD|k3(5msF zU+byEqaq^lcISEZjOL$}Q*eN+gU-188t+C#99)BrWy@BifUfm-I_o{H>pV1L8_KNu zSXgr+K~{U$Sce=7#~6JGeBJ7mNc1V6aajb7AqdqM@7^_kFl+o#UnvZ57dGbIk8V9xRJ$-nX3^q2?$enPwue?p2asE1 zY|-L?o!ce$Hea8coqGLD#z`Bb1%ioSS=Md6x~k{uq}ygjmNgS8I?pd~<0S{qsomGn z>xVbm4Fg;tgueK@=1cn4SHdLS%ul*jw<7VBvQkyD0$}( zI8+8wbaZrF0mkFrK%cmA>sIk=!B;XF0#uD?Nsa8%7B|h+ogUtz<05c_LfB~p3K~Ns zyeEb?b0y5Jhqd#pKWDS0iHP_tF)m7rl|5&qu|t)bwtx&XA^b*V_sU*>PqkJc@pOF8 zRw?kBf;?XY7E^zpyWNq>9-98M_c3RuwcV2BS#A|z7PWH_int8bcXQ5ag5xx_Whfq8 zne-~S1`%A>rPG30gOxN>Hq_YE6iRBL`MWa;HeHxSh@l>dD%<2(gqH?A0PCf}f$f_c zgM%JyUld2l_2AiyuvVlio$o!(uX-pCRjk5v zt`0WiIwx2I^CZml7`(_@1{ix+W;N@&ZBbEH5h>Dh+9||G**+cNaa1+WvICy1=||rJ z?oLyO;Ge_>217)ELArt0RbLbO!`9kcA%L)W>9n=stRj}MkEbgYSM>j9ptTf6TER-rW|FWS@;UMiTX$bF+@ zNzGF37C%3wQ?7CIcGwt%dhgCM`SrsjBSjgF)k;;V&BiM$ zs22||9DDjYWFR~}AUqEJqJ}UvXL!NG^7D}KfQUh7yeU+;?Cl{)T&)<1f{-O8G}C0d zX(fZKfSqbmy%#g5s}oAry-z7y2`{R1$mk~T&$Xi9Z$1x;ClO^Gjzh?bc=m9K{xmjM zxBQI{S-dZk;@mrAf|u=YN=C9G)@&euduL`vJ33l~A4{h2sEBK6jtQm4pDMD5ED~I(wNILM-BcJ?7c>^8yv_VFdYVWCu3d9A*OIbUE5RbX@6_X7 zBgB}&Em_`GvFh}p``ftA+NG!Y4h;GU&?qFJn0(M5<5IHFrMo^mvnGKf9osjf`V9Xy z<=;I_??fJ<5N)&@R3FaBbSG`j!L;OMamW$OTw=)ziiUT#Ei}0ML%pXnO(`7-8y{0C zODR&_4L5vy4C*SYA7@W|(7YIqt(uVddFHd+^Ae6Q(5$AHuKzMtk<2}?!Eo)_h0k!Lhd$(Uw6v`AWH{zFxo7OIr)s+1LB%^^4@EA57R zILYjVG)e3N$}qo|P5!m+k108m-uE}KM7e3#uPQn+YDC>C>W7Eb&&;;T&gDKDh2HK@ zU!pn|u|&UXSZ7qxsd_6ZL9^R2#Yr}ak+A{L>ZPhF*KB`e}ASyYc5D;)+o7tTOKZ3>-7z(s~uy6xH zBH%nC6-Xi3c_Y-wQq*r1N0e2RaUDvDOzSU>POT;*IgU6%++5LY9F@DzK=p`@VsM1# zS5{}ijb~U3jbGGa@=nU zH$$eoxAKR2i^X3_A%_O_LhY(WvH1)*y$j|iSEtorvhaiXm4PIf2B@_Y$JXRzW}e3q zWoSV?)h^a{BwwNmFnM{!^?X*4qrZ zmaunEX1}<@iN)CY?V1 zyzUvg?08|*4;Gg7#D%TJYiWt4vJphU3+rAakHJG!=RhOZO2<1ZA&wZ*l5IB7+C&P; z16uJem%08^5x|ifJhO}qgs~Zt+uREO~09B~D3?Bo@E^RG4yo~>nlshuXt;s-tXZ=Ld~lz@5=R<SIHE|JCDkQN?o%CJ6h+J1tjq!qr!aV1IF zJK)+r^Sk>d+X3sq@2}*U;hN2_pvnI^Q4G5?NHf*Nj^SWKA$g+5v>pgZcqJ`gViNSG zh!M1M0;395zAz$dqM74 zL8UhawqBVC07+xb%0ha2UJ%;vr-eQB+r?N$3@2M6$R64!#IWzo2~k&t_u zEu3#?tlR$@^@d$N&0tq$m&4QirXz@nM^2GqVTjgHzJj14Fu_kzG8pFG=oSxgs7A$G zg5T2)IK83d>cvSCYF*u7@Q<6o{mK|DuW2!u)Fhn2l`F*1h~?WDxKlP{?J2mvMp#&N zE?SV{{kNwk$$?<=3r(yG0T;kRAV@QClk3X13P~N~4i;l- z*LfPcehC57QDCaQ^kj+;cU=7e0W5eH;*TQvoyCd+BzCmC{12?Y%{+R zx(;xv`~H0#Tf-Kq$X*eO^r(YmC0kLlMU*lsMMgA`vKpeuDlJipl0A#0p_Isoq_QIO zod5mR`|ol+@AF(&*Xx|$?>j!9`*V+u!yoowXip|9;ygNVt&*kGM9Z4Q-1NCe=RVBz zRdvIHjWG9%hwVxj1KV4;{Jd{*ox7X^Hav+W~_G&x9^{PI;jB%peRnBi~^QT%j3opwnE|6;75ZqPegrh z1hyk4=-{hN_uqN%J-v7J1$m|9j)y|bla_P``c=Nw70S7X#3jOYF)hS9UwujI!+HY^+|NQKAk`6}&(=FyW9xSiEft*w||*PJhi{9azkL1_zhTPqy2 zUkhYG+?*uPgYe10or9c`=5m(g#1S0=2mz4lZ231|!LYK)EUWdqc%k*GqsQ+_RUEoa zZeR{;;d8>yF-&YAGT)Izc?jYL5&iGDa|%RIP_>b701I+bFPA3pffQdH-dZj$x@4?S{6V(v_6JFqN*Kn6n_+$SWZ0qm0qa7(+> z)!#2qsw!0P+jW~^;>$2;EQikk${BxfA75&Sny-aM!KDRPz;w%)vCAxcOZDi_wT|G`;KocaU2NKYFx&tk}~Id zs&Xj$8adfzR@?D)!qN{j@!pCEX01wrRK1K=FF15`L-h(dBD^bc=Ap0nxmu4mYS#A@J=k{K^iu|qY}FFAq2 z^zy{)e5m7>W&9_040;;VKF_v?hTVG~CVkUSwVfv^Oyg5a?n|LLC}x9n=zf+ z)7ENJ!{aWyJ^bb&P1!9ACX??+;RMRh5`hyNuC$6N%4~OseAJ;dh!^QT8fyx+S*nQ z24YGxn#YDWHOCjJYryd!Jibx4-9SE-FA)n~_*unv)4BE!eG0oF69wZBE7@4{AlJez z*6PJV!FXzFp00ah{_dyR$)lrIRwwpcSaf9dAT4Pg5g(ADfycW@r8FD?aw)IQ8=oYM zGS50~NhbJReE9F+wY8;vHX2Op5Fq&tYLahqma-B!p@;=MfCDn33Zc3GGE4Z~S|vhpw$%NIm|FvWUzRalHVhWBOWsglfP+gsvdp0ER?AL~>ZS2q@~i zR=^ifm=~{{t%z;yR?7Azz_wKmCC%n-m5vXB6D>rt#0s?Pj}PB{Zt##u4kcyegwv&` zg`J`H?b0&y5;qk2o=L6_9G{qvHE;u}l{z2Y$RPPRa5+isd~FBX$18HFV9_U?q<|k)3AQ3ZK|p95eICDk18-7T>x7f(T)y=5&f9YX zyL-X0vavBETQ%w=ND~#<*@TO`|MTM|sFtx^Nh&zdq-hrF4tc&={jIJ#(Hzc>%&uSM z?l6%ZYM^<@tx|N+S37CL{13g;1L?TvGetF7A2?T1Q80oGOgu0l2*=RBmc9XcCcTnX7bnP(P;CKlf%}9 zz-?8o9&&rdb8KXzE zEfl-w=tMdRXj|(Fm?#Zq69iHP*DN=RK9TJjZhU}=rK*Tk-QV`2?f#mY^b}24 z8{%fwp6*MMVx&ue^g)zki7ftk}6~sD9Ezb?Rag-REM(3!jVkEOB+$&#Tt9 zzf>td2P2=P&IV&R@UB8i@KQh-ipiMe2X2JuU*`ZtldjFnZ&kAO%$^TECYp|9F+v>b z2P!0*!f){zcZV6rlNjAL^Bz;+rxwCqFeI0Y((33n*x?^cA*v31>>&inf3NXb*=?{4p?slqaI|# zfeCTX(1d?V`N#XxcZ%#%g+51)+s@`6c6uc{k5^}UhF3a=W5%x}lzJ$CdsgdLgy>bxObp@vEn(-1wXdDD z&FN$8;)e&nQ&}H9th|eMTM80MEF&9oK@*b(^1=LIci;-Ei8KxrlDO_;)=;5J-F0tA z!Frv$+O3Z$)EkE$SbCjXerIa;y&c#Xn117Jg^Z_mW&dCZ=)nUWKqn#N3E1st2qNw% zZsOVXO?IZAY9tp2%v*83@FMDidF9mRH%1kf zo6YsvkC)7-@F5$4}5hqONUMOH@`7h>G@AKp159{yD52Rg84D;Lm zFiez#Wz1|?0(HK)fFOt;B*0;Rdm$@{Y=wJ69LiNt3YG71u|<|L>{e)EXcdsQ1ArLH z=^|Dhj%p+NR@uX?dG=;=E0?lkghQe~A+T-To~DOnzJXxbZD}>3p)%u_gXauWLj;4J zJaS@`7+_&eb#sTE4bnC{_*I}1U=DHk`uJ;d1z&g`MVM1Om4hGi#0EpkgMlLG#Pv2^ z1~N6(OQX9XG@yFH!$ebd+Vccs?Cjf+&9eSE=_ds4%vT%Fd9eO3@BylrTlqc<%W=t8 z=*h_SLZCq)oObZSK^a#9k3tHX1bFd^vZ?WfA2O zxnb~9dL8su&zC-3H(h}AjT|{y`Z*pL5fX*d?%ki47}H5*#^DBfEeyU{A!j4*7x?{k z>GZ*LSD+ppryOA6#ssD}suJH9*=*t#8Iv@%EkfCiC*EcLOxMaokk7*1gyG+yjF~QW zB&A`sb35G!-Q8HrNplQMjKf>KS$RI(VHQn<{JJ*6bH z&Flv7*zun5@2qQAL~2yM_KZoJi;bpP{~%WsEv(GT=>nqWe?93sPmJdPVPo`wn9%Q& zEuSoETW|U&82?eWT;40IAk){zsnw3%P&yx-z>Gr_ng|^qpP?mR#tD|f;Rg479YkQ2 zGiJ-(uyRR?0x|FBKg$-W>lhbfkk#RFDS>i#O}ISOXbG$oBd*HLe!$x{eFv_mre(mh zFDPz^NhJaKpGI3BY6kRD@#_dPCBN`t#pPr9XY0cJttyN@3`sL3_ti=;RW#fo`grst zfBLt(l)|fwjzf+hKxD3)ZNWSaw-rNnu zz74hhc%HP9nez~Fy51pZ#pJ*!k$93MFHMN%*p?VDDn9*yR9F%f*3&D-*Z`g{p+Ehd zEonucTAOh5++6Zs9m~mV|>>2GYExFa*KkAF-5mY3dzh5YWn2IfmU%Zg->;wNJ)NdX{ z(udCrS`SJ0#k$nmpU1~3KIs%P1USx*(?au03_kyWC~ z6RvaFg4-JRIV^q*P7m0c^)`Il`JxxA&0<^uuFj;?W0l6gTay{F{Csx1 zZIOuv)&|lYUW4jvA!j2ngsCi|px+@7Sc;@>o3i&kNSx7|?%{qNkYdwMai)HW_}St%y%V zoR8_`e(dh>h;`bM|s!M>EEyd`OqZNF@^>KI2$uG-}u-*J8|Ab_^9x)g(Wrw4+ zN$U}%i<omChx1*xWtWvA<{3E4Cz_0+PNF@9BX7N7p1S7!Q&QN)38DD$D zp(!zU=4e}k?ZMXMw{W@m=I`fUf_Bb)(}a!X+;0r2rhe=!=YntM*J>(Gew-1)QnSl~ z=~#}h?50CJ^3$iq9?Sx9@z*}`j}{Ed%Lo<`8+w>E%cB_<;;a-miAaxeqJ!1NZKY4#SB?9D&5!(nZeBDX?}8=$gCt66yU*yus^up_|GuDMLF%eU*zSmRhQ|; zM`}Tca?Mz2pr29_09c%BFn}Wx>-5F%I6lOoD2Ib4qXL;K9_atB&&6K0J8&^N{6_r2 z+d2zMtz6CUjI(e<#$cZr0fNHo+T!Al@PCj!#w4)$VDjy+rjyF&i#~%73&%RUb>$58 z7VXF{&la$G#LoZ_Lxx!;n!_{u*)JNddT}wVz1^wIRED2K{ShvV{8eKPNv0wKzi`G9 zTPpYif}(R}^NEe{Zwj|sYV@rlIWeqCpQFy*I8!^Z5wVIG?tn@)MgLn)Tg}X;=SOmb zVTppkD{8pz`>>qpp)J4e^a$(ZcxM5_gq$>jnf?0`ak(DIy9rktgD^8iN-9-6(K_(e z04>07G|INJJwWdEOI&Jb;I9YuL}w1pvxf(6T!LE|pUP|mcoi#vE=WVP>cR?#%5Men ze2%w!)AH%ZLYed*3VvKD2UinnaOnJy6A8`KEBl*GK@G~k9M6F^-Dpm7PX7B{yrp&8 z>BzmZwpLq~Dmy7grbxmD{|0pI#q+Tj5$qm;oIVnllx4EaVv-@ro$vs)THd6NpW+|<4vVB{DL6clv$kaw05B5(f%Y@wRO5MdYwne5--|9SX zi{bedy1~J-Q9+vkXHxu4x7JQt>`+RqUl}uS2Ou=?nF6Jr z*F50i9`#H=Ap|$}zg=OB3}>sr`$Cb;-7I-5RdHr>_7s`((@EE^ENY}9`UPNd4C(Ty zyQ`K|V;>OY4HFzkKU@Dcq4$(&K4q=Z%Sj9jq0kop9x)T|+nq%0kbfSTeZT>gMXqVi zxZ#d#(VpDf&M^_bE`QH@(2dae*SHp>jlLfHXi165TADI=12Z`Az=*AdnaS2YoNK~R zAK8x(G6YQDy8~V$lIOB-f!4j_&#$MlLAH{1-G}N@ni!@^;aB7{Nz~Wq&j)mfLWv|K z5}#Qs=WWF|h`i%xL45|)WbOq}D5CeguvakhcgS0NeXDS32Asx`fR8)s8ehiartAI zJe%XjYre0I)*+j6b{+&}0;r?EcAEdOlhg)-r}^qw;B7`^Dka)&;CyAr^4^u;j92OA zd%shHNj#B))riQioK!Qpv!n@Ri(Gw%1>x2hMGQPQGUa76?}9<0pOiBc94KDYUFsUu z-snkDYCh~}a67|GK{rPHm0b%yW}jf>v635c;~YGNG-2|CB=l?6mL@VuG4r?Ii5dxC z=ySTSFQ7KZ@4>*z15`kps^oqUFktrdMwDtT>GFw3liAIrXZP!S{c3tg(@tFaRWQBc zV=eEVa}?*`!x9M)6U!ok!-&L{!x|QF?5cNc6>ZraSFNn9^!mf!*h{5v`-$2H5eHLI z$F}c%sC6bvV9}Y~ISrV(mnI3D?tAh*50>T)w&`1nNb74X4e3$sMSpB~&Q66z8!p{DTF~ zi^Rv_`)PhIbez4gOk002h0n7nHoM$PvBHKnK3=;SPYA08WO05Id4vyw*N{SKFf2Qx zx0(R>Z_0-kI!|NL{`JDBxo`er&qnJczd zPczMe2Z0c}K0b;EQ>-L%-I<-O=u1w2yp#kc^Jq^k=ftccFJ(IUXlCnb$!-;g;nFqzrE$Db2EABk2( zll3M}T7VVdUj+zFzE8!Tuw)fCiLI5|LM(>ah8V;6cm&Y~X2Q>Xg&MvGJ~G$%I(giwMp%>U5y;zl z;_n{94(Sk=TOL;h8q}2?1@@IVYZNYeSFNB_FL980<8yU!G>x(rO4ApNvQ?nT~QS%deA$rVcx zHqRF=M;C3~(Bid@I(6u_A>5t}4eN{RLVnJzarc#b++8qUjCL4{$GT?|QXz3p951EM z3=y+omxt|aB`goOoKK)6mGFTI_EC!N`a1vJLAk3-qs1#z@QcQA2nh%EZllgDz zHaQdAO=K!V956A0hBX~1pxn8LR={=+dcB7Ku4_-F5v7eqTm#L5II3i2MV8m0wCVf}NS$2GXd(eWZPtxAbYQB{JoIGP?2|CUQuHhh zc@@jAkh>9%6TQy*D8*Az0&MoArw>?PY0b*ahwoXo@a>e}CyMy9pr^OdYz%(;3nS`cfT&QA;r`EseZG+o&cs?M50k2ANUL{r0U>6vXjaxaBV_R z0iS_KV>X4ySj3VE?p#`&YXx6zH>io0>ZqvDIj`y}lhl1r3)Pt{F3kCmxQCvffS!S( z2w!gD4<8`JX2qqJ^z$LIftOmbJb;ERZe|$9)>y6ZpW~Fc z2{xIe#jTn_08!(SxjQ}f&96NROPjb$leq*@d;rb;C#)s> zN&rJBoFPoZz46a3Z}p0$0W{|R1L9ZT#4J5|K4m!9wEgNPJKJsmnbM%9(g#M zr_^h0xX!Ipl$VbHpQO^cVPEZkP}zcWWH7M`W5zFNcr~LOidP|C4F`@$DRSUIwF_|& zykn!P5)Qt_bIPs!>+veiRwfoTB~@xn;z^Wq9EUcnKvO#PK0ovnPS99|<58S(#GQwj zVpkb562(Ha{4M8v?5cEO=s7)J{W>wpaJYRpsH13D#=hfQ*fVq&n2QX}1Y%w^`dxA+=ruVtvd}PglxeU90l9^?5CQ@>|YhhCxyodr1x%wTwB&(%Q zd)v?UH(u-Jo+le7QH9;THZ1>3ZlrWXlZ_z4bs2=)1g_E%_JN>*oW&p)%!=oEmx&)P zTt$yckYzfhz$k1?#|;|F4-$ebU1|DB`+j0h8amf2meeZdV&#mTGnGY~k^CLtvQ~Ji zQ(>~_#Q}=zMavv3;>yg9v{Gm{RHeO}n6a92h4_(kMMsXMTNowye>e zk6dk+RGgNAK#4+ba&l7l;&DK(Z^8=RD9P@b&OO!ei*k29B7xFVW(D(j#xP@+LGoo6 zoc%C!J0;iM?wMXoTqSq!eyLb#ayneiSn@HO=?*uYlt0cb;*wdlEcWY+5uom%m6y%M zlm32`5FSdRSI7Pm=B?=5sZ|Hv1#Yq|`ZF@pCSunDNW2J+NGd&;mwiQ6LZJL#am>PK0`8`GwDI zrI>0ecAF`?qjJuA$@dVAHcTnXXP=c<15-mUy0mi{tz*+?WD&rbfY@o?+&m!UvK*x+457L$jBvjV6;BJk$88<-TQ^lg39_12G!md=ZH z28XZx^3-VQx7VHw(q!YCRNAk4QqPDtIpdb}JwDsGH-C0!Dg3xF=XGl4X5Jfm2CJ>* z7EY_%a?&Q8YxW_t(zq#+C9!ASWBdK}rwign)g0>|syrT;Z7m!4FCb(%$aIB@`ar^Y z?Ny(9|NGmiHBj0zTiPPJv?VY403bM2H?u#_&i*Gov1K7x=*p;@$f{Kam}PN?jxb}0 z>*nQU#7E)7pNDb4CKyPDRn* ztB(Hes021)=PZjf&u(N3RbgOorZ#pNRPI#+;~-(@vWzCn=j!Ti9$uaG&eO3eMu9bX zkSgbBU(=$lPsPQSTq4860ohJ93@kA1;v}U4*2oRueXU+L$64ksq-_kDS{n*7F+PB) z74_`ixRBV2{W8|cFAl*(QbtC`E~Dx4y<7Jpw2fKkG>0}_{<5*IuI_b5$2r?OI|_O; z-Evx_69nf<-5$2@P5aJyrdoK_s=7}_K4`0yQO|@pc33A;;^X5Rv@mB}MP@bD-nPf` z6s9R7_fp*rq>nO(NtcvgUAMDoCaI$wb^zs!`Qg^KHW~9m{kEPv`DL&ocIBe@Ip(zR zvQC9ist(poUy3j}{6Zk(Otnk@P*32-Q6TmZ~}~!FD@PSmR>m0YD;>O%IC^6_XGY(esw7I^e>!X0sS%XaFp`%` z`aqoDUIz{!SYqXUr}Fa{L%bcb1NuXl%*0a+K&$+kpUB`j=|tsaYDd>HY@YK<PI@aS6y#Ga6ON!EYK?Pj4a#MH?80N3&u{TKssp%ERr1C2r~bQr~w#c zUXY?l;m=-@P6m=!(hG{$!{xEHR%ti$Laik72w^3{2UO>2H^behGKs75m-yiCZ}sCZuk|RCnB;=d*2M$DaKKsm)Rp-BQLB zpJqYantK8NzyJ#TMEkdDrqxdCow1s4fvX*P()xMg2Vmb=&<7o zEr0jlyHj3#GttwNSf-f=#&9iagcL5F#s?;i1-m5viwslcmo-^AU6HOP?%LMn`{ZGB zJn%L|3=?873WkOxr3Cfj;}Z%X;}r-DuJI^1=4#u>9j4#MkWyIKXRPY=Vu2_eV%{)ng&sH7`M@WH%g++LDG$%nraRb}D+WSe$p9t;AFpV!- zKW0mrT+t5odh112$;T7%AQHbPsXA>~u~%&xgbB#k)KKRIo0e}WH?QBW%mCTS>PxYl z=uWlxXX!;-=7JOEc)DmFDuaqkS|5hLiiIf=dXN!B*Avn@bc+yTYZblvQg%WV&kD?t zm=DRc0q+6n-P$LUUvx~J*Lc+5dVIjY#KOjg<;myf(=e+dTa4KI!D)89|2d{aH*$0L zS`DyYJ^KBG^}a~>{KFw`V(5eCpA9G`QAD#rWeue(+@R5DX>HQ9ViI4yIw6V3s1e+q z{DqRd;*PWs{qz|jkAlfdC&Sb>^l0jZXvFQp`A$s25s5{D5|96pJ6V~b-O8sG4aW)~ zl%Om;*st9cySte^oI5eui?N(rdaCxiJKckv8BL(atckfm!~ab5AGOBXvR|hMLQXOAJ?ld5BY!KO-fWv{`GOG*Efe3*$rE3hL#3n3L2}g9t<1g~W@*Vw zAV7HY@gfles_*#h1bs71@ZD--1eH=>-MK4ws9E1d`e|~kd${mo>wT2rj+Q4wS?4w{ z3H`ln<$SGDx!r&Y8^cLk8fvbG#roCX=wD|$|^qc zYdNA(RWZ&|>DrC|Uy$cf9$wGHiJ&sVP@sHb77!A04GI!ob-}alyjw`f3e5e8oiBxm zZ}|E718!5}S;C{D^j}pCP4o=jOyAp-U##04n53XuuBquAK~tI7={-=NIx`wUYg`o@ z69c2cLl`dOSYwHdjI@6!pBz86vEk**YAntxjmr}#Ab9_?)m3IV#PO*e-u2E)l4XzH-hQ{U8wf~N~zQ1h?3Pfc? zgHc=liR$WVl9Ttv*E7Yr;9{@Mfb;5>znO1oyk8%&ZMQ` zYMLE%bmZE~pb013rI_{I-}6i(%lit(m#!G4{S1b{C5$oK70||KcZp(TWYnhwK{wnQ zEG#W=*s&4XGVY41nhx3%>QhcTXIHl|CR zlkyhurGRzU3k*(Fd9vmchKVU@0i!Q69%Ge&YD_>j=W27o^;1u15hkWITKJ-<^R+t*w?F zPY*A`v^(kkiCn1`_!sf~*Y$efVv}#pbnms+-I?;tpA@ zYbA6J+pZXbD;@(1zn zy{~U%K66L7CWDvuW>DOg$EfW8-SWrUOBtbW1DY z(MS%S&TI=QiRsEauitFC=^kPvx#!tdOV%6j>?6vk6+j0Ig8%yB-2qJM_`5!J*a!kR zgRGycGL#DV8k0DAA6c}St3ChrU#G<{+Pz4d*>a0U^g5B)K7~UHzlUn(^%1CmLelrk z)Af>ngP{O=e6Z{KSQ<=S@plLggYU0EDmMS+ZfTa4!d2H$a+40tGPt*{v|9xRsQ$TVC0C-nU; zB~&9=0ShWuY}b*QA;cDCNh)%V;+8{#+^hHVrH1rf&Gi8_UC&B6S9vh@?aBTL=ezBr z#r9{hs)^SK5$s&}^0rh&{9-Gf9Q0p(-@duPf{KjJ4;=XQq3k^NWK#bMU@RmG0%hy< ziTRv`veloE_&+{9thk5;zAuW*8O@3pna;LLM3*d?%Ja3nSLU>MPJT)@({O*>)`)W0 zTjNe96QdvR@Cc9*yLrbh)T&9ZSJROaRpWHLSQe9CD<&y6_jcpu^8zH|k0ihnIT7mkE?ks_WAtw? zw@nST1Y4dR*!*Q)(}^R(G%~Dg(fL-dG|QcHB~>6yJb)Riz_MlPRK!A}sYU?=0vaL( zfQAE*{0ZOy2Q>&gbGtsAr_RA%6Hse^H4w3^r%#W!wdDWr8NjLme22STYZ3r8%h#6d z%3GNsMJ;Q0cDi@n>E7dX4Rz4pwyJGgA6MF%Za37zPA8#@xZG88=zM&Cqv>>d@|dV! zJiq2}ex}gfI|`1@(}ZDf)J7nLL5;qcdggKT*i{w{rE~X)zGwG0l9(A$KKL5kGG`i zon8oVQ=S?UiLD*ENt@>cRpkugBi`}Fmt8Q(k~hgAB0Z=yFqr>)j|y=Mh~(%`C=|Gb z-FeRi7y^BS2`LWrT$P2UQ7Ez?m2GdOGg`R4s-o;fES}9W)P6|3H zmh>P@84JP~p=4Q{;TGFlx&3j(Z*xag)h|VkgJr!Jg}SmMGHzY(9k#qKFu)w9R(^QH z3W7gLBpB^*c!^qpIJnd3qZee0j-SIR5<1Y8U)@~+Vwp7n0Z>(@>Q5Z51sa0#wJBt+ ziV8Oc!@vTMmqG;GFR(NHAA%4~I3(c48M~A=-ZfcFKej&HYt=>NakY!3>r$CdNWA=EdlQz@b8%0WA>zODUWF)q^m@_aIfNdkw3HC2w6$r?lD2!@SQZPD5E$id>l z(s&g(!*0Rs3JL3ImH+{cLU!8oey7vcu&}Tloh{ktuK2PqT2I|3KV?2Z8$I0Sl5_ZC zo3ZN1!0t|z4(Bdh=!MO8(`}z)Gk^9Ge^!t~Ojc9E8Mj%`9N(WW^ms|IRO0!G3b6Y7 zcQ1nv(4^kT%%p~vr^BX(0>LwcdRrkfKnW)O?-orZ^i3!~arlA@1b}9UMJH7XSE(MC zT#3=0B{|!#zUe=3gNJo+mtEe0r|+8zb6l4L^Cu^hfu_ev$Q@&l5$nI^mdkFWy=H&1%^o^@D~$kPr|W5HmG$Q zUx#aniHwiOMjE@Hlg_U-!$-L@a&Ps1u->Jz??7K9{p3k1#OWH~@}>$-FtqFH>-|9J zBDpQ_vXK8LlX2Hacl=p#w z$qBgCNRlJ8LTDM`rkU~&L+GaxvuWb*j?Tnu-3zsO%EwIO>l9Z}k)p*fZMN(i*ATRf z|2?X?vP1E}{<7$BM(D}V&M)bg*NjnqI-$*k5xezCpN-08ZD|Lq4ehtU znNwijpUqxzd`?dJA09SIKQ|9;&itBw@PZs4b#As_y*_YmZirb2O#|4bXEi&6n6c1b zeL516a{t+&(d|H~rN>m=tsHL|oXtCCGs2~nb17^NmnOO}uN{sw;F@5#@Rvh8X>~Ge z=EpNp_3#hg_Dyry1njZdT7itrx0G`+psbo8B0oPS+T`)Io~dOV-ls4+ZS%N=Ju`= zKLTx-Q?BqwryeM3UR>^FCiq8@b=GA4BiD-jcPhIV&m4=Sh2q)4Q-YvjPNCBtZIACK z#$UO>lnB5Ib;cq(q$-Q(S*>!`EN4#?*E(-dWTv^Rb^J^rje@+wENF?LYZQU8PY{Mq0cDXfR?(?JG{pqE z_l3dPz?v(#ur9xBeQx|F?DpTA8RfTbalp(JY!hN_YhVCd=ugD56Xs>L;HM?|hrvoS zs=7OQM}*BYb1BL(5=E!9`|)CuZt(G=Fc2Q%@CN1uPD_*F<8;w6abYpB zdgRU88z=t{730MOpgK-ebEHA?!UJQcJMRm>cDWX02QiPZshQ|k1fFG*p3Y13OS*d8 z`E~|vWwHiuPfKoM`(CShn(b?qrJr=hQ-z)inTUiPU$L0YZ+7y)+yIS10)R>#^Gi#l zrTR&*G;TRO8Ko&C1fc{r^{8zr@{X{Q8MoMI&O3TkKT|LHMQlny0>$X2z6oq;e*V-4 zO#<0PegJ*!C0FLfi6n4|uro96e1j?;QZynQC*hzD4vUd~fB{+dU?$f|@08m0-!MWT zYElq$qHo-|kybMBUTVs<|7Sc^z<~bcSTq8 zkbZprn@U(E*wfHU)Ecuab9$^FKoz-S#krU_V%-zcufDvr1_?(lGH+lX@|PNh?M zRh3?`!+rbl*9+Zh6w4Vj2_)(i*4RkP+3r`c6tENvC7)`MXqhX?nyitU!pCea&yuVm z;F^&?nU<)Z&~@vU$CRh!Ta~?YgMMI%dV0!|uRq?u9lkEP4OY@pQvGaFE>G-~l*SPZ zWp_rftSN?yi+cKL1dS1Jbz9zJO}=Q5B9JGYb?cT~?YC?FJoKrW3=`x_ySuXh#(m=Z zMGxlx5MX<*iPf|g2FN)wvi9_uGk9sgjD7U{{8SN_T>wX-ySs|GKz!8223pLv<LrH+L~c&##)SF^AWO^cHiB`gh#xyzXa4aW`|WJ1Wh`d8BjDQ=cb3=FH^DIR~lV zC&tFc;?vVr{+$yg6=;q}@JdOwOu&c3{$NJnSea(F5TR@zli;mjXQc2@wVBom%Ew2i zSJ)VRa2yI%pEqd_T|W@os=X~QbjRYU!2z7TL|=|&3A*>8;m%DWBioFcwv60+1Q8yD z5^xWAd2TdkN62R_%=?|!a+G&*Q%H&nCVYybU(4SB{6Kkj?pB<>#QxVUgQ^F)pM?<_=A+PTyqpPd1Njp}2KT5%TwLf4xt-xU zPXs*$A=CaFR-88;YJ_Ped;$m+IZE$F+FFNiKGU_Yc>dVhu-tln`pr}2`=5K3H!;Lo zS6ps7BtP52PvQwS9QsPZck=hWj}1{x=HxpakFlZ~-#@H7yVB zGD)abh^or-GJAVaABm5OauiiKg(&lyz!eS*v1R(|k@Y}^mFx>yNPPf&^8t+UK+1T0-=REoWjWF);f{cAI-n;F zR$l-n1{*lEAXgfb!xWO`Loz!jQxuL*iNru&5M=k zb`NhQkKU{Y6%lwpW(9z`^no5j=hFJ+OB}o^(_YZY^D~-ThSiSmL(=EWZn~}E4!F1J zjzLz$%WqYrTBMQxiMm9X;W6`+fsZ4dIajD&baAj%it+ zR<-`%O=9~B+}Pnx30ur6@5y89Ddpz9oGVO1<2k+Y@?qo-7kA{Nl7K}h{a^hKP9%_P zR87Yk1=PSW`Kzt1#Ye)W8vz6wPZ{)g5dC3MWgmXOEi0wN>!KRR9K%|INv>MQN-w9G zbrTYio3tReBo_}Ze<-<$H38N(GGqV;D@2B%2IP!3Cc)bn75l{2C4DS;x(wSK@1hFB zE=yZm@MoI&SiFZG3(t+8AA?#3XT}y-2;!rTppj}^f9y2zQyI7(ycAkx9Tyjun4$6@ zm83Zsuz^sho7IXqE8@Qb4yo>m6Z2`whQ|L|>FbewZrRJl+1mF$ya5w#oZYC{Q2pJN ziTf*SvCAQ-mNM@MxEh2&aUN&2Ct&EntpSuWoQfTf0uE=%0Fqq2dUU%a+EKhO(r1AX z3iSd+9FQudK-W99VaQiiP3~FNDCBqr?|AZTcEgWa|k8rn?Agd|72b%J>HuX?;n$&A7|LB-@P(dKNBDJ(lt?y$b)-}uxgJ%=`=$Bds67ybYH zIPuqu%Dc#akw3h$_J0!^oNMG*x1N6Du(pvonl-o8wyByIW5|~f~fA>87Fj%h$lOH`^T90_zC@; zhy9&mq+l!Nj%BCr|9!OWF1671_9wPqs+FQw*QI^)Y{m`Qe-zgIQU7-b^M$Ba-?Boa^zSPDcINke;jc4mp^1k_hH5>OKhyv$Zb!0N;*$B z(3Cb9g+xbZtvAy@KnYHFSUlL(L2+D7+|U>~y)rkB1~|082QeSF{xs70pdAz5${Sm~ z7D_fcZxNr`r{OA{MaHjO%&|;`zAduj{U$Hsf^;{eR8YgQ@n^c_dQjZ(FBO>&#SHC! zIcEE2SZw=Z&WzR7tDirNXJXkKxxIdE;8OkL2Yso=Y*1&Xh>%dJ#V=Cpi`${1pz;v; z%Shtg-CaEElhOb2^DUkGiz{16I!krY#^8#P90_DV%EfJ*!dnZeESk2cgLLYE%0_aF zr|bccEwM`x4DZ^w{M&)N#yg4mo0~DE^A#V`y?I8qZ^$i+da2HyctP=vo3$4g*r$n) z7{9(m_h{?sHDp1=t?R?n9<-2<924F3i%j1}K-s|yL`6CzoEC(@Tw$42H zpKuzKOlX5ZW@_i2vMCLE7p9N{q^7%Y0P3GmrZ!~0e4@&t4xJ$aTRa>@N(;l>=einO zQGTa7lyf`D8mN#&WB=9G(~fys;oKp-%+J(`zM8X;SFm!HMYHT%)PAeisrjJ8x-2mG z9NXR+jLaviDQ?r1!=AvdXkxPV-ax@1pAv5F;qmjYk55*A_ut;}aq_%8d}oiJF9*RQ zdt;eF2KDN%Ew#p_B(;>3p3@qBmaQ?-6Wtle}h20)OB>s^K;xQ)TndJMh##6 z-^>^Lh#d5w=b)aC2~bBzTKO0Zwp2B7DIo z3|CNQ-IL~EV!%3YS$Wi59CL{%?BQl-KjTe;jU^v5Zg&C|^yl48jj!p2$Q+eCZm{p# zhGgEoLwk6byHZoSrlaGDy3g;6yV1%n9gkbm%JSv3d#J$06%w1aF9`}ce>gdQX zW6%^8idmR=DQx?XbZ7HZ4Z_E+h>Od}SXjM#pHjA`lc<_%Zg1n5ZtH^^{|F_*juQVl zcArCd%j5iUFvYZ9GsGzZf=&2@zQkXWtUeagU<{JC+m)PV7`h2 zef@l7GO~f}H+j7jJ20c&;>DL~u46}n|83na!VuUJWpG&?1-8B%8sE2Zz?2~nKN zY1~j-4G4Gp{ZR+mRjzU_l-1UHE7?ioArF^cz>}aY?rYMyleNYDZA^T8S}~8;B;F(( ztBZ91J5drALaKbY05V342LQqGqm7-7q4D{$u*U$WixNfC_jNr%;1^le8)o~!6KgCw z2bL_f?*@%2v5)8yJh=xH)c2DGz`Iw5mH9IM6E8_w2^e3o)8Bj%EG#Mc6}Oq=H1HX&)#*SWJle*AKM}8{$3^;fd^e4mI4rn!s zhCXH^Zg#`1^kL#lP;MLr1$)6Y%A3``jbo}FG+bC&AYdHuz0r05#Qd|BtUc1lm(MdP z$L!mAN|{f~QiQatktaz6Q%rtn4i1wLrc)$6>sThPQZm_2S!d7s(2^1&o4o^K{}goi z4InTtZ|-jP*YnI(0IOjOT+o$3Dk<(L?tcP3glX65p|$iQc4yT&Jl~p0_~aF22-F>j zjnIy(`r^%sL$eQ{wA5#6PA{ybg-KoA-5gZj7k4$=4M-@H zQSU--`pn>84T1Qn=p=b+o0tS(wHV_kRnw~7+x&N?jg?S-S^9`BeAFd+2k(3tf-L0Q z-Md0{(p7Hc{DbHFzBOvomr$o`8|y_pzlpVGA06|eZi znj8(BwIS_PNf$;xXXB)#aHv|W^qZx7h@ysf&)Fpt4F`wi_3I4tL0n1O_kq#G4MM-0 zQ;}lhJj^X17%V`#lj{asL;hDY!JT>NlDGP-tZVxh7Z=$o6t5yiTjIOQ2Oe`t5a08C1 zLc|?jg9q`YsXyk88-#y$0qwn@pSkTGnjndqy5JP+;5uP^{HF|SDLloO=+5pxfX>Z) zS*?GknQi4izNM7w_1|ECqML$6y&l`Tf6pQ{;-~R9WlUJ(OcfyD@N(|=J6nf9hT-*l z-C{Mjs0QoDk^h`}n-`J1jMk^71|9aeYcbWnCF&~aq{Ql@;^ee8H#;>U4ibN$?#7cKDk|`lBSA64>H;n@g8!6 z09+?O-PfHS;h^;{u7`juY9Ap0KlifiU`IrIdvJ1T+H^){i^S54+CtzRwV_eo?%d)N za&HKYnGHi+V{{1UmoKJ*3Jc~rL0Ci?*-FP}b4w>IBMCKB^fnge83Hux%moi;(L0pt zVIEbW*H>xe;5QrFf06l|*qU1wdwQmc>v>B1<~~!GYRzxILPfmqH^#*_w4|bc{Yu*P za@9y{2iV3j>+o*|0gI@r>dxWDeKtNm+I9`;%~BMs)0Z;PsXx`@f>+ZV2YXI4i3e+r z=(yj|qjc^2&vX(5tP8l`s0}dO$yCA!iiZYHi`3k49UPpPS>u#+P zfF9&29UdK};o#)Vo&J;c#Vre_t}d8?WlU!YvV~e!X8pnY&2cEL$;5oDWmjn^O;R6_ zLSMG8s&vT~g4`u~3#XZ;2G~_n3jwrWE{h?|SK8=O6rZ;^DSV7E?0I9}fMcRaBLH`Z zo9v$DA^CGd1UmI6sji+Zdg(@D5fUBcogZaTud#Xb8BYlV$IDxc@x>g@W>RNl>_td= z1l`f`C(Fi`D52+dWs1Q;pOuRsK^tl!D%a&tpWbF>9lGhFffNIilJJ`}N@{Br>@l8H zVSA>m#u}-X*U0}V26vZ<>H6B=f5d6x3*O&)IT{IJ2RMhD1L7e6F0typTUSt%Oj8!qi zQRKNO|5WQwA;#3sPWKj>iiYOx86Ut>&Sn|pClVB`0oJI%=z`5DsWqO`B23_)0|0{}KWS(rNuCjCzpP76nW$as+2+W5 zr~CV^&D{gZ)~>5+5#CW%P%Due4`WEOEc$UPgpJ*97HHlQYN6(kC6?}`9}rPfBMuX ziHyk`9JSGp0sZ4FG~|LuL`Ny%g!#Cr-epYPELbY%4vE|^2K~=naAQq_t;P+$#^85L z*U-Biu?Q?P6aINm^gWXfU+t1{!TUvldIN!EHZNfj7=7!!KJjy6w67$`gU_~@vPizt zBnriJ*CTenr75GB15ATOvh6tf4Vl|w=PSxvN`}{LdNNT;;mWROgE;&!uc>GRd|L&_N@;o*7qR2x)4u=AMZ_>}3z47Q ziBskmV-M&-IS?)~J@4Li5(;$%O)?d`R~>gr}RE_Cud-eC93}n&drR`G7racfF$l zzn<(5OKzm2zU%u-c@Oj2+1Iao-_W#h14hE#psQX;$=Cag^!fZSnvx>;mWJMb3qa=d zPYiS!M&`rN92%rlQ|LQu8_I?i@aJuQ=UWw*=)%wIRIzPTf+Vv;DMgU3EJv#aj>(z# zRGxe<ObRWC4HQ7mi7+wZAw{PS755C@6svuwG7FEKhOP`UZhP-{lvE4E-q8r! zQ1&b>;ijd{ntv)KAR(bUfOh7+Z0gUK61YQ`pN+H?oyt@-(PG`pSGC)Mrvd^SZ%!3% zXDx!FquWnMBB&X&I3HF1?W3NMH1nti972?8J@{TDO=C_^xkO@Ub+30})~h>gn$d(p z??m));EL{%P>vUq#-Te$VIVGVd>*ujsf@=L)R9>i1dx(5!n@tc!rEO0_cY0nJ&29A z^c^#{ktcJJ9bUBfO@YI?&Xvww0@kO@V;G&>7%?sRg;sL8 zvwwqSeyZ`1J*PvkQ#Tv3%>GD48QVr??2v0+(sB>2s_r=0+_@9clI<~#FR6ZY;yCB^ zMuEoIVOuHczN@0v#z$8}^TE7BYU9x-fe??{a@bC!Nbm;1i z1XL97&)SzPq8}bsijt9%ny}?hYTf|<9Xy)jrkW>+HhW13Cmw0Hrc)BfB=APqr`!4X zn|EHxv*Z`5Jc)A}-WC<#6X{(LFmt!yFv-T1Px{ctd26jPQKN!*{P1-;bJb4e*qrr|&reUN|&{xOh~2y?5$Gh!{-C?1C4=D$hl>9_Sc4v!92&M(5-?m*R? za9JZ=w@zA`YKxUs?UdT8g6<*(G~X!foniyzSYHxJh-CbUil{`?52s^)I=t1%LN}=K z!4r7Km3in67%?s8mEpT8e1{*3;sj~iCp)vhfe2fY7z&COvbxdkM)f&2UPNSZ3hYzc z@r%q2;*v;?z4{Z@k|gpeXwk}2powH!x?H3P095A zQ$$oA+mdMEP!v70PX>r@Iz@hxs6%c7tS>7Ib8~%Wy^!i+=QuBrThrIj2x}KTRTHy~ z!}+&us*^9fsv+fN+yh(9Jb{r$Fa_X!LI7v<)OGbNj>S0Q>@nlgs`mPsW)xJlhtv&ExlhN9835w*)V(tU{f<@r#UWEs8J68q!aL z64XT0$7pq4deJ@`@w&~T?xi^Z{UR~XWmhq;*duC{1eW%@V)DlKhtCC}s{v8pNC=Z> zU`3UcU)pGCG^|%v*|h}ueI`~HX_x|fK(#f4cfHfuB5CB4$(H1GYzSBlf+=wj*}6&2 z(y+M&_B36zkw7cEf7V7K&MXW|q0SmZW<2zb$%e15K2pm=_L<59Q0WY4rjuHb95S~- zBOhbxLS;i+th-kh$PMkXwDTdz#}&E-6_v3SoYBSag7WtCC=cy=t+GVaHLeQ974D5^ z`21VIeA%Jog~cA+P`FaZPVp#eBf=Td%0jL~ng1s4)WXrnff52I!uWuA$BCzWX7RYZ z>3S&DJu*s6=hj>kRPBnVGcawfNoVCdMhQ=XdD>5D?36*Blxz0%ll8A!v#@-5HyD#+ zevAh;@+v1038#F4uUK@7h}&Klvp!+xW07A(9lK7HzaBL;b?6sCsV zQ1@W%ltcji*6*_Eg`(GoWF<+|E`c)Hs z?Ty9Z08R95NAu`t)!g*#$w{e`PUWa5pt&LXmny^XGeFn&PDEwI(LLh-oip@WMrZ9s z#kO!wb!=E-l7lffqbC_ZJYb325}H|A%;kT+R9a^__MHL9FbKdqoC<+g;&)s6Oh?{i z7UwvL4boUWE7cn$+v}Mv_;d&_jDDP~NIm)%O(P!w!b$dzCOXML1^?Cd`f%4X%L$Ox z#EQJ-3%bnd?n*Ib7Ao4A3`Hkj*Z};8AfJ0;v*B6drG3C%?aK!Wxe`MPNfL4MQUKtssCf!FA^LB@yVBEFWHon%SW%S6>fnOdgt^y%KtX zH_15llU9n!nsUL9Dp|Pys8%wjQ-h-A3OpSy*ng*{Pt0!ThiPlgm88>w9#-9^&E2I_a_VHi6@$b}#DCk{HWKEdlZ;%mY zKP@aMSJqFs=h7m()SaJ_*4Jwy=?&|D;(N{zgs*Z*ML6Hvkc8)F!EdL8eMp1vPu+OH z&|#j-^|f>6C2IV_qD{t7jmK%@4h-WKn(oODalFg{gOuWee;^^{xt#uZOEdaKJPxeW zoSN0PmLOH5nD7QX_Gn|&pB!0}qdz#b|An?GBVT@on3MhOnG2#=v+jY@}b@T%qL?y2xkL5ZeSM4Er=?Q!^xX;wf`t) zP_xjN?Eb{`UW{$?LTg(1l$`<8#O!PNyAPKKB2F?j%+RQFI&H@#mLwk(4Oa4h=Vbb5VT1`h({Yyp8mv`nE2im*~BC)!{HN# z)BFciFIJX0KAgQ-2kpgH0{?Hk5T|Pecb*5-BwJ?JDk6>^;Bb^-_(}%ZaFj`W@PhDg z><7$mnX;JfTs`F*)?*Z%!L3giQ97m}!FMiW8Y_X27nN}z(Pb5uLduob!!E9J%SV?( zw!V%l<0dl}S&=<}T)I7MUSG%NEA0Ow*rfOn6)GcOxKAHka6xq?^d6ier&0hE=g@L}U6<(TKNkTQMvR|6@P3s+aY-xs^7vIs@^IY-E z+gB6-5OZa=QQ-I}dGGT0@f#jWuYDr{%2>GRr{>m^%-cUk+8gH}rWP<+UJ}G&(onFT zA%1yr^{IPsZ%^XSAJJtz+zE9ZZT2+DdtRW?JLCP`Uu$KI2ENn~VKycMaN4XDqs;d+ z6pN=47Wm9G+>(&@PKFwl@^!2xY!u|=h3$~4Rq)f9z_8BKnG4`_U}|!f)nEKpII|@RyK>Vlt32O+>Bn5?`?s@#4h4wDBFu*>!D(>Fkwg z1NNHYZFd>rHOcJyB~|NyUOw=JSX5q6JtnSgU}hBAn_L#6o!sb5!JMi3D_kFa^}nscJfd#QI*LC z)1%Ny-j+*kX>wY%>#^eL`#=+e41xDB%)bZ}Qq6<|^dS z(9lF%z_rbk+iOGZc9(k$qOj-FNJobb6%+kmd1sT~_1@Dz_4aJ;d0=4pIXHpU*2Tm( zzyG|}FjgoDShPPOCnY8QyM-MNF8t{VZ4j#*0R(3F}L{#7QSHI!#iOWfQklDUdrLUo z!dGBBl1=C!6_+#wmj58n#q5{0d7MEY$RhgMaDYW5FyX1+nqA#6?kJ;V_+_ayTUMi5 z5?MW}x63!}ugyuLgu}6hk)Wp#hSA^QLuys;5KwdmUNuTXy21o*`NZAmaTXM-j5OT!|0&v2|V`_l^K;H z9uY}Fn{0pT_x<({H!kY)%TC9q0?qnE6`0f5dEXFY5lt({e&vi}XJU>%N|2K`V{f9C zv9RK<#JNPQ-m5XDOx^|6Jcv_554xC!(u^MAat10RBda6#%jFvdr$_rA==JpUV$)LI zW7|9p@Ygk(bZoYret){Ku3~!i{d+;hehp%stfMO=l>D_+{a&d@Wazox2JRl00q5$! z8a>3oFq)gdhXv(`8sGG`0rJk(%gXN6q(ebZ4MKqLo7_#k_!NKw1Ax7z3l$(3O=uTR znGWN7vAk+!dfQ&KBifq{wF8qswLWj?ONLJ*8-pg7qbG8B2zNd!custZbQ6(Ht|v-9 ziX*gf3gow^qaZC{fqS^Huw#=jE`CD}x~Xt(iVe+*9(*izDy_@?hkN{|*;3S+T&elF zn|c}wNnj)ex^kB@|O_Ps}f3 zwE7l#$*#xwm{@G+jy^*KzMo@@YJtuE&QmVPHZrs$Zw`_`m#@jh-_wQ-;7WTf?=$r_ zq0xWI{GPK(@XbK>%!O0N-Hc`nxh*nuu>Fk!^3y(QrD!Bn{d{;iUY-yWLDAewSdQYy&reMD-5X1pY`;}pO22l;_gPXz^$i7 zzBE^__vBK`K63dUuLd6K9e-Dy?isy$eA^Dg;RQHzVahbI1p|5q7*YS;4fiU@#VfVHsZkWU}W_vY{UxidBp>X5wnT6+}sW*)C zYxH4K|DsO!zQA@$aeSlLkP|6Y#0|;xbWi?|Y-A8jub@EoJGn(-{qLc;>X`IBgdzZw z36A1^slrtt8>q!dtceQnNdUfbCQeS8O&o(GOU6t-PF=9z0a4yKrbjLCyDu5? z>Mx=llOVGMYWasoW)Ydd<_*Vwk^$5UqP*BSepDh^^BlQnVB|SL zXhHNfa>^juk0GjDoy!ZZ;f$ z2Oi~^m@dR-a)!(El$5s3UVG;}*iZ6Jz_7Y%Z)5?AQTq6hjPGSrTKy--)D(0#%3Fa8 zY;5YZ&dyV(r%epUt9*1o`Cu2EzK4vA{bM`jU+@zV*YJ<)`I?^oHJIl$QnIix!*kEb zf#+U+bQav^2!+v=Gq5vyPj1ovl-&Kw<~_yFV_2unHkt*@X%snwFc+JVS|aL%l|fAj zPSH+q9$b_-=1Y;>Bg%9VK(y+hC9B;=5qu#@NGgqK-h)E8JKafH9&5~@)89a}-dNUn1Wbbd9FUOvoO=RyUZrMz7K^7g zLK?<*U!Azb-p2u&UOB!CYHk63cgC0PyVxhx6$*r{>N74f)Aba1AVHyu@V!wGtsmLJ z{iu%VE$N|Jp1i{Z3AGkR2#fO331(D3sc(XD*?^hnZ+EczH+{D`hH zhW6F=jf1TqLQ}9+KU)DaTe{%WPqh1TCdlkRWnM#;-frZ}y8vEs`%1!%-Dk;!p&}NW z&pQvM2+@I&jjp>g`@LsmV0kAs*Wrq5W;AK!)c+k>69LP;Pake)cr1q z65irE)6Map$vYN~J{y;dyqs;)viSSH#{H@*I}1k8{1vP+iDmJiB{L^z4tr!%gtH+7 z5QNfH{n;3u0iXeMV`GVnk`|60LQ@0rTt&NbXjaC(W4&@pMF*gR02_r|l&iNa0>`z? z+-)Rrqb5DW+w0~Thf${jPYWJbl3qmBIO~dQD=sfWubF?f;U(pbf6OM8jNA!jYDU{* zuG9{m&|v75sKIS9HkyJDTVEYL5hqvg42>xoPAOBP7N8;fs+hLU=WQLLD!)%*5Q>os zGCQMe?N^$fzCo`O)MsKZCJ!hq$#B?o)4TB&phN{KC=3Xb3)+|x+~CP2I`KDInPS@Z zp#WQwVC)u$2XDaCfIA*cLSICF*L}A20e_Mst|LxqaR-ZU<)8@692KR?t#Ki8p{4+|@z=!eQPZPOh+`xMKrvZ*PLd_*XD7)#zy1PWn92tzH)G zoXn`S8Rp2p-vp$b2#b2-PvdZL2S;oT>*fVcYX=%_DG+eiHQjy^(rtcN*1n-0`DF3Z3r8 zfN;qMvd9@uPF^gGc4Frh{YxWW$`aSeDN4q3QwR9 z_k!|VEN=+Adv=A^{OKyJ|HL4!%AjcZN8AddiDgO(tMku~VNAPyY?Q(KIe!gD1stdU z8g-lsAdni}tlRF2#=ZF|*4NmDP!x9@=^ecf-_fwnfy1M#fTSJW$VUVoLJ?bM_hr&R zG!mr10h<=?z`Wi4>H1*MF4|SiOT$N2pLx@qVdUmm7@eu5SsCKXXTzeDE539rk6lXp z;RI7ZZrIW3J6{z#@qdq?1@CYw=H1bUBp8Q)W>ws|!34SA;?1GwP69p~Y_5{ta7mk~ z+hGOF#;ycdhyK*#nZlLS6{`>Zi&iq!#6M_+wH+Gv%J3o0qKJm%pYq%L%F=wUEObu; zLmM=2gKfjpF0J!vw)t>)PV@_kN-m?CvggNT@)_^E(Yn{U2xYCZOK)cZ0MQ2q;-H1^ z?EP+NFpH8s>1cF-MG`eh#8oq@<5y`*X3WHKG^Dr9GBS>JLaSZe64}|8>+-Q+Uu&vX zJFaO(!`9XJI-KL!!;?S*O%c2OiLjQ%SQgi=Op-x3vI70&+<4D9R~A}gZenE1!NH2# zaTRCZ3_X(wFYWzri}1yw9X+~5d#YP{M4fu$K$1fC1dIqUcDp`2jg_{6jRf>aICWQ7 z6NlH}^W&W>{QWjr1UorBn2aXECWH6;UxVv)?Z6vp#^!b>JWBA5Y(6y9Xt=c3@~ z|IkqUu+P27)bk?x(joDC^Gt;FVcK4}sbmR#Lq9Pylhm|Re$w2Za}jOmAjx7>6PyXi zqYN?8izAH;b13gk+X9-bk)|pDqc4L2Tzmx)=zu?jA)O~`yf_63e~=eMlF+_qYoai| z%%^+`8me(c2ZK&MD$curDM(1v{LRr!SyX3J)_U=@y|hir3m=qR6;ODpf(g?mB0!HS zxW`@bFeN@jXtzZ+=0{k~_OlNj%K|K({$iLa`onQ{BF3?<;!QVhbX5N23<3`7O})g_ zOC_q3{J+F@(LTJPcgikl`K^_6ev2EJ5FtH3BlhfmB`w5Ax*231iH)svlDkZrsmvCl+(n~}&qRtb981G%8UOak zaHQ5H!6Rx_f~TdA&qCsc>wsM3DeXt0rjL2WC-1lqylF-s*LuuG|3(rd7Bqqwma^9Z zwJ(_DS=bo!Jc+mN%SxyKIFkjQ(_*&d08z4yH$G{m8JNg~C{l_c01AQc_cXZDXLRB8 z?eS|G`vTuD?Qx}Hk~T*N%J7XM5~Lt$Ok`XsA2J@Uby>N^H!t4thL<>C+P$I&y7kP0 znC!;H0 zO|UlWw5A0EOsG*AhcHA;Lcv~QrP)ih>HgudUAS&vQ{S1?=URei`+n0nPUM|Ap9eQ( z^QAv%DZvk1{hN>hOq-EdC8JL&>6b-WIp{KFfa3msH(5Xpy^J5T{$>{=D;`>ZHwEFW zRt$i=cxDTHz&<|l5?wl7?e?^s8>Oq2mhPQ(qR@O{S2fWpo-l~5*4A9c$3)X&rgrw~ zsxd|C+h{;!7vPutCxrCMpPV-y^|!z0wSQQ1k>|Yb$$VZOha-kMogYpFAF0(gr{AMZ##6s0w~_U{ z;qFi1lix`WAeDwOGTR?Iq7s~e<32D3g;$*OdS9egRtS~ME7|N__V|!1bu^SQOzG&^ zYA2=$CLRwPQh`=Sq^;=z%*N!-SL~=E z5!1gP$?qWZ(`z?x4DAUZKmGWY_D&R))Qj}uC zl7W5}E&;3-jtX{lH6dKGSUS!hZ;uZd>-*hQ$@N|sgaO8*8f+P3+){tBu5-pTjc+sos3Ptnh096+;hI?HVkUSx$+pu;ETt@$w}s2|Zo0$q@Y zJms85Ec8{5?n_67F50gn3?-b?9j&q4JQJd3`{eK#(5}msQ~Pi=K%3JGcTxDSHk&tf zuYx;vw*aQ%T8P;Of9ngULftd$rK~(fwQHn?uO|vdJ-qHapHt(X%4(IA9>g7&f4_R7 zxq#)>iT)Q;#a2{RTxyWi^*4L))rGb3C9UCKQ#rS19L)1_1-G91@<~Y<-0J|L9jU0Q z^3-x}FVb9|9ktGFI?Vo4pwJyhI+BdiQ;e!;&mK(F0hD=Bjk2rZo9KAsEzwX!|Ro2xiI_h5<5)eB#=Vw{+WqhSlkG7u%YmomgluR;W0Ccd17=gM%sP-l;B0~H z>i9moVZFcxBNzY7h)|{uMw^9U8d0lH<#)8tJkdm>i9bSEEroQRHJkIoUenz93E3}X z&tea^$)j#E#RbgF$9GyPNiTbBB36X zY>Pg^MU-bPOCIv5w(pj|-+ngwfm!tQrHb|tsHVU{+y`vIja49KO1qA!wN=kuVq(LS z;y-c3jdS?isPDLX*+bdU3{VczUyri8LBz`ys&6u56x%ly5IIwcQHdJrEt&`Oj3?CPEkOFW(xysm*H0TSQo}# z#2wk4^6LnaK`?-PRjp(c39)9L?>2XjHdXR{yaZK9hNfNkgLu73dAud2(>kb*srsMF zs)4>s)Vw&|vz!m&-cH~}n*SO_Qe3`ARoCz_g||E*1VZre#_)7)lV%(hCKS+EQRxF< zI_2Z?`)gv<-dnM4zOS@E&vhk2ya4obs0$>eynHbsEnYM!uMzOm0b{!DD%hR6d*%|F zcT4ruu1a(;8ys7H&px?;EBhNsnL1CwX%+{>=S?i;GD<|K9R@o#E%Y2kb2RMk4k6(} zJ3?qF{n4HYKJHBv67z{6N#DM;Qs7n$7^8HBq`4fxe@G#}7{D*|xHrE#X^mW4owtJ@`>Hf2!Fg1IW{?MdnStex&5};LF27y=vv6zw* zy@G`hPgbMI;DHR@zjRF|*3L{j0r{}N%2oM{R1pK z;ZpmQ{Ym?I#AI<*cOTq|L)MLrMpQoN_DHsE#*S5S zd?jOYS^G^h({;$zIkpYQ8!aq$I4eunVNx;#%8GJk$KEG|VGmvYAm=pkc_BQ^{JCje zHT|jW3mu(PC$6*#m(87%C|nkWF49CKGM48XqtAmaXz~@X_l{Yf`%vMyup`p;b33Oe zc*0hn6<#e#naM44ddPS30WYuy713O|$8|>3z&xio0`MHFCm|(1(pjnuK;0f7=+|P< zpD_)P291)@p&>+|p)7%=Tk4waVlApp)bihT09y*V#Dg60AVBCnt(@+FF38@CYCvo` zk*Ea|&pYDfn6yBzTRw8vGu>HRe1Y0so)G5LBU3AeR5%DKsH~_}(D8_wwPd2$b|-no zEk!T_5lrNk8q&ZxyW|G?C1Toc0yDCO;t#8G%g0x-WUo`8_5t)7VOjGqUUElUFIxOIKhzx0&*j9h($rv8WT z2?NQ|zQ*RtuSe^C|A`k8^}`|N$jy31T3u9x&coxT{ors1YaVO%bZ={*{@6nZG zG-Sk^IJB16bVoE1tqN5|Qv^a6HT@@OdEf%HHu!eN|xqP#X<=G?begz~g z40pfE&jO2=1i!y68lc4~bFpxoQA6CLrQHXIp8!dt& z6P|WZFHBq(nyrwQDo1&_*x6A>za*cV+GMSb8PF`>O2IrwBx;%cf=~zPC#ISj`*EeU zD8(0hL|%|u?(>-q%=bT;!pY+%rP25T==85n)9#(BLz@bMXpRw=8P39p-8&v=A$IoW z*-3$S!Z?JDGOa#^(?3wO!Rxe7qL?c9(*cm_P&afckrln9zYU1Uq>@_Mm1hN1tRbp zijprU^dy#!#z-&LLx%E|`yu!n4kP6=?&7^Y(ZTXBs?)FEWxu{~QZ!h4|F!tDoc9v> z-2SPe!y3wPym9DUFDsO;E3`MwxSW)sw>xc=a>)fREY4`di~*TOjc>uwyKht!#dtKn z5PZpc<-z4sQ}LT z>@X!kvmxcw@+v_<9t@wxPo={%q_bcQWTdfK!5N-!qz>M-OJq?=bFAHR+^J0NnNv z{2xMqsSh`lhZpqn#(N@jB~FUKC3K;Z8U?otyM`CF^7e<6Tau%)Yr5RNB>xwzZet;? zEz@vUTR`A9B<)*ffk%Yw;R}*sbe@7G(xT~k4#GVd;0pYZNpSioDio3l@MkFWJ=2X; zj0e8*Ax`!#W6Xr3y};>`8R{0W2>nI0J0E|?$h3tVhS;43w?zHb`Px8)hV?g*rj3}R z5Jg$TFc4B2!QTwy{3V_z(CjV9Iq7B5-p$TNiF9mD0bgA#KK>P+_zi{aoR@H z?4X$-$pub^HZ!mbVamix>R*E;#5ymLXR_Y+v9;4G;7Rl_JYq@`_^HGvF$fufrUGkl z`2{ZE(r8G^Tm~-4#?KK4dVznlvcfg%CNo@4AyritCuVrd@7_CWBK!ui9BZYZ^$NWhsnG$@U3Yfcc zbC4rObgb#<#oth-YysXCLYRpYXh_hNo2*{Hi3QK!?^Vjst!!MmP;ncCT`u9|aW6Sk zFewDq=47Iz8pyvu1vEW>>C*Xb{>EF4%mDI z1WJ2l-~bvLR8asw#U!*-exUt4$ktA8rH`wypZeO4JwC!Um0X9NiNv$P!CsTvf%Gq3 zAf1#^5O0iU{Wz_C^FkEfRdVCq@TWcSrd1!&(9%?U@D&uDzjJTwL<<-)M=U0B0B0pg zfPi!%Ovc11#_l0#=`{dE7>EwoBMNEXz-`^nl~;XWz7r>B>@CY2MUKSVU=jHqlL3=0 z4#i^5O)b-lO7fomr&&NZk9P?pV>>Buxu(zw zMHo&oRS$dPGdQUcnGqnK)dj=7FLd2&V(e~o`$vL+AnCD3Q1->5JXcDq_Zin1jmZ;B zMWZ7}x`5v_Rexq3lJ;8})g8S)G`#8SAAV@4tW4`Xa{IL6OITE4C%n98(1dlV71zpU zbK~FaVE5Fq@?6Zrb|7U3YcUH-NtKLw9$lNC+YgGjxf7fJlSV2nYy>#0=f7 z2#AEFfONNXgMf5*NjJmH;XUVjzw7)9bKTF{YybAzdve_jf!&jnaJDT`S!n|IiI)v| z`=K{Zg?+UJfG!ob-&a7@k8}naO)Ho-yx~o_(Hhk zsfk@hTgnPa@bxv@%rr4+fLu5(;U*Y-E-~S#A^ZTtKy)}+a%5?Sa+#|e6o8H?r-5yN zY};X@!=d;1{ds!+TEoIAB5^7|^Fwt_k(HE8Kv8pZdeOm)9ypP=_YDWS!5wPqxi>jn z;W+KAe{TM16)asTyh_6y7MM3!eml-t()x+AxYVq(d4ii%lq1-2!f7j$23|H|q{w&B z@Z}P%l9rAKGr%nGSA`wy=~%rp4O)$ZA{tAVf-3Kuw6qQM(oWy$oCQ62L^Vl5ivy19 z9F;MN4>bQ0r^m)G3Frox6*L71fp^N9bIOzXB`OL7bRt}3^17#PA_XNdonT1Oz#jJI zYf{bsE5j%kZEbBmfzf&I2Fo|+Z4G<&BGb}>!(bLCPJGw_gTY#5n|i`pe!`6>DtIGShifh#TGgQ1->Srx(oj zLV`(!(EB5<8kZ42r^wFQLi5kG_|C*on6?Mq-@8tUWd1M&9G5q}!=I8=3?1t&tnC2x>Du{N(H7(aAu-Mhcvq#I5rj&pu07aqs_ zGAF0Op5psP>bZ#6`_a5q8o0yG?j9ch#?7B?Rh7HlKD31ox$=$Ej(yR3<>Q?l=yy?A z+=P4B&A*gy3H~~2I)CJ9&mK0oYQ8i`n8qgXGu~#ZX!+cpSKKZ(!E=cwtN8opu3Q0D#*_7ab0eUH;z$&+T$YB zrFcnF4qSibo4b+Td;IW%moN%PW}=I# zV+z#_<8C)2y`_y(nARb2O znr6M2UY(;2G_A2A$M^69KkSeC)>F^ac3Q;bKH`pGvz<7_Uh+bYCt;%%Yw-xnuxQ3waUUKhFKLSr0m*IUunL@7bNP%<$l5h~A z0ode5jSMjd;uVAAsI5C5#}y%JO!<=e-Fr9s-IXv#>tsnlIlj53xmUMDJJ^n`}8vPvhC1O2245aEin03-EJ&&%?JU|Kd_r_Bs@8u&NiFmNH~ z&wie_fWha~0hO6YXZ^&mV@Nn5Q9xWV_5y=RYo@68fP|y&nalp5bvWKBIz@S(P+G9f zJ^I@d|BlXNuH+}i&OM{c;~|49t1EqRN$paMNqpb(nK)cIAvKs|s_oZf+H#jiTO&T` zelY|Bn#z$l2rq7AFs-57DJq6hN_pwc3Xb+~{6!069X605T9ns85x{GMY(*t|5Se_S z#BmwV$adxztNbdDt!20J%1@#Hj%H9&(2vI!bu;?KC{d5`t`$_-{yJL9_ubpK%l0iF zPhyMEahx>}?Kb#c=au^kw0wD4?J?HH88PG*nmma|Qj>!}$FB0kbyfPKm_fVUPCP~s z>LX+hE*wfrOX$zXRs1au<3Jyz>Y&9UUPPr+v9JBPiP<}%DS@#D!_d+=fxMB{n{|5iB5N&$EgBb`+RzuPHl5cpDmcGyrtBA-17x(3=5Qj}0z%fd z6VlxT*U0NwWR7&gC%LoV)dL=9*kh$_0`b6o)qQ?EqnJ*^D!ZP`Erb4Irdu3h;4n_R zLI*(45gt_0V;(Q70PpGtbXx*UkU!y>pKfu-_QQdf-~$pP@Fz8Z2wu4OATyoUw>M_(&j>K%jbeQFy`By64dYTD?Li3#qx~QV0q=`tEK!@<^1AA0g#Sx;ZUHB#0Eet&}r(SJPq{A+7$c`}?(ojf7>DrN{!>VAbiTU{;9m~h(hq_6m zks2K)S#mYCBa@D|ZiD8Ov5+&y$dN%}9!hO~_s~y^qykMmMEAah|L8FqHB{ zI!%lMsLy)$=05klU?WG%SD!!Gwm~)O=1wy|BhjxD@v;u`wn_AiA`_Ch$L*w=0;KM^ z3F?}*jqgJyJrn`Ex+U1lKQB@Qy@F!&A*Yp>Y%Ui}0RYZ&0W9Rt;jCPg{(SSSPmY(r-cte`(_V=0H5l9g z!#jpmyLE_)F?TD62cUM>Fx18jf@Lj-8larSNnuBZsfL}&zrN`KkaOH)a!|V(fURy@ zFD2-2pF-;21nNk)3v%QZZcmAJpOw!Eyn1?5$(g9#plvY zDIXl^IQ>??Vqw+ObByxaTaUxfPl%8|#RY)^7FI?_W71KJE1L&+DjJXL=jS_?|I(tI z1&%#Et$P23VqxuFy?dwf7z4E#;$4^+c@y3?{NUf?qjb!<0Mv|mms z_sx29u=kWUs+U-1CRDk<*bB@(E_dmPqa~kjT7Ih>lW5c3n3q>%=^|I>VW3PBXo)RsJoAtvJ;iL#DU+8az z6W0JcbHFD}@b1O0X;v3FwOU?N0^b~l(l%x(n1vWvA{uk0EsE99uKli}wBMxqVm>^A z+{TIigeVfPvWS z)U?izf7rsGj%({1wfo%KmoRHSFMKnrEnvO<3sH>m@<+$akwsi|{p<6RU%jQ5H8YDf zO!G!`Ji%ulV=b@xIE;r~#l8bk-!f%gGw?eKp!#m6q$MR2;K zlOtl(cU}&Y9<=-IJ)Ae>CtzAA?Ma}Z9Q`rj-+p<36q=i0x%;sU>Q%)*g;H>QsT4kU z+4GM#R5^N|Aeggv@!!hnB@(3K$twuGSB9xtGFm)8g?5 zgR%ceaGW{o0l%)fpehs*c+TB`m!*XZa{@L%u$8tI%J|{pd3Hh}QhOQ0@Ea1c0Gj*NqIpNef97gq6v$kb+DI z-{qzm>#>ds`KkCdG^Un})?V<4}G zxj|BV@zl+AogYvHbA+g{d;^`EfmvkvqOa<>%byc8X@WPnI8SkbXNhEb5qPuf(uJq) z;)M?*@1|1u5E4P+Qh;S0#)fs8xYl6FlmHkKoF`_&T#a}+8fKS=Qbe6voHNm4a&J$# z2z*bLg9Ea&R|j0*_E3ywNW5)o3Assq4_(&M&0%Zf4(Z%e1*3lZ9$0$&i&hgc&#$~9n@VcxndS23ur%(q?%{kZF7KtGFzG^rKfeK3gf}Mb}5wmA*a#1jf{qCJ&dnlHv=w4rt!$*;ytdh4Pf!5Y_GpI;xruNJy z%7n~9mv%3@<(9y(X&vi3pLqRDnEeeY1$E_J)aS5x>W8VK&U^xM1)&nDv33WdjmH{r*=Z+1H}guie8e}%ivGewXXE(7&|y6Ij9gd;kJg21>iJU|%Wlg`IL3kn@; zF#);2M-!j*5iXso}Dx zqh`~0TBi?2*pmT?kA;{7zi&b>|CvgKhbCd!Ts|?jzxW&IjeqqbLxj`%x_tGFkdOer zyCYWgG49Q>vBZO*jo)~U`YkQ~-jy;JBQ80;T=hdi0+VRMHF3Cunx0^N3eoXY1Z#hh zc+8q1wQ3L%RsW%ddf{bFCg5LFP4S~duOt>{^Y7l;q}2<+s=NEi3iF`P?$bBBLJ7d5 zhtSZ?r^}&Kk+M7L$Dn8e!eOph=BvVh08j!mR7_d(oAj=>gH;#*9QI4jvBYp(;maH< z9J*PRUwGbX5eo@z;$QyR4me$@^iI_zKHzX|z-R(n?d$}seTQvF=yZ+1&$Kx;I` z3-G&=vYwF(%^l}Lo6Lk0(WuYi@2?vg*?1AkQlZBYAdkwIw+mNiHjDbu zx%1G;k&&|ge)P89J!U`JJpLAk_C9Y}^mc;Zw8*Nhe(z}7tQXYQBEpRCyZEGYfa0ms zPZy%F`y)4FOcE4iZ|2B&G-+CAx#O={P2BmY1}u17Z=!ZRX6p!2&zb_LFT4aXF&C?!PP0nJ#c$Y+comUFc3 zMVpBRJE))Fn6c1dIj9lEhH=jfoA><^fN~rYF_*(MF8a2l;=DW2$LkC39;eQ7Xa;wO zww?DQ?{E;c^a~u?O^1@|8@&~hPGW37=14b8V_-*k*SGrZ&}OXSD5gDKjKX=@6|R5) zR}Y@TPjYs+JNlsWr|0{FF}YYIiE#wEQwT-_4+kI(@4W&GRya@AC=mzr2sde**pwAZvG2j?}NTI-hiQheg&jr#_je=Bx$4|j1qI8m47u@kZ;-n9MUERky2O5k)T{M( zz-4g(ffp3TtvET5?!VI|h^yXyd-|Rm&f61B_v=M04%+#5dec>Tffuna+8k5Lj`?h} z$2>kd0|uu`AUjA2U&zW$#+)lKb3>3ra9xoS{JTD>2PY1mvi02UMHXFQ!EC%wNI=e| zCK9lH_T$l~U!Mc+75UGjZEDg%H@wb!(?cVF+^8WhLW13@gRR zK3nCwfwODmBSz@>JxjQc5JuJdMOj0mavv;!W&iRzL8;yd?M>^q3Z|I34XI+Yt0Rmb zk+&p)_rE0Qd_JZ>Uu?L)TL@#`pWo!7MzZE@Tj8C=wTp>8j3Sfe($zn9uy zHG0(jnNp)+0xeRtnd0COjd?f{{<@87?rB-}&9KW5!2^p^7|DXr4883D58Y@xTu; zIi@Pis3YOK#9zIhE0Guf15Up0VZcyUoRd%UbeX*(tEa@RU}2Mxz1^4RQiMj zPB@T{uR7{O0$QTW4R%&>8>3S6u4C)uB)089{;Axu*7JNaws?Ze4N~1QuQh+>wYuVyB8Dt`xB@?S#~08PaYrFQF++-&{BgS2wS!gocLd5 zB_5DQNRa<`iK9?uW#!~SDn7}r?X4TX_^)v*x6F(oFfFZ*;*uQ`v#EoN2HxJT=7{H5 zX=+quZ?f8q3Lu5a6z*>jFkwwxmZWwZsEZk>V4#{uMhQDM=cX|NP$j@$-vc{54JW{9 ze)d2!346dxn#C6Ic@SBtq@hldNd0fOpDvQ3(`gJ@d zu|85#8^7m?n8(yPc%k~HPJwD7s4``kCvF)_Yyzi+H0ysIo6=CKy+7~MJu}a@KEzGG zmx2~@RY;g?NpEPi_qfNjOIr@hzu@JiEi|tw0-Igl^hNpt-MCt3e466nhuV~_Zgg>F%{D)p zw(JX~pyWu<)MD4(kWBcooub@=Y`6h)pvXUxNpBTx9i;SJ@xy7LOOc{T^T1+50k+Qh zcwH1h^>;DtRuuS0)u*h*k1rJSOs*=LG@sAQ=-JR#hU!=n9>jH0%yH3cN*fIlo)gBF; zxwoBpdC5q44yAxEnQFSv{ih!YH>*vR?a0ott0yXDj^fijPGO@~F9!ns-t12t9>E$J z+~}nT{FxL=q?8~_DBLw2C+oyt?^l7|7Vb-Q;v~llFvQ2ZqkjMooG<3vy}5#KO^ht5VwTArL@22w11RNlGU3FVWGrK!0%sWMIs#{ z@x`x~$4$aCW1iVf^=0>sZvMlo*242F^+|JJ9UWz(Y!|eTyRHhm0Q)qpv(g*4UKJ*< zI~(}SRJH}g#z9e_ougqw_zm5#SSh>zv<(sRjsq<@+vXU9e6fPYR|VLBt#ZE<=T@+; zX0j!6VYV(bmg%D8PduwVR%qyX)BWe!Wjj;U4;s-A8`swOrdJYkUCRTSi@5r;XWG1G zum+@r=RZHJ%JBkL{uyG!KkGaLOCgwNLl60>kam4c)sZ5V3J3auX=%Xe%uKHgPHQ9_te9)l8Xu_dvbSj(mC9**XTkmc+cZ%Nvk}qI(7k z%`!PNcLwXoZI(w1#5#M<;beya;?CT;6;dow^O2P^OfP`0#wZI5i?OHgTmBy_c$g}z zLm4It`21x#tFa$t&&N|$kpE1OvTP8>?HbNo%3R&FhT7F;A(shL}iRJMuviAzuCgG&TCEf&flHbD5~4*`;NXbyXaZDMWSX?{Uu4wYLV0e`bwclE%AIZL?~JY7s1Meo za?9Tz>S>+ccYNkBvln>7k_7X0b_17rCNX66Arj9iK1}MnCrN{+AvTmZv&Zi4t8o!5 zB(}ow-x3Cj=NE`sMCo>gbQVnF7A_(nIA{35#oy1a@VEJ!pV&;MC@Wwn2#X`XzT8e= zSDtE;sy{7~x!9u4%l9=;NjnWG$XOq(vUy&X`NZGkHnKZvzT+M#I}{zGwBZRA_pOW)qnI)z!{CC~O+GB1e|gQawTQUg+eu1av5dpgzD!MT zYpKQk#hmq3!^4r}^1;W?t$Hi{{z$ahZAE8cdUinWZmY*=sZ;A8qfGfY6ZY*iCGW4vM#}UCt5_r3h`l59ln0EpWgn-J}}Hz9i0JLU#Rg+XM{Gc6M8!Nkf)VajX8^BI8EEzNxhJtN8yR=n+50JNZ6$j zRY)V!Y86O|>z0ga$5FT8q&a(GMD()o6%=wv)swLAzSXTa3=A6cW{S+8#stGWD8|Pz zNUUXXbjD>!xDSFk{IPRSz#x{meK||Jr^<0O@X%kjL;pY0Lt8wjk$P*JZvHs&m6M`F zpXf{~M>+jJu8q8ZDr&#oQ#%3NSrb*tYfbn9u%OSm=P#_M*G=TrZf4VCx69|r!rIS*Ex*=M*R$Rmf{`W zzlnU%wY^Tz8}(G$h9MvCh<O-s(Dx#|n^()rte*>v;P_X~r>UjHgx#*QAd%Vbk&-FMT%q#!ibcy@ zd|q-<*sK{j(VvtrE&Fb#Tn{Urih!&S@HZnMBxH=HriHI=9z2jIpero&yaw@-0X}mAj8%0}k5w_{cDMIN`Tb1k{c}vK{wRj}3D=82XLU_EqCIQ2Y6r?f3hJ}k2$+``ga3{hga0v;$Rn%xs!_`F zGi7z$#2fD5;Eul|Ag;mW2MA8~Qm*~u$xA--%IKC_FjvoGOKS&QV|Pc{fj_^;@k(nw z!wF0yv7mIQjBp<%faXMJ7U=Pky)p0EPTlg4b0?>vgf8dwVr(E z7Zw&ixNB22S$9!_{s7YZZzc#GdL_tSUzK`wOI&h0|9R6DV4i8AV!Ghvi^1t2z$c%f zvh8@0jvqCo_yUIjaxXpaurgbs)R#|X1-*H~px?c$X;f(u7O*OK)^?p|X=f+G!CSsn zUVZ$iPn}qf3mSOZsC$s+#A&27ff9JIEZHs8d8uZ>gB4A;@bZV8n? ziwF!+A{!B)iP9RzT4#<8t*5PIPB7NqHmK_*4(XTNy&z=>gEvpz}%oj`z5~L&G( znVQkjZNWk@-Cp~>ISI^*OX@dwxeSD}I$7E~bBm*|$N*6==!yI7(3)JE%yj{cwBLGSqM2T+3<5iRQi6_TSTR1k6lLD~9U!_GcJWR6OO5F#b2| zPs|-5r>{K}<3bd99ITweky3X}^HRV2dx$QRr^;VfkR5tnF4#jud`bJ-YUe=BPEPR&fVhw|? zCYZivI0#ZYEY+5UQ!HBDUhRHwZ#x?l^xk6nNFZ9-ELDt}JTgziRr!VE&*)LkKip#? zrsBLL_P2}Xt?j6ywhBh`RG~QO@mm|jVGQqv>30`9LT`&>qOs5mk;v-^a@+LyItJ>wO;K~p=>z-&nipY>3L|u}-=Es+FKDh5w_b0)e)spA< z1bTT>9RDQ~mb&&ieiMSc3xK}>a5xapRlsA8Zk$cte`3HJ96${~0@A({m?YfJHq_un zJSLblCpSSEm*te45+vd?b%S)tP0Z|qqudFPsgvZyll9x3jaucik@k9?zJZhJVJi-) z_;7B_ae1#FPf%(B5EfyCwb{@*&!Bjhb1AX=GerIhPkQ=kmQ!O7C1jvSLt7*xtSDrW zf|Rrz<;NO9U}5;j1H&kJ&l3yTRI2dOhfXczid6tE1vV`!759TWXuFf5tL>-1FkhA3YS!Fyqu&|4vhs z#|!kUT=2?YxE#phcg9s9JOFqf7*Vl1_yC{UjJuPaqz0G9_cBG6mzEck>c9_X)BPE6 zF;8x{d4IoE=7GDJZ@x@`QyLb_@QZCqdp3|NE^Gskm`Zwsn8OW+tl$N1 zK$hfTJ-)@XZ1;dV4mp%dIb(tY+_ z?5ukq-;Ib~9?Tr9szQJm>Pb@I@|CEsy{$byJ^tg@X(_+QCm9|m z({zq3B-RP)X{gT%1!p6i*dOuH7}dH|kB&kw0S5lzE8^P+=|R`hym?|bwqXC%Hnaqf z;N9#?Q$Jr9+wIT0w0bK=I7zM!?B zEriIn>%_QA-8K}RZyK+qG7Cx}@yU6+{&rKUBl9KsWTJA(DU5a*vO9+TM zO55%!nUrpt2aYsy0FSI?7eD^yv>FpiZSO6PqF9+Y?^@Bj8Gix#j}~ppuML%>auajv z2K2aD%50}cJdWgMU70rdU2@(H(-NWbiq_*D%tMNHO;hHSf0S?0d|hy?t#aIHVg5ZQ zOj`Q*Y-J}osAw_sr2knO<8=0-|AV?!Z4Lm9FH9BHE}~Q)H8U55R`rp~fGhSMdH(Xp zN-HYR*14xaVoW@-?3j$oQI3f~(vo8lgc8x#3TZS`8ht0ta#*+KNn57CL7aBRe`Z36 z@3V#{9&Pdh_8p#m^>|s>Zne=@pWDaU?XKD>(X(&Q3vsVvXr-7aFTS~6BB^(nr(Jxb zC!>AK3}g?xAHjGH$9sGgg~ZJsrg9KMV_NHOhGUx;Zw_v7K00RKc% z_EB`LwP7_xg8Vp*lQY*IkpK@Jtr6%UQs;ol109xyQ*F+fQ35vr4g}#a>|IFz$rwb_ z=iG+p6c)dCs8z1H5TxrlC2lKAEXd83UA(6zZCqj_cHvR@HdFs^MnICGq_k5M$(mWr zdAW~HAvJ4F0qzp;yudICbL&U-LfkoD^xfyE~0A>R($j6UtLs~2VkD6>|ckgPqdlu71Kdd2%{cBfJ zDs#;3V++7M;cJMb{iD6XE^X>9xr}e!_ke1o7NY6B2OD!_N;WP# zE~||Xt2YOZ(A;dlC;BOuMg+=D>^r_zmJnRJ$V6RT8+@k7dSw*&%uQ%-FwahJV622+ z#W9a;zgW-iW&cCqgf1=7_no0}6n5kM^)>WVmPO%r;D)0A&{V$7>jpg*f$;b5Yuv4N zyNn4w^#kf`7zeb+b?Xma5bS9}YGMC|=rK7ypJ92*W2%QhjJh7=@`D#lCq0f=N5}vq zUH=n9KQXb4W=xpzS^@nvG+;j1@Q&%7Q_G2&-~BSw;OB8o8?^NAq{Ylwc5M&=0fCBU zD(R=Xr2DJb&F=Cq8(G)cVPoA0R8LuJW7XOy0^Un)4)ea{keB@C9kLv_30u+9pgZyU z`iqlGAR~@8nJc9qfqw3&`vQy4)8ls!F*Nw&k=bi%>nB;}UMhc=bJSu=dYR?7{}PiJ z>R;^kovcUAxJJ|c=gWWoy>`Zg&1dyan6SyS)N-Zmf`P*6NN(wz%j#Kyj+qbDY2>sx zuJ)^YI*yC7-#zSKnhqUnO;s)qM@hdllD59GKCb!9F5)LsbmS(Q^i~GF?^i>csNtXc~3h!*yQ36-xPF%ezUP zXrKfA?gMuHM>H`u1FBXgyjxugGguyg>2QAKjSNyr`=UG>LSR3`zg*w_-UcWa3MSvg!G5X0tX^-zSt!7y#e zgY?6|Gp^l;?;(VIuhPzv5f2lx&iUDxBU@{GQlpvLVnwAw%RBX7IB`b@4Ib0gKVvZ9 zJLtr$S1D2yLY5QB&QRyQ=rSt)uI(u5^(sz{W6cjDR5ON9N&mw&?Cp98$~so#Npdfw zQ-l*MIaTfT)$cF<`sh*bZu65l-0Qk2-1fF*yEfT=C?xs#=Y071*v_mE zBp(-lV%*ep$?;v303n~23%+a%MvUQc*dD-AFCiNqw(-5CLO-qJU`-d2)lx254p#*{ zg)*UbN1hPxSJ@@o(!8^dlvjRy8!gOoO;MYd^c^DK2&uE}{IDZ?>a>+x#lIA==vO$l zAaOVn3s@g565H?Q@Q_2J@h)UHHml$ClSR3x#4_lQjts{=$~?>v8%4@o%uPswVcVEv zp0WR~@ZJZo(k?LBV93A&ZP~Ys^bqUes$_oh5Lz5s9S}vVac+ehY zE8BZk<`=#F!Z*0{K@yTi%{xHJT1+kB+_5HItLxL{tv-S?4d_5W+qHJe|0M+)9q)&B z`loYb_MX@_(vAl;#na7pIuCiVJ+>D+rRn3RWDLoDa0q$@EYs!mn8W)}4$!BhBtSk2 z@lYMVQ^O=QA%$KkKm3UJRNMZ%=k1G8A04hq>(5@2#mRxZ+O^@CdJ3KB8{kHa| zTBh~%d#rJ3DB>Gv6kbo%b4OZR=pq$Y*!61W8`tkq9V{0qQn2ad0!=&u?zy3$ir<9o zilUFFt@tjp6aZZMf0W1OptKF%gK`6(^nv?_@IOSmv?VyP^6QF2MrRDx*_%sNs3&vo zu2y#1_oQdmy;=O?ku1}AknR$>?&LV_CGQ08M}P<)rV`Ku+G{R3!>~Ad)<)N$~HJ)XSZc8+}J;7q6HO-&V8^G5XV%~kM4 zpS^OggBPK6qX2JitFEqNPw>mf50$^X>~vJFttBTOg7TKcnVqM~I)ku)5k=_Fia`9M ztdI!I=g|fhH*0y#`Z-1>UHv%1^zY&|Ze*G3;Zkh(eoOS{^!ne?L6+?#s|=T!G#C9> z-Ic339dt1mCv}?|CpV{?*S_6&zK*tGkO-QdgCn~HI2jc-$J+s6jn`XTokctt8JtQx zH(T@{c1+OgN4tOYk#HQOPcceB|0U$ZGYe~Z2p4}^FDE+bt6+~J7E)9GRrXGTO8LdN zHa7Pwnb%Y`cqr2gF92SajK`zZ8eM;TE2ylQ0-K=mKbzt+KRV@qIjh0L4$fND?Asre zf90BJ>Y~*#@(2@iO(8zHEw}{P5}!B^zw?%jQLg$&SADgx@dcF@)++xm2Oe^}L{ET( zWBt1)xYi{Dy(h*%OS#Bb>Bny;rLvF$n}jY|C0io7l-%MV76GZq@x&k=eyeE|vX^B5 z4p~EDYrjGQ)sZdXagTc^e^xD9G(F!c!05ENF4u{yF5zD;mg;Xp%n_F2{Q`cuWIy+S zyzHOwrGu%h34G={MDX}aahw>l#w>UE0UhaXg#(MS@4L|>2r|bB7zJZNPh?>3@8nOLiq3fxj`ET7`ffL`=3$2QG zA(-DYA1=H8Z!59feZK2XJd|M*_yxZ?foeSDFX^{+X3elRr7_Ta7+P#k} zciptD>boyPwcJE}h=KOo6~?(!`l~(J7K(YsNU~;#2`_N_I2*CD&Y~0_g_X@z6Mkv0 z6m3qwhS3yHQBC_>wnlZ>2huO$ljZQq92eVEcJAgPAF zUlC#S*5Pm@E%<+lBW_MlpIvSy#+ZYYu1mnUS2Weyr7{Cd4PRhkXE+XYy)Nckhrn7) zqTMd(XwjtaxezZL5Ko}YUBXY4-k#Ypn19eF@nQJE4t_&Y#fxJWOQaf+i{}qXWRtHL zh|0YsI{xrs?H?!?FKg-cW!m%jj1KGj8gyGo(-{k`lVc`2Ep#r_7#W4 zUEUb~aR8*eI-o|v8=P|X3ZTEN7ng}4CljHHACdWIuBFRgq!@x`c=kr|xSjbnjs`0T zYxr#fDLv!8otMwuUsa94yW18S_+AHQTpkVf>ICIuOfX_|8lU=2j#0>GA1{mKBx0)D zp0^2bHk;S4Ev#QslxS4OSGjXfCEl26VGrTyJ_v<}KAfhGf*b%4fSRJ5o|F=+^t8jO z3aqsT?=d;MWil0ZQp)@50ZtyM8-%{?8fxV31_##|gSKW(%{(A3j^NG3pf(Ap z9U-lcuDS9LFOo55DZXU^w-jk-NrV<*%c^uAYH7Qoxf}P;noGP{d#rhLoOYtx)+iaz zdq4Wk7?;z2FxiFc3m{x^G%I%pP{(6ZaV2WP?)!w(o$8~V)IIOI=b+bl@$auzl+?B z)eDhB7aQ*+J{ovY=-SpCIw2@H)Odm*WKQaG{OIFp>EYz?Rx_<5?|Cqgi3 zkP*_nr}^2SJnxc^8?%oZK@N(X0E1uy0OupjPX!qveH z#k661l>OoC8N=Z7-~6^13v@WhyG^kr@{_`9Ow#O^Gil2I_fMc=^NwBP+k4Fj%&}>~ z-}Q0a{;!R7u8T_+xs#1?_ROC%LV+X zpXY#?o#*sLc}EAJF|;=r6kR(&&gv;mpP)^%4Oo;7!dL8|K9XZm-1ezOB+=wWnL@EQ z>5ri>A@79+moQ?+s*fu!IdSIDtzpCRin_gJ?1$Z>Inq~Do(~I$j6VL;LxyVs`_~v< zm5-9RWCq($t{y_tnJr;K>|c@8d8LO>F%E_ox)fgkpM??66TK7Bb^1jgMT-Z@LqXQo za-v6V1?rLkyC1Po7}5(Q@_+B!feeoRqks2aRdqpa#ZSFv3y$JD{bK4<{tr)I8Po=} zb(`Ss?poZTl;SQe1qu|3yHl*VB)AtX?i7dO?(XhV+=^TABro@Vb6@^tCX>lbl6Cf3 zd&&6vf%j?zF6Ln&s#63j8``eo>&(HiyHm|hnx#e>*nlx1M<49Uf02hplwNYGH%MZ?7SOecH_Tuaw=%W?q)nej!wfcrJ_=7EI)5Nau_+q zZx1!qPIcH4}$O&lmVQvcKvR4lT|;GAU>o1O1HI8|}|#*bg;Hg=yF;?t6(Rve1|NK0$f{ zk3@q<&rK9q4j1u=*Ny2wrQyrs3Y%tQaDZZut%-?^R=n>vCIi4?Eve&1ZQJ;Z2UP%6 zJCaE0ZRek5guFlh z=uu%7(2^6YZO}Zb5)TNg$)jS&Bs=ie88u#+F<8k3Yq#!*o97(Uyy6)&Dn3*Io}N_}wJf-rC!zYu^R z>ksb&?#-#*-AiD|QEu;KMfS(G3cHMvpseys71(8idKc1$U@M{IFQ~$+f+dgv<3g7O9oJO*T$g#3v6jmsN^Ly5X1}VW z04-3w$A{@lgRpJqS`3~J+L<{|ePea)8s zze~60qrXV}s10?_U?KfAT@e$wQy;WIIsbQW_=j(z65s|YPs4jZO-(AZ7!ZF=#R4E; zB}_=oib%@?44|SGNOSL)v=r)1DudsI62V;yrO~(QIjN&Sp8;w-VD&znO2iOMr4DJC2;xo7QR#HFm zw%RX*1hUS~2RVRO?XaLFc=H1q_TTYE{GBs0!Y7IHoBGFloA!OE+RI1R07n;KMzX7* zs~VWUvO=AKeFoPXy>=urZU+LDlTxam!`r^-wR~o}6}B|V?hz04za_TXn3#?V^rpBR zP6Bt9Ay=Pi=1Tex4Xhx2AmPMkhgb!%gX2&PY^q({f){?iMs{Bk8WA34hXQf8i!6~KN8Bl>2<5RphL_vI01h08eB;y|`^ z?KYhbvK4@s!S!9-Y`GzplurKvh4YIX{X`jl0yo!Hvj&4;9lEluK7B&>NE3upk`LJoQuCP$4{G~8>up`I^`6{f0PE>yXaUqPS(tBo>*lS+ z=~ht7tymMAFkmY9D*F}}2*aIo$NN-`qxkokBVM>8mH@tIn(iW<)%b^otBSR%Vp9`f1t1oaTGJ7T-0XzY1SukdSS%ZyxQ%PIV>2fio%n?@W3T{#O57Zc# z3eZJnaSOp5z-L0hOFU5xc`Lg|ef?hwM3_$K*%nToJ^^}O-WTwa+sr~|82bUHIEk{y7SK==*2q>h9YY8x=J?o}0WLept#PhUhFNFM*&q@@nBz} z2KJE(+s4TljQOfN7|Et0SSJaE#yY;1hpxu~_I_-%*Pi*k>Nq z?={!#l(|KeNV?Y#`j{qxM00na>D%r|b+-_wj0x?T+$38dj>6TxL|lqX@A~ik{@8=SHYmmLcBNAWVh^_fvz|&5@zvzgcA>YL za`p=s@|L6SuFxbaxSP(ckYCnox-G+9;;7geXt$2vY7y8SDJv)bm^kj>h*CN+@Yno) zL8tQj>whNx`1S&HCa4fg6P~rpF7|TbPUUy)FXnQ`kmIxCFLraMAJ5uM-(G{=I!N7i z7Lr~hnZhmHuQ{DN9Fb61b9p8D&i$Elr7;4FkQ8Tw{C`jbb%ZPMDJIiIj*{?n$O}5{ z@M#-zk^mc+bOEHUb7b3-{s_!PieBzg1!7a;03vrMK04UjaX0ma_+DCa$X_j>#iL^N zwMzHzt=yu53-NCNrETNcNA59-t-ywK!#lk#u)`m6za3G;tyZ$_7my}|6b*owrL2ei z^Qq+k4q6{KJ6(`F&fc_wE(| ze1O>U=b~K#A}$&B<~+T{w&b@JOKfykZpq;hTnW*xch`lH|kSV zil&VUP#u$VgqvvM$tM!boO%|qe9E|+n|zQ#Exu(8j~r5iA-_QLyk%B z#T>x<)|Uqa5W=h0zssuoOo~kBJf~hM4sS$Vw@~=H=B`UI3a~dgZZc|2N(6wbGFM-U z)BKkm;IZM?%1FNu==k##v|_SPGxIpdUWOlQ&2Ld5>W89NPoVe36Pf(XnpyEzeUbhz zUC;LVl>8*z9fcIW%kjNdPtlO>mpal{O-ssCEEh>%J}jbvy|{4YS>ksQMQxuOd# z@QUcB?!n}qlW_lVWBT`PN#3#8baUB7OV97@vy83pC^s28>cs&xpa0I|9o6nBZ3MnX ze6tAmU=*+*yy<&e$m&XHalO78Ape?_opBd5uyW zUICYa08oRY1YDoit~73|@L7*b`@+$l=vqCfi)|0XuCuS`zsJq8yaW2ogU2{xHc5HZ!Hm45L7~+NEO=BOq_SZ**?=f3Ah(En5r%p9ZrpUFTGjK zlnM)r#@atgGWj&-(yOiVJ~xofZ=&^ zu&FSGc9nI$(R9=7*thRwEi5(FmGcJ_DR&(^bLU+kei)p3Pe%jfpH$nlIa9v6A%HtK z*})){MIU-0YMp!o5cll|LDYo%Zi6Xcsd0ylgB&N zxnjpT=edC+&}Dm~L-qVy$myGlW$|gZ+|@tn+3DE{oxW3@4;!g`Gf<>w3fjO5RR$}2 zPKVSkN&eTPnvEVW@pM4qxa9Ps+wSFfWOsEq&#Tz$_R(Kd+@`68fg7V%(TI1i;;gK! z`ywkV0hFX9Q^PkJ!~n}z%>srN!fra2OjLA0x(gpXR=WR?7~=K1Zz|RTLUlsUn*~E+ zHZ*NJJ z13rczRdFJKg4~uOT%5tD; zq1*0>=&CBhCIy~xI+om<3KM=g{8GbT-y>!I=Ob~?dyjKPy;Bzx*C2MzuDJ}+X8Zgm zkDvD)-qi0g533CtOrS{ZgA{WQuUjD<1wlbYNuBwWW@pFe5rSb%QU|fC)dqlxRoLbF+KxuXxBzTk{Nm*pJzR+s8q3nA-pUmXN8+*|Dc#y2m3n#^KpIco=}7~;&ex)K)3k# zeb6*!vq#1@2JZjy4lG)Ktue<`lh$&Pl(W>jSL=iguXZ;UmU71x+qQ|y55T{CCJnY2>DT5l?pD|ad!%i}` zXCx$<8tE;_jkfFRG{QebDAuOyB_~Dw8HRk$pD?{!B`segU)x)e>R~Kdt1!$rGc#Gy z(AvFse$(TuRc7547%yJh;1ad>b9L|Et@4y*wXmJ4L16L+<`EHPGEz$T9k2YgCOiB# zwx=dA!|AIpL8vsonC(BrP`pLFZ$6|k`hVshp$o?1AGuP?FX}XrFI6N@MD&TLkzg-F zh|r6D9jIcRlo*)=ga*CP5r~JhDcs8z{j(MH=;#Shibrz>I`*d)N5Hh2a+6>cF)`i# zZqD@E?2LOlEr1z*AN+sjq;xdC)DM_)9k00~FdhPct{<@kZ5+l}?YBpugiL&d2+yAq zbNn5aUCGxaci?syXZQZK_I>a%b_0%~1yjyP^y*DcKxM&a|9e?0JwV>U#}0qUb@IEJ zUM2BJ!2avjC>n^A5lVEIw)+NXGKN><_KJY=Vk8AREwtfm$JDD&4Ja$-KmBw9gGgfk zVfLBi{_)MZ$uqdKif|)a+Gy?K27=KEi*=jI;B$d&YmEDtzsHUw( zpc9ai{`5w8D;gVp#|WTBVw{*BI9G{vfhu(lV62MWzz5wbNwQqYjSYr+Z;)NSUL$S* z;)fnJJ^&Ly-MkD$+_GQWe7;a;W zLjOald=2o~G-lZyW;WZ>(i^CMz00B8Qap`VsU|;``Q|DXmSMkI`@W_;I$P6PKtZ2! zhVi#dxH_0y1G!pirQRc}nOohy|NdwHN~>Mkc?s6$)YOb|8&PqXRZPbRABeY8cQ)bl z5@CKbZ!Nes5IyDO*zCG*katF?#}#sLCbV~IYJ=tf$I_t_XZkEjBd;)4oD}H5S!rr- zJI;Z?qz!BmqgwHi^_OJ|QM|HmPRxcWcyK*b8xQ6*?`(%HmU55DVlnPoeAd*+xp9p6)%YH^Y8amMWoG z&#TXAW_muhIKJ!3pt&C2&3yD?O5X2pYX8iZ{1?9p4|N)!-x(LdjX;RlgI6yWx(l6HZT2T$s~48bDxF;HZN5XLot2NxII`h zGxJEKhhikXUOs+Ye3{`$n+I3f9lzk89~VGR)p|4Nk+S#Hq8`7X$=94+s@=f>A7 z6WnqmAsDgR6~cl~qZfQLy{iQ0_7Luln zEU-a7eRY!N$Y$h)qDyeN_Spmb*vZ$qfd~*Ke#orHjapJu0BduRh0kf@r9Wa3|wKdOF7GlY;-2_ zd2X7erHK@_`XbTt5WulTx1(6qe^{;&aL|PJHifiu$A@M*TSGEf;;G};wKY~BdQ8rNp ze4ijZE1|Lvt76*){n3rHK4N=;KYdXZ{9)MZHH_{@&`Krw!~r$im89MZofwLKQtsHO z@lQPWgscl*9lEYN4jq zsKA5PSKf0>sVap1DK)uVmFqHBlgcV|j*L_9H{HKkY311>4d_@cUy7pu3^2iyxDnCw z(}DX~ynW03)&jE3Fki2;uL5JL*rOBi?7&BhpfP@i>0^tyzwUOXd2GP9hlewZU;9S8 zvx}HCo$O8fmD_)&3w^{^&2QI@OMn&e@(J!}0zR%LqIE~&iwhr^esjRUBorVybok?X z%sqSH57h!nnVOpprp_aPxf+4ak^s@;)04v1&ppEkzfG27kbcT$E}3AyV1=*NF$rMv z^-9~Y@|Z8TKd%)$twH95U$($=pBF_?an}`h>QV0P8G+{hRAWGpkClv-jga|GLMDGIEFcU3{Td z1Zi_a8xT}kF3R2%FMdECfS5~0_K4i`h9e;k70YPW1+%v#j|Ns6%eX-c#)5inNn-NT zeXnAD)U$4dXS+;Ae|zomq)@@Y>6lgTM{B(@H3F*ZyyCrPeNa!S!5xJLUp0)#bXc>L zC#kvOOQpF|Ew08$r6vhaC)u2MqjPZ>DRMAATi_^dv1u79^hvEh$~Rzj1{H6n&dgkM zo@C}&Y`NnK^g;0$UrXrOS>|8>#@h#Jt?xYLx0f>7QyN;9G;)@QK&|3SMfo)etzT;L zLjg?}fbu$AnKVzNMR=JyyF_5dT#^A=DdA>#aofC&gT(mMk$XeZ)7H|%Ow&DohTh6k z)P*!+blX_Fx=sL5L6#vN(>J-VX9`4$PBJbNZ_sw(@x^WE%(Z*EO(Qqn3eMKb#`U5| z@UFu8?LFebdRVanj==tw`ZUHxj&e;cuGxM7;`E6dkgg5m!#~a%xn(T+1cXOaQU-}4 z{8ePg$jG^Zx-L3`EL&7w`vk_=SozhxT3D$m=3L$SHeo!5#@?3=_h*D0zk_M#@7HgD zdFsyt|HGGD8AJ1wva&!-ewna%qM6W!D|`$2s$Gq=2G!5V>RwdZmJd?8?invYIJ$&} zHCZz=NL_N+P&46!A=_m6P$-93e?a!D8fqlqZcX1N?Gf)Z6L-4;?A-!yAPpcmf`Ja9 zAag(3f>C7f(7($(cL;Gq6(~9y;Amg=9i)fULaziMW4?ir=!Nm*f4V~|=vdz|OTYkK zsvw0e*78{JCDtt!xE#BGuX>VVK)7;{#3UdsMgrfLrQste0ZdLsm%923laK&W%8_U@ z(g-~$%J<#DaY%mp`~>k;v<442L-2#f{GXvxj7?~H-Jx2>$=Z*(2j#GJTw>y%NuTb& zWnE>G>-UXq+>-#oeS^K&c6KMDbC=yo`M*kA*2V|_>6ytf(N-%C`6(yBvr-~=v;p$) zn~gd%*g}pD9k@JH_BA}uXaY370L=eP?a&b8I$=av|vNWlhJ)Gbh-KZTY zBLJwai=*;Bn~{}PR}7!v*$#eBGsKU>o`h&$aFjc;Ujo<>5Ymg8u$luHRwN z*^~XQ&9j(N@2w}kaxBK)#{9r>Rwo$lqI#{005+6m+l}#eo(*gIc?R=s+A{I9mUE&$l9TveKw7cY zg~524m#GJw*xTDS(nJujLtgQc<>)yH*reEA*2YbWpyRCL3paNmAq9>gIhR#HDlk-{ z5?noPmS76Mn0|=Qs5AbBRTF1f!U9H&50U0%hjtF)ql;@(6Sy|8turl>2hRg}pIAd| zht;!XEuTxs@{2Z+d&$XEY7O78GDob=anyRLA>;aAF6UH?}IbD&*j!_ z#*&fr_?qx++XXu*um!K?lgv_CR_+6IIv&PxwxNsFjV?Kj@rzj1%w##2*XIT`CJSEL z?F&ONeJDixa4cun`{sLv#Qr=K-fC9hzqokH$A}QG#LEoe{k$c@h4k^0HozIU zZMaD?(|%wsSk=}OuyP)1?ab!jD6_pw7Ps)o9paTL?K@RB|9`-9-`qXFxrUC@G?n$5 zgeJAW70C}1MnVUSsf^*nk*D9Z)&?3BH;NbE0buP{3j^;!p=ZNBKo%%+%#3C{9vvUr z#BTNcZO1;7MDb6Z;Mi$L>Ie0{Z7%e?rEcRrK1@DLC-R z#OX#D+7IColYxI`S9L7=L!?-oaP#;*8D8cgFb+|DFEt6v6PC8M8kf>kUrcocKUF76 z6v{!r4r5b0{#}{i9S8epxb;R5bL?uj6_w8Fh<|f2=;%}SKr5rK^YXoNQydL9g1T>S z?0#+scKNNF>DbG?qv>cwH*))f!gz}De2y?oZES2T4&E(RX{s^xyO8Hav{pMl)p#n0 zvX<9$dQx|Vjh(%?yrN9aZZi9!U`i%il9GGATVWB9Qhex_mDiZgEE!hR%FMayR?e9R zg;7=js2r)ih^1uYn7UB}P4k%;vvpXLElUckjRs;dZ&$1*KSU|I=*?N5Wu+)>oqYKJr-T9Fl?+yE0Ezm#J`qLK z<3r~DMrmh5BpbrM#Wiee2ia>K4mUp=%V1&0Kk?R9KWexLfMEW|^q1zmy*sw!ch9|o z43t(HB56)mh|wWrUT?qj)-s_cBylk9gZ9uW=gewn#;~FtxJs;Fx!V1MX1p14;W3LN%#vd3rYNFD`xR-G;$QjhlOisx~CAr>=>Z( z4}5c<24FN=meh*!D2z}x)YSl7srUxm17%;0oRJ6+LG*y3u;Lsy+GmeK21i`>d9pyY zE!3T4GP*I*h>Sj2yi}?~r0&QBXwyHPnXUsvL0qx$=aZyTF7c4}y)K&wblfZ9Co$)E zOdkv0SrN$3G9fsC!H^5QH@|};^)+qDpJP>_B zqFP#u8cbxvO%OF%o#_xHz*kH#oP~i?F)+}~l9B7%-fm)L;GYf*I&nWF@}0tw$gi<| z7Uc*lxYE6RS}7aY`P;yV^67%63;YFP@z9~BqnU+k2EAt^+0&UK%5uQ(XaM!u(@xMQ z1CO^uiV8Q63o--Pu-Om^qEZntT!O?&_^Fl|6 zHa9?>S&A~@{^z_UOcMd{gj;j_{Ypvp=mPhtH+!zex-D!~m#9h;P97{`n&&Q1cwnsV^yg+Qu*W68Via(C4PT|2q@N3c)?)0{#3BOtMH_)U9u6oL4ZMxsgYke{4$9jCg>XX z2JidwlF59OQRU_7_CUa?jbu|SwuvEVI0mi8@_Rfr2LL-}A_>4NvNG9pKKP~S&tZbZ zN8TVc_=sal$Hq@Ue^xJ;OvIPSIplUkyPtj|OUdHAwORG9$&%}B%|o^2aA6su+;hpO zq&H5)joWIRXMgq4bS5k(EMv%0n|Sesy!Fx~buy4U`>yd-5q=6S!%sEW&zhPQ8KTxx zz-;+wBR+oK$Ca^(S4Ft!S2shi$4&()j~!ryE+qqQq<%oCX>J;>D;i(%A3Z{eX8JVa z)i(kF!Q*(7NbakRM=!JqV!2*2>$^4NaKy*$_lf6yoi3!+n!K zL=aY?#r4n9dkYv>Le9&Vmk>xaU(F+K0aX)rle^Ua-* zlSWLC?u5;23nv9IR8*ShX?Ju2I~_Z~n1F)eSvo%~cgrIUeJ>RE){-6K&taRvxdqlR zmNU^4H@R?kdP%!zIV2^EU*eJc_h&B8E?QO^Pf%qo{92w?+C@v;0zGF82E7z9fa#8Z zDMMebn{YY*rHuC&eKOOTw9D%^xOz^}h%iz=o_;goqmn z9g|pGXA{uwBtx=JlP_69_A9ygjd7OP9MFV!Zw&<^fy;tbS{9+_?TmHc&y(MHx$mzyK z(QkiNPho|e%_%c&Y$GmdzWWzKp39ZCSE!DZ*tJ-jM?l18CrFAG9jGWVd=**UO2+H4 zg=@0~&uAxHgU_gO=X)5Wh-+W!{F7LDKQZ(q19~cue(M08fnc*gzQ?PN_;L_6dd@~l z?f~zIaq?iV2z-cYxAist+Ni$CE<4JK$iMFru@WR@E}dzGt;fIa{1bPY7+0mXjw!qW z>cv|ND?yaNHc{mX0AdH?w%O%SgeAMx^jyr(|A32vjX&01ia!lGSx9oJO)`HFEh$A* zOAW6erb;U+AQpqkRc#Y6_}BKV@q5>qQ~9u$8fs8yXMAc_3{?}gW4-6OikSB$KGkXm z$sV<;pB!x@AX^(j>%i(7@|jsWK!rb==}fLOGO2z997xeKaN36%oD(nmDuJa{8QEmLxbQL}oFhQ23KtO)EY+ z{PO*P(kB|YFk!dbw3PCc?5RX0*r@iGUVczEsbTP4n(jUmlgV{KsOPxyVQf;;{W*Ju zj+Tao%WOtThucRB6m z>#D7lZfh6tL(#WVcwJpgrR$qPrCobBi3ZqOTQ~J~AQM}ccXlk_egpo|CqpKWMEAW_ z;IpAD9t90LY|JbKw`p^3UUD8|TR@zc4i&R%rF%S$tR+&#l!P=at*Ro=+!|e+hxA>F zRe%1wQx5lY?>*PV1P7Qq?~Et9EuOebRsOTGAX=`J|Dbs(he%vokegDpZfMBdBAM8| zhz||~|EFq+23{vN@u(ubk{FhBpR~dRZcW|+Jz64;GMfJePI3_ym~M}Zz3x*U!|gky zzls_u4YZ-P>j{(+k!LfFBUoQ!C$_am(DWkDY8qM1UbrLw1kSZ&vzou8|F}tCVa7)& z9t8g~EX`Bej2&ArELGXUHXY*Dvc8m4o%*D38rtqru z*bIXv)q9VKIbm76W{M(>3Jro#WEgr*glFDg!)HAmFTqNfc*b(q zun`Cq+g?KE^ijLvM^~>nI+ggmy1*-v9gC6FWtZA){ShHI(%mJDFzknaq-i-)%Y*Mi zj6`V6&H2VPeEal$2CWx9eZObflsQT^mLe5>gAO1*KZ@6?A+fd8R~Mc5QGY;q=K$@r z&;xh_oEdwXy^3U}A1&{`OU7ONF5#QG#$sf#lC&$GY)tIZ;otbexxA!zRahS^nssJi zYHNk9rsL%G&bN1Zo>p2S@XBnOoh1i5OKAOIvhbg&4yPgO$0QXu$j)aFi&%4yJ`JHI1E0-nYJ(WW3k)9zRU~q}F^9 z?Gx>qDhk+OVnsqCq*My_K)ipT`U@BO0FSZ6TQmN0KbF3;qt+A?*PUNnu*=?w9qche zP|}>!RKyO>lm~a$t&AH9RC9G+Ty3$3v=*Y~)Zp~!yiIvbtb#49k;qUKzFR^ckMSZy zdV({#=$lmxkJy5YY50Co@ju1Uj77bo0a8`)qqZsUcEa}f-D9udjSmOd+ddP+}9q^QP} zOnd_&F`KAHdK;nkUs1Y=wI3&0=cS|O3EjcSjL-7E8u}g)5Xs&M5RGq6J9Xpgx_ath z7p1^knKa(On-L8(hG7kSk)Wt6iR5q(lhKW$xcc#5Z#-X++SU<>ErslD=XeZ}^Muq; zDKgy1{_Nf3`6K2Ls5rhN-*BY@9=A#NLaeIT zl6n}^abX@sMWtLeG26z<866+&xw^H{{YRtsr891&fnLt~U!m1vy^ZbzyH6>G$rkNw zGfa(4>>0TliA>@eI}8_Y;dymwh}Hbplj%3g0eE*^QU;89RFhv08DOd@eqc*}yNT&? zIe)D8AkilLN|SwB90U9cA6bIlpgOxr^AmRjZ3b@TSG;_^bC--u9x$>gw|7eIQiFp^ zsg2#lb8vL9=vnJiE}@uV$IjkGv`M#A$Rlchs`$lk;`x>q1URAyOBoq$PEXi89pM9| zBXH2=?Y?7~$;#qy9}Ef{{cK$wiHKHwFYiD_fpk#H&A!hd{mqr11==9N!k6%Zrk)bu z=!7a z2s<-X?v`jIo_UmZg|YPabe`(;4iAz;V*hPm!xjRm-+6xL`EyX%=*uqG^&bose5vQT^ zOh8`_3c_PRC$kUU{=v>b6LyEYX+b-&sLt>0eb9WAL`tx@BE1c-*5|n2$M?-`=AHB6YDU|P8gYlp54rKefgrJ&+}lsa0+{%KpQWzQ6TzzmFLq{Ws<8|$#9jt99x7`|1 zg886F=K5sO2>w{;!B@Cp`$D&v8v@4vg&cDe10rFBiqM~`(g5dbiEIkzp#pMZLV7xk_TdFOub#O5ZKM_M0a1MRL>Pcce!ELQo!cFkqo)1k3*{n|em@XUQXV9odqZ*c=Wq)NkPPf}LH))tz#-Eh=4~nk8(g_;=Pq626H=WjrPF z+yJ=zZ|R?i-Kd{RDo*J)77UE z1}gb9wwDP|H84MYSgw@mAIY>KHyr@oF=W7<-74Ue>+zTkV}-pn&nu%C#%-Q(wf>l^ zFNvrDcbY?MIleAkH3Z>yL#y|feG_A}p|OhU;`c}=OC2FO;oG)!=>V#=B0JISsVhp6_XD(;DPB0juw0UmWjIRQR;F!k`(EvgI zcr~v02KMhijAV4CF^^9IaQrz*ri7mrv@KI|?m829?xi)Pula5OHT5oG6@{X&Vq{Mb zmit>g@%RTyNH0icm7Ti7*7-&%Gf)1-%3eq%e!ZGw;wfL!7~$~YDvI? z;NS#u(&2H)yqUSk6Y2h8-M{?2sKD<{KgyAn03&9znjE{G$AX_~+{apTH%{1|DeZVy zbjKrnF=-!`4UGEkGp9HJZ37HgO$&?@!=#9@?qZDHw(^oV4!WU`(_t6aqc>UNb*Z8c zNs3a@c|<}_BJX%b0)L91qg`DMv<1>^blMYMm`a-g8*$@3d(;cz<=~F+Th^gow($ZFfXr&M)$bXmnOsqR)=wY!Tf#~bN$Y(_z_f_Sj>~khrsjWRN?xQw|6ylSE0mKOH<>(~abN*4Cm}zgf=yw9DFK>)I*^k9 ziNDS{O@}T*oJsaSe1rrjAfcrn_YbV=)NBYNy}@7QjT;@7;SeT6M%KK9A$xQ!{J5oU zjq65EIo54mM4N(CY1~bGB$hH1 z^}BjxH*DjK!rJ2=PWSUzz50J16S?*+#=iG;=C@Wnoz@qXgC&htT>i=8-3`t;JET6* zm8RuK=+?Jh175<6Le6+!cg~un7v2*M3e;t^;4?>3uC#uWvV2C-vUCLVS|c(-C|45` z*0Uz@teh0wmlPsa-n%UMELi@Q_aCxbV2aHXY(OlcKQBc)Z6mQEhUg%BKe@Yl>i&fZ z?jH~@V5fcsv8g^g5dg5x`K(jkCKLV4|Md&YACdCgy&@N|m?TH550|I=BR59;R})<= z?FdSQuC+A9q&e4N5f#mflaBt-vrZwj4R z$fDl0Aqif{>neK-{zl?|_C&`oqZm)!h=Po+ub$XNY6%Zs*Z58#lRFlkJow1kZg3H z2nPJ)=xc3=<*4J}O(NG7e#!Jau%q$jl8?Y@XTChQUFz?@bAFWJ2l>V1gYz1Dt=X*aWBlnD&S5|;!PsYbGYf{?!1OJ8l+m+%f%#e`7 z>!nBCoU8hy4JTLM-UF5V7a6L{RTi0U^8-9mY*xfiP{e*!_foEjqXKDZI|i1KWH#g3 zrHGU<*JMkptLgl9uWJEUPk^b#!?LdR=C)rOP;@F1#?-Em6l|zF{oByVa8jtM)vdfJju9K#8=0`(I}8=_{Vd0* zK%!e!!zd8mAx`-=Qh0iz<8W>UkW~3SnNogN*8U|OA7lWiX^_fIqV7---H}|t*t+m} zM`GDG_6M70kr_>IHFPAF5lvsx4>KQE|4(>)?eFv>CLFH?%Ro#Zt^2S^c=x*fQJ4P8AYgC{_j_fh-exG)y=OFu2WLU z{uDwEY!hv{(Lm-%RCTg$OypWob-a4)r&;}Y(oXbM{L^@vj>N%tpAo|1x7UMhs=tJ^ zM&a+Xg2PTWaLK%}HR5#)SRZ&2?7f-qA1cN-Plr+>&yW*>f_5qHA>R$G1Fr=>kYs@D zE%)P0ni+nDG%>Jv0FaeA)JF>5St2pp?y-KzgvZ-aXj%OZ<~665Bez#ik_gn(BV7#* z0>4QPZ(!UMdSSGbKY)KdP1XHbmLDc_3qQjsl_kYXCb~BX1WL>7WHhAlpW8@gjO}n# z|A}mz#SH=2+1aJ#<*7e>pTwj1>XM`gW>T@LgWt{Hy;GFYP$s`Ha@oL@BB0#aCXzvr zio6>g{jbKBuAc|tg6Gh6+|dNF+L)}a${planyV*R)gmU!onw@)oE z&!>v)6|aVjw=5pjmSR0K0~MoaH&QU4<~Tm{p&8Z;_3E2Oy`)qggR8+o7HnmJNAb|X zWHb|waLLutJszB!4lZyAfFEVw5qNfu%ei^0H+2trpW#FP_tKYoGMIFR-w%J1gFD}Q zzd#O&tUIRor_(M^%>M03AY~`g>%q!roUM?l!QcaI8!FR~9C;fp4l(gtyxfiGv)$Mc zc7yPSGnZeMKj@kLiPDiXnYjQK-$szZly86^qk)|7y*py3Z0W&4?0^=utEB}CKqP>d z5uq~s2Dps?SiihFJwEov$5uUx&uykzTk`>Z*3e!~?lR`zcpGxcy?CSmhLZ*Rk`p{+ z`3~u1_~ZV7F#Qa8eeDV(WC(F)0Cl$Mkd6p$JzDP4-Rq)3N!cXvrkNq26~ ze*bfxz1ulEXD{w^-PiZ~NjR&HPV(zubBcgJYt1;)k^sKqV5hRR=}um*&v!RXyt;q- zAwh3cXnnS;hKB9sTQSE88O_0YNgsCiw00gHrQ|!x!aIM}8E{e4zy`q`VL z;o=#v${>UD)oP5j=^_h@(7R9i=C>#Ff= zUcU5@1eew^8S)N^TxgSD3_a#+kzDuqSr%d|Cm~MpQoX^3zF}A?e1ktPD zcf^y*aIymekirQ2+?0Zj1$X=3$++z*S^yExTEq%x7>4v31$Tco8ZksjT7C9Rmpnaz zCfCON{<`wh^FzFd1HVAS`oh=NT_p)hFJY4i+O-mh%GL+vSm&)I!rAEUBEnL2vxuYX zv{H2vSx;jz)n3uWJ+s@IuQ8%GFJ{WrJFmjBYHN>(SFVWUd}`3rd3rka9YpH)j-=CY z{Tr!{oa?OeT+nvPbVBrTt?I`jF+la^zuZwjwl_l%dbF_3bKRVayK9Zl?RvtPamV=r zmc+-xQ#npWcTlDgV>K%0yaXYK)5nCgn8nxgy#S{=9xn zq!5m}PQkQhmyv@JXc2zODnJ<;i={i6OMAnJd0j*h`0xHlP7GdG~q zFI;`gn~*jkMgY#%{xZCb4SZ*5oh-6byC3g{~l#YCxI5>INY1U*GBAZH&;Q zU`~K~JSjt1H_yko^^EC-o7X6)Ty!*f5R_4llpkklm`zv%E2dY$+me8ViMVrAn%6Yo zd|0<~g4S**0&0~;-`JLe|SLpXw z3IBzkpOM-Fr0D=?04E+qub+%2T>c>1Zq^P;r}*q7Z{=i&LJWvHFxs`3>l^wIsDkTr zP;#O|lQ$i*y&b@xo{?8)3Vo%x?j+_+P6M>6{+*OirG}m$?eYV#|K+ro-iNZU4tp(P zRO|a-^a(kF+YQU^L(~8c@XqA)`9D=$y(h`9>dT^k+B`drY%5~8UW`Q`KP2x6yskPg zf2u2nI(?EMlXBany zx+K;++y6ZlKp^R60lC3~=C(4o^vfzfFYf%UyW6>FP1wx&Zsy_9>nvXFBi0zleR*-ymM&i~1$a#9@qY~s_w<3sn44yuJ?ix~ADkKq}j!PkM@Rw+F>gEDqI zsIm9l_a7ECZf>z@15N<4Mz>v^CAjMxP4?Gv11-4xb01>?=W2BCG^7-{-gK=os;U0a zg28!-xN4Psyhi+lSe+T4n!Jg&pFit-_d=gvE}5uE4y#M9(_Riz&^AV)yUgQDbQtnI!z6 zk<$v63hRmEhbc3g5q4nFDyXQpZ^*NlPFlm2Xd@$Xfa0}93x%N|!tbZ1;Oot}tw)AS zVSzGka;0t29*F^{*Eg8GugEU?qx_#(9dS}&@VuWtfBv(gx_IL}1;8VH*f#*^(MhXL z;qb~1_*Pk4j4=@~o!Cji?h3`>By4JDVb!6}fQiD!Ezh|o@z}>(Vx7eo(JzA;o21yN zoPe=w_$-OEUNi~!pH~P`^H)7WXdgM$6x897I_U6`O*lzAa$%2nYR(gPoHFj&rZ-g;Iymp&QT=FU3Tw}?EQ}&cVM~kA5Wo`NK1sYfOtq8ZRpeAAl{ib(lzPz7X?@d@9P ziGH$_SGtQW#odU1z{rrG`EM9^)z;NBfG2_hV(iTKevh=`+^MmEGEX#fFb)wxKAY4& zJz_nULtu^|?Ze-k{_d>w1zL-#L@)9`PPDk`n*83~uSQ%olm%QZ(v_TkLZEgOd(;44 z|GkZVNtA^pz#pr#*rGOsN#kBsC^xZXgu05VD0fy*=-hkT78nf z&0!ALC-3!eTgrXxDP8yH^&_HkoiOf|csPi_m>=jod~wJyi0V~xVF+fEuC!j-->;>? zZ>|ov!*wx6@0DEk6OR0HiFQ_ykZKBcp|CaAW%Rw0o3tXy4J-ix#>EjR!t{`gxG$y9 zQD=n_Fug>6UY;FiAR^l@?ln6rYlSdxEqe~1OE;??(mr+QT3r(Edfav5hNdht z0G+@2mXx)Kw9zF__ly&@aPdKt)7omV1UK{ly=P}K4k25^PC#fZAn48OPl*)D%i)AW zn50S{8KME-bTV0Rfg_h+@(ZplB+05HjX>gGTJ{{YS7CSq>>qaoP$keFN-lzTf!qrB zCAOvnd8*Kaaf0(Nvo--b~?bWJmbz(%uijp8^rEhDAy z!Ug`*CtVpH(70i2V30;h#55}9NQ_a{?tLrSc01&x2{pR$4iNI0cz3h`Gf*iDZ41bX zkNDeU4GTf+Dyr~UUA-yAAJ3t9n#b(#qjw!FiGjvA%Q>$;X-dH4>s0`W^;pX31iw{= zhg6m272i=10}x$fzTbdo0CE(6gdRF7#du^FKfgp5R$mJ7jxG0izeogm&xbIifO7(n z5a?fXZkKdert3!3`ie8B{8W^z=;yfuM@df_W>(z4CZwhGg*`F4r%KhuB}fhlr%IMy zFAky@MAvm{d5nP?K^WDYSZd_VtCImQFPm1j*be@;O@l*{RRE8qdVuh1Yu7*zO1C8N z*y5qLcbJg#<1OUkLe|ZO!a4S8S%UrVVl6-42{t-9ddtkW|`4eyGDA8^6x z0z&pq?z)(VLkQU(h8^3q^Gm&qp7l=MUSzyFEcV6K!nf2 z`ivlCsuX>FaZ(AU5)UjI2H@7n`aTrf=A^$WCvT)_t*^6Ylg*J9IuVmY$6 zVtkm#E-b!fofGPa8ra*&FFTn>aJ0V`r`P;(HNxC&YAT{+mAPnhPL27nn*SG)lrfVT^at_xueRm6ps0~qju3{-&E z3vIEt^RpmCdy4V^RwH&>%+ne{aeEHmyc^r4r0#|Yf}0~di1h3gEpM8Ca?E~RD#+b5prJi?Cv^(Yl~(!mcryZU#YsO zF>80H_=7yaE)!$V#7sc$8kY;B4q8=(zxz$DWdFICI}fNM6dz%YDuhs-^j!{V3okDA z7T4lwrYS@fNWxiXG!urAXaY3gn99%vNemB6v+o9yn&0%;tZ zv3||>SC6ZG{$P*(?y}a(EED?)9Y|4LvBiRSLBk`fW6<#C5$Tx=ako!^!hZbHp}O_! zy^ujlC<(6&5R%M0^O72zxvRtsvozt|cutL6X|q8_W_*MnYNEchC(~}7Pz*n~*a*gI z5jp;YVPplXBnko2V0s(D=DHH$H{aZ7;SA_eBwGnlxbH0i5`h@}^(Xywl!4A-Ly3~4 z{}1rOLlK|i2B)rledI)bMgYUTw`MdTP#KFv@zWH9SGHIldZ57)wee-U{)J^!>I=H! zdIh*dhXaAOkNeHdNuYc7rjW4y`SK)(f8N$AVBx{jYk+~(=I}ZJJAHHuS;-6YuLhkM z90yd;lJuqtRb<;WO7loobHZY7K@!>X&upnn05D#IE5Gc9&;n~}ZUQ2P27FUhSaZe; zBWr_LMvQkx9Khe*kM7LZdqgR1$Y|{AIg%EkLl>u(p2YZduAepOAXEQl>AHq~l&JuO zVgUiHZ;+*BKtOj?Uo|>_dMrTC7Kq4h!2sYR6yhrwD~iMK68p~;>iI6U3;=H=CT+Lq z=*fa_)PmMV&#P*$`I zxQOG{!DCu{chvK+qQz;^eEybQZzrMmIp9~?TZdZLub#d;rsD6nX>!Cq;3+k!+q4xT z-<_?7q#wncks`S#KDoX*Y;bUL&bfQ<*{&D_@U*@*2^0QZQu{>1gFia7Mm5v;5TR7Vk;{`uub z;DErulM5)ClZnjrz%{g!6{s=~Y@oEG%{^IN?I-;GF8F(aDt~ImIU871hz>q2BU4>h z8~VA9Z)tyP>*Q#lg8YE*-v85!-CKLuudn4~X+sq%mQfodbsxMx*xTT*-S|j)^0BTDm{pbYSY#!s=PX>8c ziY?NB^(QHVJuNy=r5AphM{+Rz1M>x9=>rlCPa9JazN%QGP`qa+*&_Btk`<*AqRXa( z6EL6*v9mlgGkFZr^q$B{-kg#jrqpay%EQkhV7eHNjuU^|Uv{r^EqUXP9yLnK{|t>j z$0F|xaURIoIOG2(Bx@bRbF=XDxQe5_>@<30_ zj35wcn8}<_8#J;wV`}M=H`Zus>6WbTkC7+O0=5*mY->>Zuh}qcGNMy_UHMj~H%4em z{9080B%v_>>@6a);W&s?@P=7cP6?xh1ijEhLl+^I&cBKi3} zq|BjMIqYCk`%w3V%hQPpgG7d%O4(kAmKG7*#9>COjgr)8D1}KwL-rKaUtQb0NMq-Y zb~yC|G%44@FcNb61LKZU)ShC}Q7{GOcaD<+OId~#_a4K>1sRV`DoKM%RY_;1X zt6NJ|Rdx5nId;Bl>6uBjANymKxhy2@u8L9~Ob;9Iv_3y9m%Cm_OEv`5Wa7X7777ag z;$u0vT}8fa5>z#yYH@mIVHT9aC4GMc6ee)s>ERlN&B9dptJ#O3Dzf4f|QZ$@5bQ=o(3*_ho2nb*WQ-6NPfO7-3JA-N*i zge^qBlgJaPI|&sSKz7uTd7GU2>FWvQF|%=Nxmz~S>PK@L>P zfwoi_bA0*gquK^LsT(<7#%qgD${w12|R2w%eX=0L+iMU{+?h5-GnhVT8o41=Olz>mDV za~Cq$3tsr^MWJVgIj%&p2|Yq-aQr`fNOe#(ar=!8K@k(ZB!A{NN5+l(6=CiMqeS9=qIY8o0R)^8bq zd_+d}BlG#ld@HFYmz2NA+;=uOl?iG7-Q3&Tj|8K_tDQs!G-96HB?P`~{oMk(V5s>v z&wR8aI{*^bQ1*rd8}w!2>EAJCF|vd zAIhtT+gw2TC==2~*j1y5`E4x@;Xf_y+Ysl$!;QOdg~YlM0Tz@^ksLSp8KLRLXgt-n z!A27e4NZvw7Drly02>}lt?e%FrSw#st>I)CChzm7Df9X+qrtg)C}V!D*SsHIT6=XSj*At(u%Pl6$O)7y-)t6r@o~XBcs?WlNQ%+ zBJ-*14ebALFq2ZVBO+~{EkFPI($B{l5~zIrPreNs4L})nceHtGzkFW74+1$WAv|e@>$)19X>~rH>Rc$QPnEu2eZkn zE@6M!^+%>y(t%O(gPl&5152Iq(4Zf!-y#YkIe z1I*vN+1%TX!ReH~%(^68AGhxnGh z=?4|Dko$nK1=X(~MVl4fw03qyUG0q|AAkF)XNskz^;Z49bSr?<*ArUdd|77wnUT8( zQ5OU>tA?0FWo}?srEi#=Fz*j4NWS^&lP&p@uAw-P>G$rKaVIg+JsyPA$&ZFD7i zjV5AO1HH$fsidj;<>b&n=L1_?P1tBdI}2_5vulGiy&BCE0#-pAUPWoyd%dZpf1Z$X z3!7C1V&DUJ|E4ZMWCD@Ygj*GQR=Kc#QF(5PMf42y;i`_1T|bH;Sd3Obai@+0%5`jQ zL;Z2DnyZl3Fe!7_z^!+3nyU|TRwqDLtU$p%Z3{y`4lUJ4dx65;$L9sp9A z-XU}_15r_snZa-xzQ%qXoZut-!-GSY(tVP~#`V_8aD78mT}AChtDx8xyWGs@eNQeK zphp$3LM1&2{uq}-7n=JOkPYP4L6e@~Lyr&Hh(pWv{v?iX)dS93jb;Ooz4j&IsFRep zp0A6FaaS^y7kGb3Eu*cCraxB?TWaRwfkD2i$B&;iLmVv|n3D^)6Up!=Gl?h@uAAk@ zhK6NuaTNmPn^OtZt=rF#%MMw_N0r9oWcf4F^4s4trDNXg{9s<_T3ERRExTv-1-@2C zxN*EV)YV1sX}H6)05#Tg5Xj)%*z2)uK`bxPm8G$Vzw}7PJpO=D2W*=QX(2K-^kueS zEZl?oqmam(AN_r_%&b`rIN|pXHQ}&=?AP{yDS(tHTVf-4N;jw_c{1rM;4m{Mt9uMc zwyD%FfrT@sqTVxBhCIeyO1HXDOIL4{nwM0(nL%u8`stF3O;uH-AmJY{EW0f3u>IHiDRCR9z3LwP_;P&m&ueya68_OcoBJ7Yy&diWv59>a*sPrGMj8>Rr77%1 z42asHE^!kHBbWp7q$||l0qd2U-z(y=O3&f-SHzT*JodH`MsXTA+^yvHxH9I!L4gt! zL;r|Hnj8wSpeS%1Jp>AUzFyt=qYg)~71d2Z06#y-oBC%ZG@EEF^ETE`|6as^ug>*7 z8CkEm$+G&TViAYtdibmGbiB24wl^PI&f@AmQ<53(p)GiBS%$}Z)A`JjiGRGH`y?fa zLdpE(m8`4Fe}657^3d%nk*+Eyc0u14(|pCuBhml|@UA-J?|c zOBf14OYH^0yzcTW+n>VGQJ(HRRp7nM(f3l(>09`5-k4SzPn`OKohp6sB11sWZGMV5 zQ5S_ZAwU2)zz!f8#DaQ$F#@g$fCfrH*HhBc_Mq%sZlLIpq>DdxUcn94+{gB?#*m$Z z;$yMMm6nYB@^UpJvHtrF={FXdFeNS_YGJV!+OBW6ol3aCZ(V)Cp91J=Q*@)6H3%)z zp=058V?)I|7wA*QrlDWTv*c;8ZHww|zC?aq;fY4wO<=49BSMcJLs0g0boppFUx#J^ z>II;CNc!sEVr~+~dI#Rdp5OQAh&R~LE{u_PE1Ti>L}`~G7Dw-(UrHPO-N3C7nOzYz zo4>FJ)?wx77`kmq zJ+Gn?L(NMq9Z9;sv$c*KeESS%AvM=DU^Gh1@M8|B$2gU^Su)U%7yQSN&18Aqu_I

{_Lp?aY4?De!g9HQZ^RB4$|N=S(cI*SA=Wu0uDxkr?i>PDDL(eBP!#l&qgGxWIe{r@* ztY6|bI3~u2)N96tcYMPi=YEj$n5_ar=h$mp{c?Y zF+onh*UGVeB$beBj^VyhMe~TCk75l&>%fcgylaciL3{ zLPi6!uQ0f0WQpqXeay9=UjnzZx24T<10q%{x+W>5_5Iiakr5bVzI#Plbx!FCJ^O4Z z!#VP^kajXfM9U2p9626C8%cuAT~y?&37mN7tYw3CaoPj4nRxK?$jj!y5DIDgsn?t& ziC+O*7>UHcaggiDXzW>w`?z}RcMURgI$kM=XcaVD;j5NN#MY8d7PcKIjJ*y*BkboY zEQorC(S(8(N9lE}JaOKPPQFCXd8E5%5fp3GVS)(7hiq z1W5_2ZGKH)7=Q#nNSOjp!2T)I4_&o1`uZijPuG*jGd@sgHGstMLOpZjk-TOkc{ij zPq1=6LVx>KLo`$~4vw|=?VD*W1;7$J82kXHWn;io(eYGH(6CdKHVnYSt#gu3wNJWp zkSu;{&xfDaSPD^dz@n3oyiHF{ofC~leWzIW^XI$JoW_aY+MQ6b9S$HrfLoF-IRe0x z$RU8#a^zCu`r>@NR+~f$Vpse;wP>s)?+^O7TEYZ)Gw<`!Lpn1Uzz0B|N#+sYAe`l! zNg~3J$Fa0DoY5+wpCi`Db;QV{e{zfjyt$dwRA#uNR?NBcU0{-CM)5W>veI3ni)8aRo7Nse^6#H3lVuKk>S#9%OvuRCUUYuGj}-76eDU$FMZ*Z@bSCxYp@az< zk=4%;z42h9n1kPcF*|el{;SB(P?xV7Pd&E4?N}$yRF@N9%0m!veH`Q=24ruIPm%T>i0Kc z#pRrYfJp?*k(OfnNk+xwCbY0_@ucU{P@UZ=G%bEp?0r-n_ludj=u0d~O>UQ%*OaL?3Ksj#K{kD1^6 z5T>n&iG1RnU?eOjr^Bm>0H5YoU-~5>lC2PHc}yjo3-bOI;AQeGH{Te&2p5viFZf~0vJ z_29Gi8#X?Wqghw-R*+ypRRIk)q26V5lva3b7`^NZ($JyZ!lIOyvn1||AIrp#6mTsL zFu+n!LK=%An zJ=H^w@e?%dGV$5+L0@?92kkpURI|TA7})lqIg!^Uef_inMfe{PlrO2H+>n*n^Q!Zv zp(ygi4+W2WM91e^XFioC@~oBPp|6UJ=3)AmNG2P4x~a9LsQJ+h+rdy|U$+T!enUa4 zlf9Rv`V*4SUi<@er-&h2oETq9v2cse($HR~{vzqYw4r^d7|E=3b8t40sAQ=&sv|qM+XTY z3+vL;Kq0{sV2_%MkZ<3mvVXScl{jIFkUosYT(X^2R5-#JI5?Vg4HaeDnlG5c0`_i> zHPnNI^$jCk_#CziDo-R(x)Q>raKD`EP4B11a!W8j`hSWIZ`@nj4=+;`|p{BBdbq@2x8|Vk^}VRf0)hl!uyF9h@ex9$va< zA(Gx=b(gd~#7;^>zFYCja=3|BVR)jemtg*DA9~RlqOG_zJWUh!O)s?xK;Cmt%#rOIkS_T zn3fruz004vrzIn2B62yS>xNLeP%=yXV{55H#Zl$uDEmW?G&|r@H(5u>md)(2hJB@E#n2Ql&b$lXb3+p zunV{CFt%Ncp}aHs4c6j%14VA9^l5wZ-7+O9NifA%*>Hs^EWjkCR*+B4gRr^njLxIu z^z``S?8M6Lm)OE9#`oV3j-)1g7X3{wMkjmNIG<~i68wJ`$18kQaO_HWWul^NT8Hy# zVm&IGFDmM7A>>`9td#-nvqM9jL7?fjJ0WG{{a-H}fhz2Q{QR~1j<2S|$%_+(H9$^2 z_AOHbf)!4BS#l>5bE9mGMu|xh_FZ(%zl`f0W)us@$CXYZX zoJI85bNuCvxKerXrWgF5%gq?N;#4mb65dsRkU%e+>rAGP!Gn?LS6Jk3qGI#*BD zRAlEavOfDpCsmyv6~@P!Gu8~_nVCzNs>-?-`GsQjrsr?cnwySPlvH)u6l6>#yLDB5 z$FwyToayjTNh1{c`%B+M>eArSlgjt45wuI}F{D7)srC8CSCLJ6IBj5=a{_QrFAvV? zYw|8sO~ds#&V`Omvrj$RtC*rkk>?*ULTWmAQq$@iUCO^rtx@p6z{;be?#4;Up_ZRM zaW71V#A<5ZMZu}>L5&jKck=X7*Obki26PrPL zDMtB;hNwjnUka|VGG&ajFTh(VW8loJc3}IV*F{4G+e8-PJ}tnKHb(a7PUizU5(2(M zJoup8+IXEPXz_p^J=Ty?a$&i?7tb$&^5=J61-VJZaD2hLKdX5wkr~KL1xrh zd8E+vN_Q5(wVgWe`}4cO^TC768?@!1&pU{oo(NKrkVOdYro3tS3~b zJ4yaLlAe(%1P#8H>P@Fvr(+R6oP^OnzaX>J()_t=-&D1LD#n#rb!`{b6-Ye^! z83kYaheG2ft5-xRR|(fXw$){@#)`t;r(N32D9K_}N_j%HBS&Z9Bd321Y-}u|2+gVd z!Qp`*D?6(~%(|h160^-TvE`b%-(PgPy&Kt$-iJsnx#h`_?;p4^E*$>;33+qFjioBR z+XnoY!@fhU$bYhLsru`TiLR6Ta|39~Gx(#QIXhq+Dev#gue7x4$*~9nX>c3Jc50O` z^vW_IZ2gqhkb;r8Rszl*C&!scu#goe;3_47AM*L|rXMp@#!Uj)Tel=D7UeKrj zHZHU&E^ziGDdFi3nD&-9cJXJs&ehnS<*1N*M^>jJq8vzn?iCuV3fYKCMII4udCc1Q z26}zp8x@5=YJ*+%V?85IVbYr~`31=<-qWiRESnca1|0E}9gV#2?aJUm^3R{|`?%@5 zCOHTs<)0HW;CdI6q=?7IUkSHOu0wfQdC^eu0xQ?P&ynSl-t|9|<GkAsuAKrft6uhFJ8kkfJ3&bPvt<4yg?AuW2N1zzU zTB@e=19SW8_V+Zpp`u9?Qy~oSSNUi({GjkHXc>YDz@U(~#}NQ3X5l90R)gnH#B_99 zkh6m7raF!ZT7&|kb4og8rt9N};?2XK50rFp?nsK6es*0K31rgpBiR>KDd`NPu#9{n zyUAj&VSf##Uadd~0aNaOG=Mv5x0nzp`eqB45i++MXpKpn`Y>wX7JGV4COnYYdXcBz zI}n=gMtAFfuq5RSNxYI@6S||6(>r?_12~=rVY|Kz^0dFBKl*x`*RaE~(sJMpwarH3 zzUJ9d3eU~+x+iE+)byGM6qZbLID;S+fKPiHm4HkLTDCZEq9Jff5Kx=&B}r>)9S&S+ zeN|X-Cjmyy&_>EbBn;r~bfSyO1;s~{EmzJp%kOGW=Vpbm%HKOMm+11S%E5x@dV%r%GhaZd0nRv6hQP0+oB#G+IiM=t<87Uu97Q%y zY4fKM*nD)Mw-;Ent|%S_#0<39DSmkl5<6hfbgYB*$Ql)a-QO;HMl8j> z#`8)}IY%uF^_LggOhd@ioVqbecyISS^@E?nQrjVNz~iCA{qCHDar+i>y#Rlq!ZM{1 zNY*3mc>jG6kn^qmmaaJ{i0&*mwgcFFu%8eM3u!(khTfn=Di1j+ewbw|Eq8ju{JDzu z(YNn@mir=0hfiqTp6EEX`3L<^n?5!s5E1TfU56FG>0d_P-#-#V0X8D03CDvYH9W5$ z4w*3nu7UQHL3c(-4lvqU3{lwihHQ*~B{kWVzNx9An%OGL;8IUebj0`3ppaO2W^4+a z(nnH=DIw-9hsJmEnObanoSd9r!%=A=66VKkxW|O?+PTK}zax7#B(k#r>!DVLM^dzx zt^vzOQj8K3CeP%DnZ0ve$ZS%l zDf}&|h4n8rje_RGlYLguNO zBh2Erzi2ZiX%{CIHSYuL!RpawBc#A#7wycJS9~+V_<6j694#}%oA~Z}0oF{z>VOfh zF^2P`?I#fH2C*hQ5 z`87L8`gcJwu*UDD|KOQX!4m+-d?x8ho%&m9rJyZQ{w4}pmqFZgjHv~=a6dR&J`e$T zph(#;N$(Gp#QiCB2yy|%kpt?{p^?Dan&6ZHaPrkV0-DvJ2~)I#xsWg2_>TWXWql!k z|4vGqsCZQ!xG)UB!N@Z+GfE#mc)KA8*^RmBg$`PJj;ky%@u~b^>dTuv23A%P4Go2x z%&>-&D*1O_u0UFIGwF9E+^t zE;U!bOD=YkBf>Edz@mt;Qggs94j+o+Ot7=}E=j_me;DKuL)6q%NCOk=%s9)eYj}O@ zRi)~=x97wBd=fl1E9s(y4UuV@v{P8IiC%yT^Fh||7P`F&V1F+oWj0^Z?N+a~5fKHy zf9vJ;Ped%|sxdvzUA<1kuv%tWZW9v|NRwe{~{KqTcK>$k_yg9C8}#$6hIejqLF zMO2LXKRh9h`>m8fAHSou1%01yQKZCrJh~B)jE<8786_-k^jKO%_ zjEnt!k4;BZB(;1g_X3%6t0A|iR zhbvwRyt#eCl0(sLLiLu8q`p&Fx$mK~)1zjRFUiU&JQdg1AFDb!{r>zb`JZG+T5j&f z4Y}8T?R+pBY|zxqv!V8q3JDq$tjY#E{KzhaS^50>8d96jUZU9Rz$fp+8A)OzE>9Eu zlWdK0JBd;vYHmuC0iyzl_acTi$PNl;l9r~P2}McNWCmBKLzjopzx7@MFAIoixo&mr zbo6KtebtzbB!0v{2q)>qQq8FwAP+oh+>CCd#f+6b*QpJeNsq!Yvx|j1AJAHo_iaA6 z3Vjj&y50PpNDypq`^|^sw&mP&!H{UblEGtL7qlU!yh&$?GTEP2*m6X2RI#BT_s5!_ zpW>~ewC&X!!TPp@q!r=|YiHq6G~b5mbO^lAu>eK-?nxFOT7fe3t%azvQfYc72weF+ z8*Pf`zcI5Y4Ny;M6+Vi5-_8a=5Kd(PZ!tH3Itj1`9g2puNwDf;cBfPSfl9`IzjbQ9 z=21aYQ^)dJ0BbkB4X8(@uAyAFO{dY+MaxBmD_P_h%>CC3*Hi9QyWC<%aX%Pze1yLVIq zGiY50=R9ze-Zg5x+(h{8VSFw{^rjDk&4x~wZ&K1^NE{akyM9&sDr36=+n*Kn{Amr$EUcRYA)O07j23&K3Z z<1y2*0|1}^6?qwb-NkPzeMe?r_D(y6Gk^c_toQhw@`D+-!$KXpj1U z4`M&%Weakm>&OZr_iWZwU_(|E&HzTMqE|GBTvKdV35pV2mecixE|O`<4Jx zKEZ*Pz|O$-;nsQ;S+l!>;IBY310w@9i`QQ+>7C2vI?uw^r(eLSwYZuA#b*|r=hGwj zVt|ABX6vR`2f65d)&Y?n{ow0Fdtd;=1vD_IA4e`u3WDtS!|yg7I28R)NzqQo0gSi+ z0oHw1T3` z8-H`l-3VP8)Fx|%%qANaa=)dFnOP|0^g|=lqwdvy$0Z21+fJ%h4X`SSs3X$- zNw(>t=L{Iy#)2Dr6N!Hwxuh@UT1|M2K`N~hkBa;%=U6HgI)KunNOwt|kXQT{EU9)5 z7(hZoVyvzXq9@hc=?l@pr`ckZKh+{DqjVyxI@|qLcw?_<@d0fC`ZC z%aZ}X3-L2jK+gpa7WqD}QSB6-2Zpq2~`r{1>Eby2nSvjF5}0 zf`&#(*Hyy8#?t2a&dOtYJ}G#0@((`HV*UK?QWjbw1ZodpQl8X%^z-dm?T^m_<_E!8 zM#lRim58^;9ddivwSIOV{iY{z`z2?lfQEVF?GU?OMG}npY2wRC{c|olzcUEI#jfuT zj|ihx6O_h?DpY(%IBgd$R9atJ-m= zuaxBV)8boZ8gD-qD3rRo%CD^`oR@KhVd27cFi;YkKLOj0*sV7AeO7;zKN^`B%o86- z`r+Ye1{m~K^10%>iT@)Q3?E>`w|(}yb7L7Dv5%(eeL<(vTIrTve9n%q*?hIpgOtKr zea%3Z5ff;s*g~eMcUFcb&E->jYi|z?%VJmeu5=q6W&_8b!h^yK3RKf0@+BP4I^(19 z%?`1z;^nG+_(2kM%MfXLFRx-oqo$ z+38@No2|)}e1=!H(-V_6dO%D<{xY=lu07NLXaqQIQBe_Hy+C}Ydc3o|ra12X*7u(r zG$M%*I2t|l3+Ay*OmI~-nHA08=3UnL%Yxss8%H=FQv{m+4U@GDA}DD9v} zP;qgURT{uMRN7*$uoUfVP+wG$+nTVLxk^E0glvw9v)e--l}*p6P{NI1GLefl*R*Vh zbc0|l;Z$B@T`-lfBkU__tF~Di@dw5yZOg}3N29Mi6s6~7_~)o(_5R543sMZ+X7gHI zE_LCcQH;j*XAkU8F9oVQf~Gz~@1|FLC?XWdbxbbUzJ7b<$pL)BPjY_$#}GibB<3)E z2;j$nBBUl|0NIZ<91ehIH^Q!P;5q3kDi+zh!a_7Lr}^&Ip2U% zXNU1)eGK)6<9&`ks0(A%{WJL%2+4~CGdug!=YcQL7iQ;nZwVhnhX0SHvtWy|?b`M= zLw9$Bga`tX(n>c-cXu~ZGjz8g2$Ir`l+ulKNlTZ6bi>Ry_xpUmfNeIeb*?z}V=c78 zz3V>(yUSkf*|_U2|8`b}hlj^R{jbD~DB40?VIN6sxr}vkCX0>dr7E;0tu~m z)9YHi8Qx2LiV1d2a+76;-Q(tNhz-+GHlD%qoyx!+FY5-m!J{_JgW zR%pXGUpY`Dw?rp{nHa79UDCI%9>+FNnASH%7baD1IjX`Yt>T($}c@b{*nV_#Oq zugG3dW@B+M*4B6_4!#W$skxwO&F3*RG@_&aCcEJ>ZP{vya7$jqr-rgO{>IUJ*_PJC zN(8^+Tb~Iddhq(4m&>v+{oC2rkdE<5EDI!AyKm^%&@CdxISWy|{6-^lx*Z&f_);s% zL&kL*`PP^9x^)i1M41rkIX}X3x4rZNV1LTmVEy(RcMLEKfd&&j!{_J`3sBx0>9KG1 z&FXmrCy#=Hbw$>2r(K9g6BL@Pij_ZE8?c`*}(mjyB zv0eq6oq_y(fHSY7?BCZ^fj5jhxeV@>5c!T_fg_r-W#~o!Z$FFZ^Ruw0cj_!%>QSOO z+co>Fc=Ws_XypvX@)(6IfFPrrC^>hQ4jB1LO$+H;%Ip%)WeSCGX#B>~FgoQsnQccq zal7-}79!Pui+1!E_pbJJinRj!9#QhutbBnu~xpkB>3XX^!yQnhdYCHljIArY) z(=u~^kTC0W6^iaNYwdLL7)`zJiVaJqAFNws-;LW>H?vl9|-W#SJ&C9PfztsAx~tNhz7zfNfo`-Sb3Z?AB= zv}k#1XsMQ_M&$;MskY~s7iQmHCYYM7vS*~hV@Gb_ovtCBhX>{m39bKlyiR}Y<1|fIWt5)b;C_$N)R!Nla#3u*{+)|>$c+}M5uWp(A%F#M z1svFuLtZlv%#wEGJ)(>#9)8V;#I57=fF{I1F&@ggrNbWwJc$5NMtu=ztrDBy#UumN znvVP2Rc?jejv2uXJ>{!PcUBg$ez0iR9Kf@f#HnUSNUBj{{F*E=@O4Vi)sIVy$?~j_ zlUfHw;l7;!HZ=tkOWoV4?|MzwY|Y2_gjBwPi7KvneGd!b1DdXZ6YpFn*R$ z>W5Qwiik6<=s#(BUGVCYLKAb?tHIHP9Zdhp3!4!!%_Y+%W~bCU%mnUqvX!8pi>=)l zM9?PWE5?DYBqm-Y)PFiC$V3lmm%-t%uwnEp8KGV?PBz@Vw6+V5itMF*2uUPW%p<{w}Cm9eQ7}A*YquHb|Z7JJ(e{- zH<|nVPfG1vsg;EBv26>kN{-heRa{@_@zy{Dj~B^o71>N1KpL8!^TB_+G&(iohCV(X zH8tZC&I>|S^C$wv*qt(NedPsO>!Hd|SS>`T&?)5nG!TmpdStrU%z*bQ+WWcZrWVoebfI6sd?za*+$M^O6-KH$J{ezPM^K${#;b+D7;rh*+jZs_ z7t}|%bs${NSoa=eFBovIA9?F6>?SZ7Z@R2dyM@-ppKvO&Bh8$wFzCMg6MOv>fqfPi z0g)sQWg;Y?Ou=?mk;*uKPyL3} zP8+KAYoAGi5VWoXi~sz(W>IJ?#KCRq8-)Fd35kdW3_Kh4 z>9OUvSpt>FnaT(NoIow26A?roEIk(|lXTx5l>P0~Te!&m4PR&F2e&U>+EpE$8Qa)U z33Oh+ZKiuBaBaV3sst9>kFZ1^t{AX6mqM0C*9Q-)SPd(LxzLmZxhWcv|DRa(Cg zx`|$ZRR!74{7 zjH}@@@wO2x-Ab8Rx9k;|Ym(!0g8KZDD~l)vSz<8 zK}xHEQRwKsCbs~0^vZfL)@o~rNDE|uE2(zq^XO-$VZmtXK8oSdSI4AcdOWaO_0&`y zu`%CA`^s(#F`dLrP2I?7W+sjUF1KlVMeOnV(CD6~2UPiC1q530YK%#0L(2es`+(|~ zkzO#zON=Do?x%!5f(%QCFg&qdIykWB8vnRp^+2yE9P;XVrz&gyw-uBx&&E}WZpbUn z3p)O_54{}`Ps=@izuuriUiqY7ya)El3D@oNcK#9MO zy5{^H-hhOht)r_=LnirI{of`mzpv5ouu|8p;xKr3$=Ch!)m$uc{SK_}I$bKQL`X@_ zL)|mF^=H4H^`5RoqLsM9Gn&_En26#?FfkPk3X|?#q4S(nf?NL1oWWx5U_swg8`SRK zhm=O;6@vqxv;u8U*{C1)MW-Ltbm3}5=aATFcv_%Z`{b>SIkXWoe~E#_U!4ik zr^^2k?{@{I)ze%sDta$^~K~dI1MejpG ze3A!FR#D^Dn@~Qoe0s!lK2Y6#72d?A?4QF6`Vjsbm_wFd8CHf~RFSnRLRWP)vf!vT zsw-i+V?*w1L)Z&}*6zH~QAeAKPEGK@b|?mXr9hMshUn#UgB$(DC`JCtci%2)A^v*f zR4!bfb!yF*`foYbwB9A|7s~ZrW$481;;s=DB725w14Vfr>A)N|J|(yiwcC%Ie%t7u zKo>ud=!q&hDw1hZhwb3-^E9p#-Qs^O8lN*wyQ|K8ZTHr1*R63RQ|@z9#4$at0l1LN z0IaL%2L>JO8{xZ=5i$vkoJB2Y+`rt`ob05^1Qqh5dIz{3jtl@@nK2 z9i1SEc;{1oO$ClFnk%}~>Jt0gYUF%Ih=(MC@rDP2RjIP#TisY0l zwp5fW#%Afb%X^4|Bs?sF3hNQ;d{Y)cOz| zbO0|hEQ_iNn?|1s#WDSkrT|_mZ;0_}M{D}`y{O6C3nW|!?A1*m-=GfMbQO-1;UXTo zx$A0SH()phs(I)8In^@V|#}R_P~*{2jq2V=y5v=;5n}d8LJX zB{1^8FZM25QdYKRdWHFXKmNd{|4xUA|65cOa=aS)Mm+S_vH8jihyy9Q9QsT<^jrXB zfP?=g&JhDWJ1)nah<=YpInMCj@V}a6N)cMBk=lu2oi&NrRfjTX<1#2YQ=~^?66Sic z<32HoPlvL&8DOftO3)0fVy0~(mK+|~l7P%V-0|yCKI5!R&jp90!*BKB61L#>qa~GEQhtKbI*(gw6Ub`<7S4R{o0w~}5)%th;@)u~st)#U z3V@~;8#=L>q(3NWI7HCc@=s3lq;l$m;7?|*S|^SN%INdYVZnLa4DcxV^KakNwdRiI z_^*F9UdO-M-AV5+KCxKkLYJ4%Qb2~k`J^ootGgy1hBDeLsXK%oyf%Fs4RiNzjqL7~ zc1xOq`|ga|ZSq&YxOiNMP(i-?m6DVfE#GeE7#And?DW3dUdi=}{Vl_rB1+L*Y@Bq$ zZMDdf40C;TKic<2CEe50bOJa3&RnY_y#tXMW!sWl9mIQWyu0~0&=VtgH{K0Eg2ZwZ zl{U3?BcWd`w6X`yI;7ZYFv4IgX%l4d7`ON{f0x&>q$%9d&OR6RE!F3D5P{m;ht^@|Lh4Ik9{?_J?yRcuS#Q$fd^m%O0^=}yJ!Ai z22Il>Xm5YBS2Q-pBX*kkm&P}aX+P+xTvufgNb=&ee+}E*ryO~J|2clzblOJJH8hoV zX4{$iqj3S7M1`FALZ|g@(*I>`23l9>s z2Iji-%$&P+P7$fw9@A625_16Y>;=e8?pY#rQ$}@H_Z_h#+!3UQw653%|!q11?H1bIT-p1?rXgZZ@fiJ?6mIa z_5(JNdO4ra=TRj+ff<#+0ZXI*@-T)cr%KV+9+P|YTaNdN>Z~8YZ4oShHCk$*$Z4tx z%PNBQALv3Whs~kq6CvBhb>ll?+v&V`{#ZeS~<-h26agZ?-IE}G&?gE$qgg90~oqXas0R5!#%RW|!wpc>lvuUH<};@(9=MBXA<8kFX$}$-O7qm);XWo zb;8fy!Zfw9GP}+t3E#IFE`AtPrXtYsTDoqmmGz!cksC9=o1D{}oUitiw#~?bkt&E% z1ygHB?NrA4*^;eRKOQBi16KrXKL8nis-d+37ypWZGPS@Tm0KvBtD|IrnD)*j_NYF) zQFCJs1{dKUPsR0v0~%mNjNw#qHQkhdsB2pmV8^SbNi1GxNL3$fV<=prl(N z=IU(v`X60s)ePvFn5a0In8>7>F+_8flRpuwg+&j+O%+yaXf?)vC%l@Pe|%x1gV)zR zjQP)66Ti#plS;DNmsE`J2X-tEFO6gT@RjpIr+R$)Ilm@kYI_oxAH}$o241x2a5Fq` zi3q=$hWuKiJ=N2OUJ6YNIRm zBv4+%KeViQ=O*W;c7M;0{Ai&+IyqJP)}?&7IQ=0I{>HiZQmVg;Mw{n;9QEt*)Rj#! zK+R2O6}Y>v2f}y)X)s&(@H?W#k=~Iae_{48x~&-QD~AkY{pL*KFe2>d^|#IMv51HI zZ2(o9T4H@C{PX%VE>`Yh66hkp$!>{?+@v#%7trY#5Ng~~@!|-itwxZV);XSeJ>3lp zQ*T{~M3IUL3d)1Rxw8Tj?OewDVr!}mTeeVf;7q-FvGB@tUiad5>d%U!XOK8=*oem+pm@2)+yHs_NcvyFIzex$ z+z@|tqAF|PH4kTJ zaS|jjMssKg;iCFf)X#@LJ11d2b8sUzt(+2~9>;>}fX3j+oL^5F_}y{8INTJK!=T)F z8)A*K)6ldE#H|jlHxy>8K&BIT3{KsF)g_7dqpIeT#!AgN@hp=CS#FM=*&CUp*l;+g zBcyB!lkJs#4PnsQz}+PSE9?I59@W!8FRMv!^X==6A5#1ECt~a5vcj7F{RE*)XZ;*dMl810g%w@qtFAjsA;8n{wzSkyxTMrkz{bMr_Ir8#GY%8d z(UHNINK1n+sGs?N30s%B-WP=A4iE$xU;18oDf=EC zX0}%pIX{IqXH4^2J+8j!lx$7^V61&Q@R!-x)?~>$GD5PsWgINQKoE08`X7Q_V&3DH zBmVW(Ju5LWNl%j%r3Ebon1)B84{Z54zPq#mpPy90?+*{L;9a7$=vlosy=25^5ioDs z#_tv6m7E=_or1ww@f$R3(T{J76A&mg!qsM54LmFlo^3q#42DmRJd`hXI0A^CmmLPN z1Xfu-|6ypc)&_1$YPhGH+Kbp~y-fEWhkvozXCI1;FX-_8d_A6KQ-sfneY~{o)qK8J z0aOKL>iITbnEwDh2uI2%j7M}C_Ddg1@GHUW{&rO+&}pUfaf|tqHvfa8;eLH4InDhM zL3WeU_5Bn^bYviaDPz zt;|ss-Vz@)&B09@Z| zOg!RCq8J;SaZ-QPlKi+abgN=tAKiRm?>7?6brZWi7!be12cTVu1{CQ>B+=P|Vc0r-qBm675GI-sWze z>sJ5YOW*cDsWs-d29iH52-O6S=S#|LZ$EtO=TLI)A7oEWLzWBsEQ#W>JGxTdb-3>e zPjN!`6z^r6ofd4skRkbQZnKH3Lcv_6qdH))%U7kX(6`NA-nD74Yn4f{)H}SG z5i6xM9Tt?y@bcx$SFf1pO3KQ9D#$2or~dphLBqKGu3vOanVQAUtxBTT)}O&2-;ziXi4E;8AF{MqeY3Vd0%Ku*lLb@`OSkfBV3n^N z8QFyhco<$Ddk8B?8h%xJhBFnzy&zW~>)&_|MeeI^pAhM~AAC1lbU!A{T@L_pbzb7^ zRj_k0<$p=*+z@{&-DP~k4hjsRQue;uD6ER5WqKvrlho_+4(xwVF$NrXjzr`& z)9?e4|3CDy5wMbgoZRS+g@qmGg@p|Re{>{xMjMX%pDFO6*J@A0Gck|QuEHGgscg`_$=t#}IjLt5AEpXm0GblM z0~z?Q%Q;T+cyT-+BXDneF>8iHo6hm~pzQ4MB2b&%tL`BpXTbLrpz28ic=2r<&)U%l z$%eyCw3<2+BG;sLnoFld;MA4i{Aajx5M5#QV^CvCP_qDyr00oY8Cx*nvcaHkG@wl! zR5Ng=sbTWx_O5uqFmbc|Pu}LhZD)TaYu5l(Y1h!ice1Rr^~c}ZEU;Un{FTb%r?uMJ zE#SxT)}-M1^?+lU!`J7q_Cm$7g9!x43keT&?UL3Ktd`c^_6V2WN#R-qFY5oWoNvD- zr!+?6x~)SniM;5m?;%5gn+@a4L=VwGI#Z^GIM^`2)h?CmsYLchdd#3tZV>zE6L0jQ znk`GWFhicsxO8h3vlB{ia!NWpTs0$QV^DVOw)_l^!^U2wRbF9d%sa&!l~pgsdaMEy z>4ixY=O(`OkJ8<$4kN3(?SSOBH_{Hen7CyMBwRlP@Co#acLAX<^`lMrq8A64h_>={ zfPPMj5MSq)j5fYudFj~eYb@cM2T^1Mu-tKyGbeW2D?1LUyBwEBx@9~R?`!MSoyri( zr2Wl;!dVTookqvSneD<@Vl}m^w?9o8Sc^W zGtprM*LLJ4YTefFoLsh=%JdB$cVbwL!Rt<|EmOD_HT#hfTnA{Fw$R}u zpiM9OqmR=_hvU)7d9L&5U`z>kfKRZ*WsS#Q@7QoiXm<3iB?C)T^5{{fAX|r^Szy*?2jY+JI~D4U-S#BZ6QNbGpuR85)3- z-vseShOH9@2a&8BKckQZ-%)(eaOz~N&EIGH&Y@68cy%w!qxWLp$Bl%v>_aIx(W?Gdk%9A zKe$-0L>v=s7~wg*aSy-?Twg@ilpG}4OT&ELCoxeoA`DV5A3;VnU#hGJ-!uz%Jsx0|3O*(lWwWzK3(6F z%F=S#m66x6qX(%Fk^jwVNP&R<5masUM2ZTq!%l`ROU*;JtHE%xzbAHQ`B6$70v$fI z0pgvJNO^1BM{_fpmyUC&$U~XCB9G#h(#Y4pJ9vOw2Kjnx8J!;Qo%t>@E@&_IBO~ zY(pHo>DTb392G$}C$!&MlvDVHgm6!Du3R zQgSQg!WRx~-xG7WK@KN`2=wv3xF0F=F9OK1c*02j^eHtxJ-t##b5`8eW+PN+U3Pwb zav6l6VXKi_9f3N6kPxI{{8)&KG`%i{qzZI(7-cxlK)RJYLIX>kZY`?eKqfQyPDn9r zew!qT-l*nD7f5uDQNAREU)o1XE=97Q4*`lSt; zQkM|MRnNSbvjgQlL7A;+h?q@CiS^Bz^LbIRKqCF`m=_X2cK7k7wew7=$+N&G< zoerP?YLqt``G6c6gPze>@!9A;$2O*G^mcDRRUF3VRnDQxICNeMZc?t!B8@z62FiTS z**txQzJ(U({rtz)OxGU16ekXCkZ(+&si}E7?^0IROjq`*yNt}OAvkst&7>zQgwG!v zHCZY3yoP@fg*Z}u++0uX>@;8ec!$|c-5SlTv=))B#{KkaWRu?vV3hma%OnPJuEhFS zEs^vvNsgAcW{=Ks9EZy}0umn2LLW+;j;7X(g0izb9K~%IPvcGeA(Fph8ssF5Xx7l% zoX0iwL)m1-<66CO>+|;YT|HVNvewp)TD1RYPFWu#ZISgw?~)PmKW{1)c5AtfsN}o` zo$WmX(XZ#ox|g#{dqoU>3NB`~i8oqzkx^;Ny-r@*MwP=#LbX-my2&9rMWff4WlLFK zmmqmV^GZS_4yx_H%z`t&C(zE5|5*wj{%)9w39B$ywvfAvdH06ZtiNYKUC>=>PE1>F422-iMZvGN_B zgA-~QbB3r@UTrHxLlT4%Of@nxVqt9D$59`9=uSl>u|`H8f$>qaWZ*ka;VGNi7F7Gu?$Jr*<23tu6 zo|^@;fn9C7g1`-PEuJ2=SpabjZ2VxmojAYBOK>L5CcnW9k6rPmuwskJ1w4oQM2sYt z*H8ZjV8epS!3;Bj7f(a{scIN@93W#!h7<>K*_&G3K*aN3P-hGT9e8ulU z&greM3O6$OFXVgHA3MoU6yoy^`5wr=EGU*Bu&lZRQm)C=tq#8>9#8eOfQxj`JX zHoVEmsD<4&2p;>ck|osOR?*sX+b?lUOjj~LgY~%GcQ!XB!#l`~oFg~@!h7637pK3! zGhHd+LIo$L6T1El|6YN480JK^z49Z|6})>l8lV85nj1#bCxyq1|} zc_LeoRAkOV3u<@-CCZ*cu%TwB=*S0v)a2k{Kiu&tKZW|X1cwEc zLVDKHBrY4_w|KB_Ik<{`16fh#0V|T(@sl(8!?N(}RjFm~Fq*b`zonMFXL2h9G&;xg zPRok%qLQV+?@p8$J1eX`gf~UPj&u^6jY6ERcojKw(ggC}KR4qOfjW;r!LsiO29{Fx z3TotF-zUGLSP2xu9lpUI{FbQOfRE;C5@-3n8T~dy6IE(RGEZ(d-%2@o%2$g}JlkI( zUW=f->XSU5D#fs}OWFY*uEXR&P+*jD|G>8<{D%aq_j!vi9#-VMEqn7a!w-gEG+JKW zpofHnyghCj=bq#JDhTFVNYB7`(HY; zX97#)p2=_tYs@KO8Tb!Sw+b+VjPDP&x^RM)4@YOmq#hIqIh7{qSEo(CGDn#ZrsCeL z4KZH(Cv@;Px}HaBO5$E@r=;rLy9@T6(rT&T2Y+I#Kxl6jp2nObk>Uep7GMSbbhRE* zm?}kXTu12XVcK`x@Ug6Vohu&2stU6E!a+B2D98L=zLXbr^Q#orRLDwG?61Amjxv(_lY!xwNE^VjH>ftqQ$asRni94m_#xs0KpQ91sLo;AQ!H#5v+IK3Pxg|i z(9!^I)8;Wu#LF-BTt~5p*e+1>|4Wi%?UOD^Gv_tuJjN!Ebo`o{`YZ z%S`?U7Hw-D1Fp)Xe&;k5d^AK zj_o^odWZK4eiU3=VzC6?I}YA(Pw_0}UxBTq@rS$T7n;79m)YV-d?sIek=)-NR?I4a zXN8=6=XydiF@!#Y4El%!WlPJlxJgy3yC3$>edv1b=WK7;Hx$2d{dc%c&Tp$(bZ48> zf@94@#@J%R4(HUk0j1OV5zv5tnT0f$yylzZTXL-+`QWd0!2!*Xg(j0o7DC9z;1l|3E@=9#BzH zA;SOSi(F%qx9Z^$MWCaFll#ir{B?b;FLxo+Px^94SE~{-dd|0GUxhJy^A_Lyg!8qz zWA?&h?vfIfrL~ZGLa1U1V~Ah+n3L~*#n7cudIOluV_;&k<#%6#+cIU!%N_n*G#quy z1mF5-rcm;z;y)#9b;Vq;NID>bi3!YWX(D5@ihUKEooGU1TV(qbi0vSOZGApFEn)uh z!OJiLrr^r-dGW*;Tizt5edjhg?`I?x$O=q+y%@cTrgxle+z`okzZw5!T;c9yF&IL(xL)o1 zdF-ijw@4u0ZV4<*a$h%##uHyyNxGcbV27^v%W-%Fv)J&+;TjT6Gq%B=OicVM_th( z{k8E(no%+VcPFb(`#N(5k^dT7`sfi_D(86j5KiAMk(%ciyNK43Xit3Eo7(?8OPpK8 z0eSU6Y`W>ml5 z&^1ZiIJEG};irAKi?orkj8d)SNnn%`)$BchPGt}>oYE9cE0}x>+Moc6j{G_x&ED8P zKkwW&xwsx`fBxL6=n!)e65eX=lKA(6b=$<9hql%vA!kwV5T0Lpwa-)q5z!hrggI2C z4!xn#JaC{uth*uncM~jnp;ow%g$?l9>YYb-;cv2PD8J7W-qwt5&noZ^D-YR4(#&EW zTYR*q8XWo%qhosi+<`vzTi~>elRvAV(z;Wu7S@{GO2gE`Km&)CTX-1)(%tXUu#sh6+JUdKie>|^Z6 zb_d=(DDTXxhSiL*8Nx*1sNdp)ysod4yp)sz?)IVyg!uiqYi|D~v>CT;nK*I$Yj#Z% zNl9rXAPkMGMoOtZ#dPFMi+X+}kuc~y7HfaA%Rje(Bde`VGoo0jZlo2Nx`o+XC9Ppj zf_cHN@j)wUX6qf>YwB>&v%_>P7ynhI?Btlm3s##V&p=Y){t~RME}n5y`6Du9ahV&G z6nOX*HKh6%U`Gt^&+jHDr!eS|pCm5|{EkoW`OVR%^Xaqh|E2LFdM2~dO79nRNSU;o%EcnwAn1 zDXctpT109X)Z^jsOw9z*`*@JLwmZJ|?xVU+BTn(hqv@9=(XU%0E?Ct=y2uD|>@{rG zx>pdPZ86p!mf3z~sch6vH|q0saG7a+>v^)~Y*^wNpx^A;Pvs_nJ^<9ue{GHK{^HiG z{Ya|xr87INudVkO<@si_@cQ$55*RLg7bjCFINsERr+0V|=ulkgsV8R~L>U0%awRRV zs%oE@7}=)SRDDr!`U@GNM6}U04(8@=mQ9zX_sN#otkY(z`5CZPK}8fwyVkn5fVt2f zbly=ZNSgVh(D$#`9ZLUHlXL!)duMp`mL*)7=1%A>S5h;&{cHi^D1powoXrqTn%8{$ zMJ8IvNp@c8WKjdyQHjijWy;dw;983mn!;H!W)y=oRI~ALo$Ypx{{Gb=(iCq(DNK_T zNO&x2gsfrZ$J8d+o1l_fGgp=-WUDHtqCk*}1SUnHpwgvqu=BFrA29ff@&+LP^jn)>=Rn>%`ETYsIZaes zDu=WE2`1Pl*t*_|S`jSsjCI+asJnN#q$ei^!i)4ObC`oRdw7g0{(9W3&~@65SkII+ zMjG`(BygHuW5MV544;9bEby4?W+y5*N3AaZNTv)J9NJNst;KFH`X960sJ-F%O@y2CfU{iJ|v9%{0o-n0u81`Lkmn^ z@gVN?SO0v?C}pqsQ9A+Pi^Eg);X`)e<9NKCRowm;9Pmw`m7i`dhNQlX1;4kJ-wTG3 z{$4I*du$f3-HLyuo8B}=hL_Ijwk0kct=Nw)YJWCBMYUrL%!j+3X<1L&F# zr0^sr?J4}1z2i5Le#8~A`X6~UGKcs6FR^&g4|HjsBTXfmSpm zA&PCG!>F$tRa7GxeG+~7o2F(P(Xvud_l+{mcH8c5jZl#KmEDcIUaVvMuWBf-`Yy|3-59E^u-B2%-OAy6~-_+_Os*(VO#xfI11@ zYkirXp193A2~NPBUrVMi$TuNO#F4FEG@}mFJVyOG(_8yP^FfeP>?|xBujH>tfu}4# zAHVm%ml%v^)=_Qs1teq}d;%$j7o3{6aKqHrQf%N5W$ME73vyTS58hL{DS=j`b=^^M zzzX&5UdC*tN2%5G6cmeDu{r%+&`6W$;}GQD0K#w$;S)rAkCxt3iAF@67FpPL#S@(^ zM!-N*sD6T2sov31$6Uo}6OLTa+9Z)0W{AK9sh<2xd%76OPL^!7T>hYYJ9EBiG0}^b zW}io7<5L{3v4UD>uqVqIO|@uvBLwSqFj`#Z>7*57$_kk;7Cuy>+)i2F1!4-)G!P&^ zAnzIL{?ai7@;5;B+`YXme6Lx!Us&pVUXoD)V|wWH*{cbB0P(9_d7)eF58%>>>{*<2 z(q-PkQAAW%_q^ebH^x0PDyCcMg144qPtHbnNdcCusA|T2I6#*`ef#?R(Sxq`JH&E3 zupz$-(J1ccccrniT5pQBrkk4 zce=8vL%$gqn8wpe&W7lct*2 zzs&0@&{Pg+>iv@-CWK)euJBW0dZCSzOUz-Hu7^%8lJ%^^#o3yD8CmrtS|4TlMRlda26+F)P9KP%4#rqhzA|B+Y; zWCOD(O!<9ISBZH^$FJj3(&~uc#;7a-t{5zm7m7Qj?NLu&>?nS8Z#!-_iq6#e!X;v0 zM0B#{n;M_k@e9Jm%3rcoiHF86C$)mqMIMkFX2N5D;^&qEz5uL|OP_*5H$0+qL{EG` z?tn&XEjl>=3;zxq2{G`xUPTsqS%t@n1a&sOjY$Tn-w+4_>`Ff0Cs$%CLT~eH9Rnj( z)1E$RZn#E8Y8n0%D)qn}k#p{Ay?;EL2&oM}fd6n@gxupM!oBeFjGrlnGVdfV`owbX z{@UiWk7TU>8C*Jb*&0d6yVvX9rAjor=sh{ZiJkbg9s}l*$h=!{ayCDoU9c{`D=fp$ zBO~QYqlFCQuK#YqTgApvc%j*N#RVebMmwp7dm40=I^v(=NQ!}XOw(9nAcjhKHGyQ1CfzrS7^2socTULzKM)9q{>TjXEk2s5% zDlpo#sc#R#hzI&X?MU=`y*u`9QQD?Qrb~H&9QEfQ&Knx3HOX2Y$BmGm6)$vxAzW`7 z`EZQmaj4hlW(9)!JGorr<-sPJg<<8MH|C?$REw7bVx8X(B=}+3Ef0R4b6qcypbnQW z8C{(>$BG_RdSMiZZBS2GsFFltC*f59`|tbK@!GCUv zB82jTU!`M_JXo?I&1ywSTbSoPh zn!yAs{K@e17m!T!r1ByRVZ5i!T?;wLGDbCpH`g_LY^_8_c!et4fFzL6zUfCzc|UfY z#Qhg{Y-f+jidRh4D(yazel~@2V^&^Clu`etiG)NNYb4(vs51~jlhD5@13kzaSpW~G z3RFLVrJK=&P?7~mc>`j@GLsx(-zlz~&}B18--$Kc3ucqrP3LTergz&Z^~m z6qbhU?5kk!(Vg3Z?om8l%k6jB-ygTEur|3S(_|v<;yJ6my%sSjsYl@=?whj&nV}d9p%Ea;>?!vz5Sbcyd;vN|&OLOz_hf6j|N4(ctc_cTGcq>}q7j%Bo0yIhUl; zOuf@m0IKglSp31&+8HNj2t*&l!i3`5s|B9Ie>SEldv*6tEdlIgQM$m|SD+antx7!> z5loK(8v#w$Y0JERAE{%utZUj^s`*5AoO2NO>67%HMg8{+$O6H09zeoEFGzW4AZfZn zJkK(r(geqIQl_C|+fqw`mwbTAp08U0$!Afy0_g-cZ7~3uyVG=B`JORKUH6Fmbc{^7rSy%$1;S9Qalq(4E5xdB|bm z5TMG3^5}oZnj3IXp1Tb)cuG67RW^5``x%vb@B>HACez?*m zi=<~-*YG#n0f-PM(Z{zbO$kKv&ToH}es@}Xm?Qi`ZlpfSUCf)Uw37SC)l z2``Npa zGd?@koie@5^ULcz`CYISB@XZfS<)IPMpT%Z4OCL>J`4iwtj1omJCkW(I2C!e2;ED{ z2BcY?piq*>$#Vke%7p1qVw~W|KN9f5i~8cWX>@eWMpDYPlgxNL^dSO%TuQk+AvSpi~f<3 z!tVkZ|3p33U+g(^tiH&NvJXKwDf|>wb#l&%Ip|c3q@5N`qz3&JRVpkjyxL4*(Y!dAVObd)-*26*B>stv zh>C$haP<26;u04HE#V0^UhpeUBWV0)Gm>6n`dwaBy0=NMA{CX_(y{l~`JKm1$0v#Q zvz-G}CMLCo++SMjPzz=>(Xx!9~rpDw%rT%QjPN0817?^^U+&(6radTtx|4SZ8Ul@0MW z)=aE<2((di@cdrfuM`Mpk+{p#S|0`KAXYA_x~6L+>XX`UTy-t8|9oyZQ91rE&66fGfpYN!!27#c>Ob}DeYwWedYwvFM!qcLq!{Z6s9Q6yD z`My(MG2$|{a-*m55w{JRD5eB@jQ3qC!FF;z4+Senw{C-~^K)`Rf$wmAbf{`$!x zX<|qlP>I~xkdORX^H08`76o40a?w;HJduCzMx-v6ljl*a_~IfT(s|g|XhqTNC(yxh zhP1-lzm=tL{@PpFyhcVr2jWJdB%>@9uuwk>5)v8R_j8i^AO@&sks6_hVOk5I*R6TU+|Y-CfOP|I;}4agJJUJXB3TYAOkR zGAqi+dzp#<6=r<7K829KhWRn-UFJ8QexbL+Tel9j^xg;T8cQwi)+-&}*!PSddMWRg zTaxo4M1%reOLf&&l+=21dJ$IQWBRHiQC2Xpx-qFa#i_2XIn`3gNNEgCLIsKs^=MRk zv_=uU;!d!LlW@Cxgi&pwQ9_?zN=q?JIyM!3{EwG!;BKU) z_l-pHgXKZ}1D+8b&dh3u)V#jj6-Xb#fBuY}zf(|Pprxxq@6buaT^yF6K;pqCNQvt$ zY`&)zamKrfE|tm?vu1AC5tEC2IyvVbDyc3+&Ht~Tyzi7S#;Q?i-1fvex%r8)IS&{MN@qqUVz0<=;R)V-V7RolheZ~9WOA6dM;a_oL ze;U1kJ!{|v5FUrui=P(>`tvHgHRoG&5~b*#NWG3smsLoFro?Nir?p|e34F)xWOe+h z1yx<+H#WaEby1p1aR0~Pr-HnKVl!m8uk|>TnnMk!NcH=Jpfd6smf?l{yFovA+=7$- zAztul&-%5m1jSUFg?i{XI2Zgvbq^ClyqbvMBxiVeX7aKGTw-9*A z_yN%N0MRmC0Nm09|$DfC^A_#LhmCn~r>E&uH?Hs5<#PyyIQi`45$! zFm03NIpI{6cfEIr zZmO8W{*^j=ULSZy%o=4dL_OF6e*1Q7-mzNDXC_yfYsC;goBjsIu5_RYFIli?%r_2~ zPhgYGz&lDm(Te0 zBxLOoLg&D~x^em-k^_Tg^^SK+>niLYW%62IxLh-?n9g5R zhNTMT8HK`c3hAAHi{0I$ya+dCSW67sWCxPv-eGnH{o@KSBaH9S!PTRU3CkG-NtxO2 zyk9bl=Oc~zwcsq@N7D4pVq~#vqLYA;QRl>aEi2}_i{8p?=HbmrkSi7+U-8AQQ%}(K zCJGwE*97@U`Rf6r-0ID}t%0BDNiTuhrL9rr4f9*Gna3N4vqXM>!nt^OBI4sQva*&Y zW+uM0Q#~)w&M7F%gO%;A=$Rlq-9=M}xyh6$Ne;F>m8a*A9tQXGeDIl~NaO);mGF*9CSWy8v|ZB$ zY%C+`o}|*hDM6vfcqW9%$)AzZPm1cx#g(0&d@*02+t;>LJ=K9hD` zS7jcvI%&pz(~_+r@`x~wF!;e2KQMWHXRD+5UOwd;YGMQCZi|S9wiixg9HXS+D=r3A z5So!zJziAb!9-C zgr#XfDxM)`DC!BIz$lB-D|Z{XimIxWT-0d=tNx}74|J)Bcp(?B3y98xKr{q9K|NHi zqgId(4-t!#{;82(B&4SjYyKHNKUP+j%3?id-V-cL)o4jn^7UKKW-MpIbR9$iv&tYHJ+Vhiy< zYIXdD^)Jysn>LrJlx#0pIky>uA-1F;tk*5Sok>rbCaIr~6lLQm2TQ?xV(TR(I8Ib+ z2M0v)?H^9LyMMr^{q5VJPr&(nb+bDqF{U3X1R4&(QNa+0^9 zR4?^jmV;9$rMlO%?H*uomuiPFi;>!%BR0tQj<2Y*{QN#1*FY8Hbj?2HwTFf=Mf+hs7rp?M+lb!zh_z z%pn}1Mc?*nQ!Jk#uRNnyEFZ66kc^7Mo0<(06CRP3e+g*a#}9FI!df^!j*p2~e(2Xn zmGF7HSy99DpC-fE^=#^@H_w49vOKV%5&Blg`}Aw8c((eCcaaI)j>AqB#SN|O^!O3zXTEZ9Ma6GYX?4m{Z0|^(P(TMmcUi;ChuzfTWNGm?ORrS6_k`g$bvCq zdC8f#3h*XyIhJ<&0`MOrB};VzveVk&4Wfe#3^Igk$#v}oh5W9`-z)Pv?h=1UI#+n| zW7N!`nN5`lhoE+ks-9+J0<%WGYtU6UG$E<~wb4|%Ym*KiL_a&jAf3hAtxusuW{Q5dMv{%Cj#OFZ8u5tg6v&0DtoXZi zL6T9S$8K>Gf`*2!JwvF?C#RPtYoa%(n3QiIDx4?|40c(~mP=L>b1D2*-~+L#*{Kfa zD(5*#4Oo8)q~MbJQ~Dv=D9mC>ej@egi=*24SEN_0#cTN|s|4VKLQ7QM?x7D_8>_P> z`Y9S0muJ-X_b;a#yvbVDcE;;jX-2)pdh!@7c6K|RzSIowvmxB(IT4aSuWl}j)abKK z3eBZ0{DyuK>{D?$C_aq};IcmLBwTs}*--_Tr;jz`+r2xp%$iO;vK`#`&r2xg(&C@m z_`~gbO}<%Ka~wr!^8Ga{mZwmj?MW=#i_$TBpAqG;QDgQ6O$j04WjwjWjV!8IrE~f6 zgodnb|Ckac(HHDRS|g*;9iPMt+qNb zQ7P}d7yAbZgP!hYI%l<^z5kmpMZHOm^isTIo&j~qYCwpDz$m`{uE=F#5ssK5#brnvb$%t)Wl;fMB*b7-LEz0xuTPIA z>V0dU-rO5%A+dKwwflYqcZ(Aaa0E%H6A=92%KJh-2)Q3q>zAORe;O;-GF=D5J`~Zsew?a8OHXydlP9Ll{$^!^btH;4- zO2XL-Uv2()BI0JnR|wrh2MrO5=#bHKQ$5@%1%(a5f%_pE$44St(!r544fYnszjY;w z$dF{Ls=c>JRZDTw*>vw``*=%}`p z_wku!G*6Kp<}=fw@!)>RIlDUv!Hgov!n1`Z1!WygDO9|zXnu1vHFx#wuTk*xZR5e5 zt76aJ<@T+RXcLmOwhiK-E?1 z2W?Rq?BG!KjlQ8k4XAi5JuR_i%+K?~Ig#aYLTRm7B%EHfwy7w)w)ty<^)1qQ;C+CN zt?g!K(UpP0p9>dzOvt+8!=r4iC4vBIJPD%?bpOAUCDlh)WR93B zxG9Q#>j|gfcVh?<(@a`&V)&T(d!G>$hZakbFazvw>;<9(kVg)<(D6h3&8ii+>P1ur zo{idn@6dFAqRnv~(uUWi(7I@hLE>mB+nSc-#5jCHd$M+tl)7(Z9yEyPHlofiJCBei z0%d|09ooi`jIh*a?8TTgsWvJ4QU0|A4|ttt$Bf&11L!vstU%GOBzi_}88-RbmT^)C+_5lW@V@Tc8zd4H7z zwkK7!z{v+&cDs8k0QNGn*n)MlpLDpTUt-lf0$n9>E~d*>slVW8FYITGKo~}_dHTg3 zU~{oNG*a;~7cfh9ql(s^4cWaf?R<}z6q7XBbBJ}2@>ox5-~Oi zAsiY~Cyc7!l{l$^`w{s`|4(QCQjS0vZ(`>4&+)wytj`Po(4mZz&eo@>?|GR>hS+@h zmKO#?5@Nm)S6yxK2d`#)8=RcyeblvTEvvLYscpCgFy1$L2peZhPuS_;2`>whjLd~o zU2W}qjVE+~RmLDW$R0E4hAFU@pSdO}_UWuoyqHz?8-Zli7^hyJEDN@4VnI8Zpp!>0 z{0N%p1rDUXcuLpR9!i0XiH_afFp;&j-=u_L<8(zAri#o)hqLgHmVF1XC9U73jFPHv z9ZT6rKI1)Z`+qShD5-FLpFj?pLW;`jho@9sjR0o3d!Ki~S{+h0H>Cr>O~cK+v=Xd@ zCwyB&&B8tiIUfHo91bJAqEd9Wcyw0_eSs!`gO_6T3==o9^|l|JvzvSO7VTUOt3TGuf@li6q{=f zsL`DTf+%poI!;R-Sluedr9zxX)@ur^`bS6yPv`K@-ZHlOu9F)aj-x;&q=6~AM6x0a z+d=C_gDEOp)-YLNc?f}qTaE5Jf>;uQa8!V)p-;O~S@X)zH;2B;_s#Vl!3o~X#L%n4 zJiiE(WdTxDQ_<_-J2gvXs}oUD@+EaOG>jV+sjBkxcR%*k<4gWGrA6d3rjaa=_y^{6 z^+G-_;4mm)$mILeO_}!tNX7RleGa{lS_oE!uWTzFK-%S#);j z7guxj?_Ah#P_HLNGEvWpo4IIqDG5A`=`%oLa|N~c$jnDFKtd0k!w!<9>pT4C*LSoH zJstpVF0V0%%nV3^^&q#VBC}2ot<-?fqpPoFfZs#vt6JxB@-Rs8g~^S+bDEt(d-hpf z*Bhk~s7#u-xE0Fxg%vg;Z-H~A+OXTQ5q(JkZ2#TyFt~AQx}=3!0p?xl*_1fFKgSs2 z4==!-f-2D$LL=A)*B-iCogl6n{g^Po2yXx(pscP|4XoKcLOZ#B<<`b^{ zdI-9NG#)r{SQIglg$_Gea@&z@_+ASOCTVSAZr>>#?~2Xdt0*Jf9L0Np_%RW&C#vRmt$kjwE?V| zAY=2P2y3puMcP=$lNZiNnEcps_$IGFzS|0qIBLGjAjJ-LR^Mpwixh9tA_QeA+$*f0 z?hVH6=!V^CkLL3(VuxsX5>4u-+Kxw>NAnl4NZCRq?b+E2P41q6YU6}E819(m=lt2Y z8ckHmKUvr(a!(VpX{fg_Ml2V1)Q!TGb=}CbWG>>u7wO`TH`xd;$@4bPOf{%x9Ybt5 zbJ+l!kf+wYKERry04;AuF{}i@fJIYN#$0CaQ#kynH6~^0BH91dA{ZtB-kO`iUHt|p z5{P3M%GgaViJ`8VXC62!WP*wi@M%Jn;TT=;Y1&o^Ec(^mJ2MYvU5U2;qfTN@IM9=( zJyD;STBBBaf5iSHNq67-(H0ZH1L7g||EZwi%=qNX*eUOXL~t8K-Pe-MP4jAK;h7Ou zID)Od;tmgJb`8yL@cH#Fd5MVXu89H&Y-|D4)uKf}+3EEMKm1Y1uRVaDnXQ|*$8O>R zdF2a3$nB6Ex@*5R*7A7%DJlN_09|#t$2#&0+8A-vtH0*Mze@l8U|he=t76VQr7U3uV`+gzDqbTFFw5|7yKR*x>ZZZIX!M|w-r7f7WK8w-m!eyPJ zzK|63D^$6xEb>KPwSt=@NF%y)ad(^*)j5->Q(Bl(Ekl16 z<<%6)m9HpyOUewPfYBW&{`f=e;3&Ev#J`OXhH6rSq+TMRg_Y)liH59vI}#T#c$v&c zGhrl0_SZf8#QJab@rDt1^DqC%8bAx{74Hqu@E?DuMZpGfXD^O2L&~^sNAcmd`myDY zYf(Ziy%p58#ibXw2X*E1S6O=|9WPa41>I0sw)?x^71C2||LI|AM|S8IHlA*5s?yYX zJdTZnAujl$YwM=+De`*^fqd9Bl2w9uckZF18 zo9$${stlB0@9HATzaYk1V&%PMjnUeK*jSE_#`9MnahO;G%-Cn@xgNo9o>6 zpPBFr%OCT!wBd*59LbB#Zs||>US_9lfPDlQ5h_wvY1eewlwi6AVaAh=$p7@<())`; zn!Lut2@WViG-!d~k3~#$ZL17x#QC~FGDCk_^+mZV8PlS#T0ofW@2qra?&-NjQ zvISSjl+{RtoSeK-d10bu$mfL%+)_8FNA+x^F8H|zvSYn3D)d2idu|O&88gQvHwt}- z3=sbr6X@AD^3Z`zwD*p~KBB$7(zI)D{Blmb;12Sy#a^%VRnREV9yxqWFTCQCR~>+N zjbdw!^-%#;! zQ-Nh#&fi0;Y^P2LD|&FQwEzs$VcG7-exjGXgH7YwaQCCIDw@q>>(89qlFqE7Jsyzp z-TlEVJtCzwS{q1Mh5Bo7w}WY$D?z?wlejwtC;EY4AR9FyNl!0ivI(2ZWtr&VM{y4$ zT~ZW`O>p2oR69GqHY!%q#h0VFL_Q`px5xX1oYrdpvaICKJ1y;*{E~{GR8*KT$vKy} zg+qQBZ&D#_<}pthTz1^?qmB~)8SC@ICz8c(0FxvKy;BKpS$cGB=#(69YJ0&l)+&qa z73VRGxljI+YC3k6P-l1lhHd?hu)m`YzQ-ykxNCaObYh0zp(X7V_5?Pr$$cPtJHR2= zxA2CUyy5pE${@KQzV8Y~MjY64I%y7qBW(_h6LBHw=Ev5tpo-VhdUQ|ip*)uAsl)dWm&LbH4J5tc~;=UmH--|IAz*HrpIOAkk z#D?W*_mRO}k_%*`G%g_bcu1zYE&J)LGAbobvZT6B_WVnQ;!DZ5EhD-A?0-y>a>W(q zP8(P5&5@gmD3r0iwX}d7CLQW*9Qu4KD-UeyW^Ld?HQ#|!5m1WY{x(BW1&|3;f`!;s zg5?0MdOf5?>0e^rWv&UFMYW7n&ArCLv&@HK6y~EI1PCl{P}QhQ+#DSJr^bE^j`_G5 zlhF6Cx>6fR89TpZi+)CnTJ}}4;Lun)fZeTrUDorKYG(FK!EsbPCEY>JsN+5{r;+5f zfrzGNAV6z}O-9RwkrdRn^ItoLNXH-5pIA8gkMo1^HOrci4;6Vv;=1c5W6h(n?*oNZ zl|;xrma)SLybJz&Z%Vn#TBVFyAIcK8_25xsXm1}(1i8IinGu@q@Cuhqbl%VU9y?#A z88C|wx~9H-AoO_z!$9hZcV7t%YUlz|SJxQ%LNb=N=B&5lVUG0XV z6lQ;W%4HZSws}mCR*{@mg}WeKLx#Kym3^?F>&6+Qh2W>sPEf7wt_fUf>q1!zE={AiElDCx90N8 zJ*;lz((u3CI8KZS%T9*BSWyjbax1@Ald+V*i zA4ICGz$txL78cuG@3Rm!NDosYvBes!ZlK*zOV z8B+2mKCI;ndUwDR&6g;M*~bN!V)PGB1m=Qw29)8v=R|NKf(mg{qSe3d7b& zX{6EzCLd;Vc4N-NTUzA?0bp9e(%L(h_M9}*Nx{`-q?H zn^g(oO0xSI;e!iRXTp}|<_Jw`FGnW>m32!?G}dxyTjf)oxU!o{*T4jar88bxN{%Kb z9}>tJ@D7RTk`8`E8A18gKk)H!K~(mmorZULK?mGF_Wvgv6<)Qd1k;q2D+lm1OzA!D zlbVUuH{_9kQd3=&PhL{M7oP|Uq4etYuQC{mjqpKAhqYM8XbOxkIl_0ro{CHvjc6g> zHGB_y7Id|O$f!jMCS%^~^!3IaF%Ii{SIF0JQigKHZdp0=C2SzZCw?FVdXnO?)C#hP zG^g_L_lnzt;li*gaKmPIhv`hvy>)JBT%V zk$rSK!of>I;M}Ll#grr^G9#Rw-%Z%;2#fw!Ulq5&$SO5z?jdoTPk2i8Km9Jhj*m7{lGJ(pDZ+&BXZHT^{-I{OAAXc8Rd~l7fh@zBCkUArt%_IDf)1qyfg3 zK_OP!ZbuN|Hv?^VhkyY1V;MEb+--;1BZg$O3AZ1yL{1GD=Y0tE>rybe@Y}Ymi`1Bo z&};Ks7=jy)@pc$H!dh=qS5P*R!8W2aN!7%+zSMFKZN}YZH);mag(IHKhmT-@5R}$G zdk6dlWVJUrw205Gwt_hAD#gu0^8DZ^c5Gn`FUNLwg+H^RV8g3r97T@aK=uRrTjVMQ zZP@)n(4KnWCe@>RL8mb`rI>!i5z8@|)lZ3#TPBX{c$fu9y*RHI3fN69F0t=xVGk^= zb$;}F?H%a$;zBWw)k=dZa)X$k{N5^#eXtVK4e3_SwwJs;VlE z4mCt0gN$Bb;kB3cKTo=Skm)Dv+uMVky*ovHC6>=n_*~-REMZqZqiEr00aDOh08cPF zKwWR_kqs8j0Lw>FLjLf=gT|jfaq~d=18F>gnk0ZZb8m3j;IAvMl=1iu)-ySE;f}aKMTAhZt<4OK2 zgEWUtb3Yvn4EpVA>orGx2~F%U;9@$0wQO77QT!dMXq z7XEndm-6Imo*%@5OJ!AT!!#l~N&9-fx(*{e^f?}saUPEsSdO*cQ} zBB~1k149Dt6l}K-ayW=M%2ucZ{%XZf4*0gM3m~Uj47Wd}^M?_lucsdY2;<4G1XIhK6XmjFiQpm7fbT4V5;+QnA3LWODD}V58UlCII5PD@Awv7E z7U5k9RP<@wA1sT;0>Ic0BHnW3JFp6GpW_BwD{Ks`Eqkd%qi)wkPJv$>R^^8WOzP9-yE>A*$ zrj>H-Cri0o308g!CXqzy^wJ_ck@ciCAL5uvOJ0x&HZYqF;&`!V_2xN~ckJVsNvS)H zCc_MF#a2)KOV-#@$&7c=_HC==sijEUW@Om(+RN-Pw_)MGEE2&-c(vQo1DMk==yyOw z4diCkFaYvQ{Bkj^{k_8lSHO9_>oo$~_33#zU}e4P9?SeLOU*~teB}6(iJ2LyX8DJx z7bt;GiAa}C!gT>pXeP=pk0x=nL#lPwcIGar^He4Jgf9XY>p71^_jHoy| z;&fvP){w!Ut`Km^_{B%f?|;O)QVU6IivRj0Y3MUP@4si;KxOXN>b4WucurYnE!=JqagoCe zU5c0`NYoJyD2Pn*oos9L!5NzTh&fZ}RGFVdZZ&W#r_PV__{MXyM4!0l>g=zu>hw+- z|K5qu%%$-IYwK%`0D?Ye9>grgLzrq2Jd7<{Jm#+F?m6-lf+!LXOMNW+->3OG(e{%{ zM5NO?^lpX=7pBc3GmVy@*Ny$+#K?yrV+E#@rZvPMs6pz0w9Jd#?wW zJ{`pU2}L?u!VF_);7#U#EH4Bqalzej8?^$2%WCU*dPIB6mwUC({oSg0re}ZX|EES6 z)l-XuaTQ&z9JnT@Rx5wfH6^Xrz;W`=0QTNyYAUY$O*d^q;uqE8%i#S5o{8?Qcgq}- z(717O06Y5eq_Xl!U+`-h!E9+#;73);XxW}{RDX^u$2LLR93Zpf1z3|}BJngJs~nt| zZ&?UG3;I8f>u$``YNWRhhl&g6l;I29e!6gRRyBWI)9@R^q=CWn#RUZXM5^uhSHc6z z3z3#pBYBE_C@qsfz1L8{Dw@9`t+geGf4)0xoy((xm8?0MQc_{v-!LE$+=O|bd;FsQ z_;tR4nM&>1^NI3DkRYM?72y$YG=%b|zeRC#H zgPJ87jN?szb|&oVt;UGNpcjej-B&<>Mpz}yVq_DO{!v%C;8dE0opA7R-QO6_V`=sE z+{qjL^!vHUdf>Ik6^YfF&^=S5S>e_Q2!|MdfZ&a%N*+%(DTuEsFZ@x{RLvbK1mAhl z4(7Tv(48h&;`Pw)^D|)WTwB4^WU7=>3aUunxP?|FrY6s;PiL%^aR=_Pdv_?#V4ujp zUZ68qt_RblAxZW@aW=Wo(lsw(of!Fyl3n$h~aM@Wxni>S#AzX--;ZDTs z$r~``CnuGlP85C_3X-YPk@UNew+M5R(^N6eG9ouCDLP{v7bwVvAH-wu)tSJ-RF0MG2d>V$_IW7YDZi&yxL87V)|`lhnF)kmlQD7MHY#>c0|%VhW{9ObV_n57Rx8VuB>yRZN7@#Efm zU!gZPV+J5k{?VGjw%4M*n#hWuX9Gl*miL&T>6d^7oojvM;3$2_{hZ}s5R{Y+aw}L> zxXt}^4!?>QJV&7|P1O~{w ze&h!ji1`0U;O9P~M*!kS^VrYm9GO6izN%;onSXAOF))y~P22l^v}mw2Uro`fzF14e z>X#?O%?|h5Ara+OYG>Y!P4As45)cs?s4AoZP=_^EAR}6(L{0U=b;AVw6qGm=cvM@z z*>~NVJJ)xa85s+duC7D=AHVUK^Gsct*VjjzU%9>B#& zJ)w;32zt&-RINP?`VG01{f^M9kaP_VMOg?fKf=Kkxc>^y4%8Z1f3mNUbxXkuvLTa< z)D_|fy+d6irVXN2R8&rtE7pBoXx^vG6@Ep%Gx`(0&+)l0<{Sb@&l+@h3C6GS7w^Ub zAH_HV1Cfc_pQwmy)~(oKxkAsR_%OA$J8t>=JcWPZ^miPccJQ@wuj1ZHww4XrAgE_ST|!x6s0pfEBn|dmPDSC@r40XyHjg z%f6u?qiL(ij444BWCSse#4E6&Wq;Ew<5}NNY5AjEE=1%7SABN2?FAh^xCx$ZFv6Og z>E&zqQtj3aOYzNpgFZ~?ENP{xLye6u_LRFPOXm?gRPF;_EPjz`ZW3tVk8(!3MdvRr zOz~>ZgO{uK9&y>AHUZ~CpK&LZ$!zT75D%Yf13z6AX*%VLKrs#)SV^GPiza}+`%W|k z@s;Mq8~pmQd=th-Ch1?of&U`hpt>Mv3Ys7Q75V<^pOkhojze^5x(u(MN~zp|?Hktz z#fF9g=^>6eCz%buK9GJArYWr;^8Pup_FN(86l9HrGnuD`8N6F`{|QOl z0krT3K~mWuJo-=q-bVRgMCo&k%~K%dhYYFT8MT?U2`(8fE-#)!w67hO;)mGKRowp` z9*M5bf^B$rXcTQyqV5^TU` zM9d^s(m42fd0J!FG^x#a~f#1@EYG#jjbGnyHuq2=9pEnQJ|y!*T@D1RqSfO&h;* zdX(6#Xs4yUR=-^Ve#Ty76goP(sd}C(@Xp^HR;)W@nbDP(Ds5jOd$6EXL!sFMr*Ul6 z>)+a~9n=M;A7tw(P=6AFDlokW`aKxI1hVv_cbSBPYQ=%4$u}dmXbt`n#9NA!7>a)sKd}sy&kk^k1 zB72eutYFNZEX4)6qaI#`=*!DqWG7AHTw9aXYbZ>Ugf9_sW!R71Thy*bkh{v`F z%kyn1KVZBG#gRt2EDL!_j2{19sA*C}ewA9|$&G%0Z>)tVv5fY>ULl$Pil@hc@fAv; z_OPs7M;EO1-Tza1w>)PwD$M69E80uAQcVQ0ta9XQX1oOM?JqeKc3yCIjy>*?EGEL3 ztjR6-yUnDefqEhn)rqLU12N{ zXe0pX4R97Zs|o(c;U`aywU z>3-c@vb@wT@^A4`MpbP*!BbjBLdC`z^2zt<*V*D-P;>c3DJ_hQ5i7&W3NuF%l41R( zTQCe6K%RZPe}?N?Q<5H=Xy!oHLHT^FA7obj&sWqC4_=P!G1h*gM(kK*lnl^%t z97=E>PQK-RFOUTS1%s4irL^YmVBxVT-NJKd>dI+JV^GbhOjrx=t)8od9o)nOEUZB_ z@q*}gv3GP&*Xv69Z(og}W?S?x z&h}cgVmi`Dj#ZRx1^R|b!UatJ!4ED)+?bOzz!^J&b`qYInpm>duaXe(g5+_kg;_ zNeg8sA*lX*y@-AubbCE*Ek5vvc)hDL*ZpAeRya4{RtAVk5KwuU)`#KCK4^Ztgq)xe zgMk!gUgMR$E2!}^%CcHOryEQpSMbZ;t%7M?Cy8$w2Xoz}Y@T9Y50| z#W1naki6!)Y%LMrgEP25D(ITH+*4oMod=3Q{fmLG!Yh@-CZDq6w#59;qLq}d&N?aw zP2vODUVF^f|DIWI2c|xYT#+wtwb4!OkV2?6Z?{-B&SnEr zk~q6V?1i0t;xrF}Fq@@0O7+3HBKmW+nb4C*zeH{pXl+&HfoakXI)Xz}GbEhVL%lx< zCZ5Jn(awc`Yz=}o(wEGTZopb6EzMxr}OYHcX@hVs$!|3UUuI#y4sgHIJ2FAzT0*RpU%mT>2-sBi9Gqst%z z{X;m<#(@c^l&aJ$`aWIPr4~IWHhI8@Y|oj>!N64#E>Vq8k%vpw@4#qs5~-+yLVdY%AR-Letd7dF|>VdZgK95A?i=2dW=P1^ox*#cR!?Kko?Csl4PnFKL~De zhbo*XK`{-BOVjqsRs$E;6ih`Mgs7pxec9QYR{hcxBcbcj9)@})!ck~3YP&N_Ng2bs z?D~)1u8#$NIa2&~QGT)>tzs!;A6GhZo%|cx+xI1z2If-1)FV7wi?JO_JP9a4PW{HU z<{)+oo4#?PNVq}CX(npmh)g~WO&m)8Em+yu4@~cU*2%)3S_1bn8HNk9j8wtHO-;`X zF!&%3uAjQfD6EPX;`PvzlC%S&LaA->ehi#Rk22grzv=U^@||g&34p=_08F)3P`5~(hWK=Rms1hd&Zmk z0K~0x8RK9yJWAEh#f8QwF}^syZSe!~A$IF$>3mkyrG?ipd5mWzCU2=C#+0h z4x%pyhYYGRM=wR1tudzbI!N1&ApI7y$oJaTW_(F^goea5wJ)N$yzT#<`NTEr&FB#l zl}jJ%L7CqX{IX%6ZN4dLPjVm#jJ+gMREUFHjRidB@MiF=QdAsXsB6GAT+fl&2H%QS z$9+8;E9!2ZIXXdK_Gq2cUd>YR{nSeDQAYhD4E0iNKv{%34Qb+pD*l5rm2hj}W_h*5JAL{1 zF)ZMp%(+3>XqI2N&GS~czYj9-M$5xc-tvB#*R|CYd z;YcA5Yi@?%B1$e^j|x=1lN@ifSI-tmD1j685?WSvvlHUOlvE1hA=uT*c*q;*hIwXQ zl!oN(Jx^ysDCLE(ox6oWB%HNYTkAexVnj(1cpFv_-wh-|VYKYYNIM~cZ8@&^O6P!Qd+4X%lO7ySR87L*4E7dQ2z zcCNOmGtsr`F9^QbS7Dsf_3$!~u-CVwi5mOw9+~FFY9fUJL*hZJ8;|#RrlP^WJEeM& zah|Ygx@z(WkG7}4zion1;e*XN>G|On1lv_K5w~oPCB{E+eCv$Rc{x{zUdNewQOLL$ z$0*!_u;aqWGr)<&O;nGY1Nms+&&9Jvj_uO`kzlU>o|j-#(8h3BDRznBxp=mZTSLPWJ%-$kKM6KqKY z52qZ`yY{t7gqAu=l9(zEGe4*<*X|zp3*HO~_?*Tp|9-f|7QB6AZ@n7R7KPjyet*6Z zUVA)x*Z$WZ+j#wvbUddcgh?$RxRLX7?_m42jgdFW5F(~a1~>7p$6a0|M0jcuX4h>% z1jdQyaHiTetN);>?^(LxkH1xenJkw?N_Z-J)2s=WsL00#FBz<*MlkflcHo6(z-Q7snC;rMP^%H$642 z^cy^qc83V&R> zU1VZ`hes1LifF&+ACA}nv!SO5J7LEF(c(1`5y8(IS$Xb^%=C-}x(eVYRJ$}AX5R0rDA&sW=cUj*EkIiUOvHzGXq_|_&<4vioFCY4%t#8Xba z8$Or}y5D#tIR1RX>MDON5p|oTiWGIv3*KO-nvhgZY$JVXyrQ6Mxbk2V6RyCEP#+43 zb7TV}g%56HtT~{+;@c$IhXx}-I@p-1-~MH)R_F#9ti6PU@QMQk>XwjRB7272VS{rh z@%?&y>Y=0l>@AHKt%cg~C8co@pyz~z^>6z6BL~muMcX)G(!)?waFyG}OhH~zx8ivq zYQu83S;lv{O45GqpYfvwa5x+|fu1LY>>)v>+I3wW{;-4qGsuhkY8p0`)B#GtH{?-0 zPlN*h{=Mapiz)};)*D3G7ws66K_7R%Yr`9;kr%bW=4zx81G?p<_G*wG@(CZxzIW?6 z{03-HHQ@9uG;rBL@4teJuNfIsRWnS3g?O4cob^?+YKyp}|KHmVrXW>RyuQZz}(wg3UbL_=+sJL`?+3ZOU#9% zIOcJywZ5Z7mP!4izFd1%Dw-40=iBq7)hYpSX+ySZb)#8K!&2fBl9H;Ct+|^rZHA~H zV`48v&^FHSkWXSn&@Ou+pS?^Z9}f>lB|2ON3P0c&-X(~SWOv6DJkq=$d1Eus_tE$O zsmX%KmAyc9UC-O@_WI5FxhvU^6Tf`ZQs}nAaQyi>$gl~2Ysov;c6{^WOxH8nvIL`w zg{mZ9$)qAT7&$c0fcif3k*I=5ZyYsVFfw~>=HMnlHHl~hvaOo@Et!nMk1UK?+Iy!s zR@}Yd^Dp*9$f#(uC!d=vDonXFS^rY@_5G*hmP4)|(t=-uVE69KTe-CbCnP)_Yii`o zJr5wB(SX=D-BEdir!s+i%tv-Rh72;o?1QW^LUCC|xeiNaDg$%G4JTC_D+~877szBB zD=it2tR0AIpELj9Tl)0VuPRGg0BH(fp;{>j0k8VX&|nCVa<+G2K_4;vHpe7b8u8HJ z{GWp9!PEieR_-L+;6k@tVIeCLX?C!J`qOO;2_X|Fv}dWkO7C9Ts>tNzWFOMb`7<1S zeb0Z~KfK@JUk9zkCxD*t3EE8Fh&$*)%bmX>DpB_pG# zazhHSb^hi*X*>?hTcKG?$Y8gOYn7aJ&nTrqsdjkOqigfz>?*m$n;aqG=IBE^-}mTr zEF;p`Iohb5l6cE=1Vqpj8MOA{+sEyKXyOrCwRd9ROZ`Gv9G$A`4z>*|*H5oSY!Vv@ zmI@yQ5`S7^U39aq8)LqjP)eGD*F^dLhXq<%RYd+kl&O zo>lxa|LcCW6q2#;AkW~xu$vF+@0q{|ph`Sk_T$9Cr_HU+qkvD7h! zg;$cytfO#nIlLIvzJvTz&Fpj&Z_|c+4)%->>h?7LM}p7p{QX0pBQ>=TYXvVoJ-MwZfy@X}*x0M=&b4Y0#zVFCi~@^d{9JGO{i~2E4_Y@3Dnv24D%y1qu#wTmBI|d z(Qm*Cygp3G2)TK{s-$H+nkvjnUiS~R{VRn& z+}JlEK@+tj16iLSa=5+F*i#5!?$g!(`^+##D_Br~Aenu6muS-A&{OzBeoFKF`G5EV zz*mQJg^17VYraDno{pp0J%JeV<^89RRZ(yEdFENBo$ViLmO)X!o1sWPawguR{|$be zRayM3?07~fTG#0N?Mgqg`(AQiW3am}Q5?UKABR7KT9E)?Dw`}Y{&UPA^u9yMrP(My z+U0>jp~mz+;7{+=e}z4FUg-Wcig{B!=#MqZ9vX7WEDKEW3sL8-uOMvKOd|P2DV+ik zbn)c<^u<#0ost9W9Hby7H8=N?pia!WooL@<>$~oZ82Bg}3S0{iHXvF1V0vtgo{7z)D1xFKd|P46a<5{I>PuwtwtPW+q2Tfe z@7S@Z&Vq1~Mcn^oQWkQX?`%@?jP(Ea{GT>Fmt_n2hj)EzaKFW*qemq-C@x(Afm!p} zhm=#kBa#ROsC=?S#j)~A)}3wb`#)ZDR^D6w-Ow7XItcq6-!{sraNM>xIojf(l=3G6 zsK^RXMp3OPP_{~Tx=Y>OT1yZnd~36y`08sJ3?`)TB#4Q6k7~-?O^EZV%Xh8Zz^4wR zJd(D@@225%1Z01*AOZB?Ti&SxSB%X|(GAfYjF2Iz^SAmrj!)AkZ9{?secaT9lQ|9c4p(bzsjzp)(o-6sJU5y z!k)J_){JU49K>MMu%XTY3q(~Fa`FrR3k4^n|-qH#!`^`g%lZY zXC|Ehf^9^E(1-%nQeL^>-lLK!F=OX zgI`jEQ-@Lg>5Ukg-8V2+h1T*=-waWeGb}HeD~z)mVx&}&{SN+L(DvHW%`iC~8whz& z+TxLs><4&p{jcT4{ZD>6wk_nwNQ=itq5CWFzMmn*x-t<%4QRx$8iJrh)zRlMIM(-TLqJ++8lv8S2j3)$&q>Pg zwtUA8%ewlz-*r*GmIdDHQwM?8@#hS-`&SCK&f^^$3t37_ulw0csUPgVTWYl)(~YI0 z(AY4K-GEfXT;&gIaUQ;8n_s?zoTJ`3=e z3e<6h?-V$m{xgd@OHVPFAx3>T_5~6OJ0|-RoZimE_hVw;;fYZMkoERWZ?_nw{Ikxq zPyJA(YMO_eF{t8_&NvmNNl3u!II|gKU1|4DLK&p;vP%&p}Y>Iw%}EK_s(k|YpI zBDX7`KdCdBa4_O7Eb4h=Snr|-=xKOA;=Vho4G_R(lD8K1O7D!1Xw|vHK<(`#u^__w zeyHnrPaE3Z(V*e43m1?Dh`wQx?8GYeRN>O4 zQ?{Qa{_#4hmdzJk6G48iRXuX~>usISNwjhIE?%p8Dyygu&ikK4PHw}1ZIOQR?*phu z-@5rRtmfwlK5=J{GJKyHg(+`tkbA;^zEz-G`S_sK3Ew23>$&8AW%)$7-_so~iM&Ny zd)ia~>~p04`TQ4=|5e4A=jP+bR%Hu=oK~;6VtiTOL)Pn)KziQgoY1ZqwATp~%;R(5 z?-4#lz5pjq0D?uZ(hJAh9563$2Z+aH%O8=9BF9N3BRwPkoQpa(*3Q)HUF~N)htW0p z0arRcC(qP>r;_qr*3IYK9_h3)*VIgQX(MV1E8*g)Bxy!nnDXMFv~1>nBpr_vI>6fG z#CgY_QSmjL;)Tq9{}>P5yu@a$2^o&okx<6+P<<*em~~ewwWh5%7VC{~XTs$$9#^Ft zkhUc&X@~p|!k!s5QlO&_mEYL|QFCv_b2_Rip4|jSb*Ma(PbsV#0xbDXtsIV;pfLEx z8RkGjle%hS)tu9JCkh%E_lQredpojk%z+%dlVe7y1`gSPlJZH1O?X%V()!Rj)8^F2 zoa6Ck-^^x`Pp<5TlcG+Lgf=Q^`@3n(7I~rZY%|(;N3L4Hb080KE=A|5LU>fW#n%o| zMvH2rbH9qHmLnTAM(K8sny##$5~VMvuc3e*a%_C#$lhM*H$+S?Y8jZVf59}4l??ZY z3mT%pU#06{Oa0^m9w^cE8S$iN^u{pAxpB8RdI+JrZ!vgOcyj-*3hRjD{^aOW zPXf_(Jf&2WCWa|%b>kYn!7O=(*K67$d&b|#X}ze z$rw@f&PUd5W=;RkrwI^de%?qB<%q~iim!8}qmsnJWHe<^q@&*ci7N11{m;BGO>l~*nhvo~t+FZeh?9w25Ja5sa(qu3Se)4CLBh65#isA}TqD@`V zNDWc8@ritED()vw!}V{QmgkJD8+01XnnKTWt+~69(BUS_eEX{wE{mWDY=i+9FKa>1 z4%^E(OLp1B+1LG-q+C_BM zi$Ror`=!{}e*!|AQ>CuVu3f#$__H5?jiXjeKN@O33O*`Z=>OF|f5v4VR0xM>N zIY3uCQ2RBClt|s<;Vt`X+i(~AUMS1ufpUXIt)qP z^nJw+(v24JmooCegpS+XxAR#?L38&};MW36Z@MTj4D^=uMQdm+*t*j%V&r3;5A=ZT z@|f}u$ni;R^e0ypDHsfN}Z%7!&BsR$Q4sF`ToX0VMnk%Krc8X5P8R)FV7vePr4->(V79NN%F=hP>}|c zE+xI-L2OGhF+1atd}(3sauTfPu~hb&{~aNdqDT;$K>$lI{nUd8AVPUkD85ss*9))?5e9nUrQ0Ok^(g83`veg*an z(kHPq1@=6ma$uLn%^CBty@O&Wia+{Gld`oEE>;99E9Ib!$4#V+!inKM(s1LLAUr9 z0@vgZcF~3ds-xoGYTpw$e;fzZF7_p<0vi1x^>8GL_oBdXy^0;~{CW76Q*O)hQWz!#L93|*w1p^zpo4cvMX;^B?0daE5NJ9(FAwH zRt(gWgGe7dTdt{Wf}<_%#XqU5g18#$9qg)3J!%~w_{m#LfEGq;fHw>IM%_Q$ydPp$ zTiQ)h83nQlzQB9_%^I00I#bif3<(3;<#va2Tut^Vt!yr{F7P)Uv%1P7XR(?f>TI*b z!k{Z*G5j7F`$>o1%r$yulqIyW@%R;L_mbn{ex>!!?z_m|rXiv3<;33RXmo`yaMd*~ z183vpweLFmIrF%@z_)Y1>WJKt*XZ|E5Iy1ra;OMjJNc&YJN@2+31*0@xG1Tjx!YR$ z&UcTTjV9z^Mm19nNM*UnI-g)7p5Ej`&o?PYfU#L%t!&79z;qfk(J#1?i3tTB5cK}x zrura|@8N|H{qlv!ha#i)xeP}!0gYYt4OQ|y+P#*t^1E3JRnNoyGAds*S&4`xu#gArs8%gG$sXxVCdfa~3-?+@Tqz0r)zLNi_qHAWLd!D5% zYcZWI_3MDs!b1{#4uM^%#oVvM?u&lGbk|;LK;9gF)!^|UjWm6DIi;*?6oex6oRli1cB zLItsZiGk^I*yN;OBgwp6ap|AileIMnLfPsQ)zH}P8&lk}f^2Q;6D>)r70Rs zOo<6V-h}W+<&-8`N{kIUn8O`*W1w2Wx@00X@B{)kSe~5i)KkRVvzQmtTkC9 z6SM~LJ(W*UYtLeU%!L|pgXqY+smumq!W^)MztTPy~Y7kKi_C%I2!(>Rfb^^>a7P*~!V9#3G*B^pJ#6m1 z-1%Rl%y7hcDJnA6$2CuK0YCFM1)Pn8r(5s5Rh>>ubuTNvadq*tn+gTLjVQx~wadv+ zyV|tqJ}ha@{i=C>*)6O;=koOEsZNp?t;Y2Lu!gYbheo&6 z)dd!ANJaX0PVatr3oXkd9E1?E$otWQA0Tkf57t`>^7gc%0Iuz?EzI)Pyl=6Sn?arK zfOw$`M$*~ngFFU~+W??B?3S|#;}JUml5sV9lmSTekzqAg*K8hn{pii12oeQ8rqGG> z3j0HU!9_0=tO3bKY$@I&{$i|s9rQ8s^bsenQZanLgGfHFfY1KM+SOauhj7l0ihoD_ z+v8l{gCcI3I4iLNHoLfB$Ew0LMD}&hTnR_4pdR|R&8o7O1)_)`?fV6i>Is^tQk@rr zLu`{@o*bF{RU+@r6$dWI2;4rO`kzybZ7VzpCMMy5G8GuIH_Zqm|+n{6fEqZUBFe^`fucf4>8d1W{P|P5slCr6^ z0CLIkG|+dxucDA}&D>XLToZCzO;3eD5c;fUp-7f7(}s;T!+{BqR`6|jARr)Sbop*# zy$VaQ0~B8hlBF<5`SD7mXO*GS4GH<>@{FdxeH1H(Ds*V4j&v)OXD-3#v=aFR&b)7~ zPt`~tPD~mQ#D~!q{q;F=#;eVE-}q(pmOANo4dDxJ%7}WfozY!^>mN+9>*J`@)Cq&I z1&Rn5tn6M^=jrIw&t4n8VrJj_tD35MKER`SG%Q>b_c-Cprrj4plo-sTZgTH68r}Hj z$-6#jjQdYt*HzZPO#rY7T(}s{KUyWVo-*Y zWkmx3{z)4bfV4FF5HM{6&B`cs22>J4(b6${V?riT$<~*!h|nDNR5H#aO5$sqCbTkR z)Ytkcn!=3oGiit#ai2@M=*U4-Th8C03tbh2j<4HNnVbQUmk2Inj5f)47XM>be64<7 zgP$J(#;CxFJjq$jKBo$uj2Cl z*5g=V1q|+8VT?)gaiw3sUMwdnZJb220MJpQWhhN;=tV%HUs$Qm?Um3NGd#8ShNQf zWH-?rHm;YO@4>qWmD9lAVF6}<&uh;aDUmD2 z{v{jb+}9~L4v_c_vG6*&KHdazmF@5>a5ny=H4U0pUCFdTf~7DgjhQzo9sxtZp0;|v z!>6MUGnJHHn;H}E>f#y{p2H7n5w-!;f@?hX*3arOc_A2)0a$t(=pojG;OiyG#D1r? ze=^_i1;IR~rvS2@W6l++S^LB%y=3)aSrLjab@v!#-xwjDH(&?!)VWs>v`#|Ap(sRX zdMiYXV1w_!6UVTg8_?JaN>WO&wC0IpU$w74??tGErC@UcisMZjnC9B4Eh}qH-B@Rh zAVvagM6a)#_j@iutMhXxFe4~o`qo=zzo~*N=+>lc;`^`nz%tsSJ}4z=fa zbk7Ny&ozH=8p>c2{S~KPghxV6I@GpWLe-;5Ff`l<^BpC5|4+VbA+$+{?;c{W*tNsI zzvAK}C@_8tpa5=|VuUa*Gk8$L-=)@qc`E zJf$Eff37HM=8lPpvCNPhp^AcJ(ajQ=p`EacY2m#rDi-!P=Q~=<%K7f=%5qtIB zi@?^%f%)O^?*NAq!tH-(^0i_gL&L&E28Y-mRUxP%^YzhO>>QdOqOZOmd871=p(v$2 zU4}CWSu(b+SIC|VjiTDiTQ@I8hV(g;ObTx!6K5XMhYGXit)G8u>Xw3)(0b>`=vB#8 z79S@}#G2g0WAf?a@biXPeo7(MxfPH)d|5J|HYwHpf-iW{HZGYzx18ZztEt(Tzh&+I z>?V2M=Lv_;^WI-?eC1==i2nLX==PR*dKp-OYw#8)=cxx9%s%T@jGcCY8bB^8o{s=36rKrCngbjtzjC7V8Ysh=PJqKckkxBIEmDVW@_Firv|c;o z_5xP$e>w6GfU9T1sTUG{D#fo252_mR+sLowThs{(KO7!1q_ zCFjr@|AvjASC&Pfr2F~w)U)1Pk|z(eLv8A3ms*yN56|{PHKCRsxW#QFda0_Aka-}P zLpKy2A2h19p3vFoNbUXmXT}Ae36k#8Bo#2y=_;~!tQ5Rvu|s*R61*8qmew7y^<#j` z#0%fPsV1x^?48REwV_zHqblHmz)@c<0ZMV%{;ad}h7R(+&l@&s`P7S!8sm3qt8Fyz zo<=ACMw^KK>OetI9!Dk~fub1e zy@hCCi~y-W60F{(j9n@Q$>vL;myZcM$Q=s44*?_BMar>U8-8Ts(HMMH( zmgP2T3sbD#$tW5?HwY7uj=KRF9Y{)zP7^OwY_l0I#!sP-u-Ys>Ks{EJ4%EgsZ94qSzFg9)NA7ITqC@J>%7`O3S zvr^Wo%$)$mdF77wd}5ZeWZN_hJ%UeJ6^Sk!jN9slJeXnjrqe#^laoZ*hnwm31d1=G zQEXr5+`MS4L-R*cb+5|8rm&=qD|)AhPVPTPJ*Fa6U#7!SKY72Govp#R-xgUEOnVPOCpQ9_wqF-VlE0b)c`aAyvQ!mD3oC60hoq)YM zS-@mS1w!FM5&qjRWafyNw2eX->|*jKga=WGQYUb1DSS~Q5!zf2b8;VZP-6fiXSR#R zh3#nBlTNprqF94YR2EuT(qOm7H0@^#G3Y%4Y>&RIDYzjb9A8tS9!CP3h^qq>bw9*= znJ0Mce}j2dIHmx821DRa&7Rl!wlc4urIW$aG4Xk?>@Y~9WSPX#E?L_3sQ!e1$*|yi zMXeTiPU2KHnVE4@YKg84r(|N`;rOseck@#FCpHW0ycGWzdv4Vh^Zm$MX6Y83A(z{{ z+J91HVzP06XcI;HLe96{J$A<2=pNt_i5AbNl(L>DpE?7d37uAYkADcTk185BNOJ832>Xkt8G+_J8D~`2fk@X7iG0-a^a%+nf@v( zpI~m6%mp1u!ORe1oH>+MI_UPPh3TsIWAOuLFK2%b8}h}0m*ylhS&>3gCmGB2S3j0$ zA;|}B5t0((lGmrouO1LMk(slso|D(G$IGgwp zOe+)kR$qw~a(+gl3=2WW(JarH~1gvB;< zxW25<04h4aeahovLJ{>;C#nidx#WOOUp$rNt zIj7X>No;0y9j_MhtUVatOZ$n;^c4IDKgB;)|Jxfp=O_PUm6q%Ei_lQaO~vGyf~>|g z3BH_fIeCl3{5`&s^79OGbP$*EL;kA0wH2Kl+Jj>sNqs@+Q?f3S9*HpfZ?JEYk6Zw? zRMd?{esz|P1LSc71m>me%t%&G;x>;u$dqPuur=Aj6yo634mT_!?$|S`J0{gWXf|UK zEX}T>Hd>=s=964}e5`qudBN{ceH{Ada`2e^Jbq?m_K!vosefuo)EvN{3%7TSG_JBu z8ell+9SM*^gH9qowX4?>0`Mp^QEfDo77Sny&MBO=oRkbXEm~1Wr-tp;c7S}PMqbn- zU-HxE*mof;33^_!hmA?28W;r!&mZsZ`_etMRjqMRLU?6!b3BV~?%KMmL1j5ovdgyv zQwkKBzbO?h-lV*l3YnYXW@e6QYrtBjvft6}_bhCXlX3&7WJJK`Ty?<+S^u<=Hr3d#%4 zsOCB$&2lTrB4CZTMbdT~;#t?YNN&O?9Gh{D(v$wKMFvAKe3Pc&x)b-_4bL+cC?lZ= zTHg1rL>k7Wz$p$$fEd$Q7jT9l0me}ikh9uM#dBH??sd3ZF*XX3UYYWOmkTRK$dcdr zlqif?}PFkcN;R^Y7abr0vo-6j`jyb zCA5?2>jLxFGZBH)-`t$mqp$sy0}AQ-GnO8p zA;>+YV^0`-PHyy-KMD2DCt+3xG-^o}(O|rKk{qU^7G~amns%I|C9djzhkiRnCswFi zRV0@_39vX`4BU}R3Ip{QQ0f_9vc&RQD0$vkr}D|i&f3=$be@Xw&`cE;?CKacTdEoD z%e>n~-nJya>7?yW@!dfVfr|{~qAzc?Hfp4jek6{Ut$X5qtC$)X$PUSd^Y^oSQ-<>r zXO}db|7?`g?d!6qPRE^I0bF(3L0ZIY<-k|MXn%#YVbEYZCSD4SyL=9)k-Y%lunwTG zlWp$ZhAA3qzRfIDH#vctNKoiW&e{56);GISe@#sZ*m(^^(ad;zN5qLX*vk47Q6v&wlt()GT`Q)zn~c@=L3H{1-~M4| z_8j z=VNzc8EdktbjKn^>v*CER*pD&n9u{vP>6*-p!$`PYnr8dK6OdidqpJ+>X)%U;;;6o zg-~e?pnHGSKE-ts9v*}5nu=0j0>vRVeiAMo9zR2U&&zoe(I%AY3y2y+Y`?bFUX6g~ z<~|ugAm~2x@06@XD5N5oQN`*`(T6x9k1Dl ze(Pt=CPGr|>$dpu66ANh7+UeRX6yE3WpQmCxARj(45CM_3wTyjX3q_DKc@Puat`m2 zgb~J(rzhY0?PXyYJGtsa^w6=fu`_e?6W}-iMw1s_yJn|0^3BcdnN!F{6B7|vi;hsI z$h#1q{*Az9sbod#0P8@4eC~-0Sk?RDIFuDK;Tn*X6zmWSs)reDT8<}tlFjw#GDRN5 zO5b~I;uLyS$Bix+*PW|fQGtAB;@yIHd>kUM|4)Q3>`~#i8#M8w{we3*sZD#w|Nntn zL-RXqo!C_MOchOmG!i|eb}~2ZA=QXjI1Y^X_t}J4F8buZ@jLR`?fm_X zr+&x0hzKY;51KIymjuv?E!6rBI<|vR_R1VqavVJPa24Fzvh)Pm`B0R0OGGHnuTm5L zIJ9msrodck&yL$M&)ViHBI4puU_AzWg)nnqP+ZA+KFC0_y*XA$q8GI2TU)5voHnzx zI{Hm1c`dlPn-a^iCqBIf32Vp=iWbccPMR-wA^xhLaC%WeT;MjL84{LK zWyMVfn4QRK6=n(m&b4CZ|CRX?2e8A|a07B;aC(BR-aFyOX2UW0{xovNX3h56@$)Gy@8x`x;^ibIQ|(K8AyUc@NxTO$t;as(m9q)sj z3m#S)N+G{ZGpd$rxkO>DwZ2yS^pu5(oR6~~*wQ9!R|NB25VUB9JVL<_?Aq(Wq;BTA z1M@tGt&3cB3PGrvLIg^mV`^~axtI1$r5I2*?$}q_!7%fe{y;hq`@&_fkAok0!Ml%b ziY1T}1#2Tcm7`vm zL0S636zyshPS!=;zK3d!Q;Yq-A4i1xb&Gmj<|T5r)}XUTHS9YaHr8t(PBjnxGd>?nQJIQ zDV_O7Nc5u&6EpJ#^6QBH6^o9e_MB&AW-LV(^}|QM^YA#^4LvPIRAI3_U=_} z3%P*ns?shfhaq22Pp^9@u?li+g=AKW3a}JS&H#!VxxJ8n7>LX6h{+dcMXF7|S%@xK zJ^%)o3=M4AZ22I2Z0AUVVI8m-%N=cmOo_?7L^yV7kyWbI6S21uo#v)smSsFR>9VWgo>t^=QSxOTJYkTLaf>0p&GF~ITnA)B=Hn97PTc*1GW$=|a5>h@ z3pd6?j#HICi$P8~ZH(q|gf^4&j&-L8s;)BLI9Tg&e533up`btdK9ft~V{28T_EYKW z^GPwhx0^fPXk~df&Q}&TDN{lx21y`?nM62%3uQ3V(jf33#pGzy?S>n$!W^xQQnBJK z`f?|$RQt1ykUSH^SCudNV*>N9mLGqkQeD{)OPfyVhTs3Idu$tyWnFKcmmP3K{P!cN zp!|~QeQa|+iz7cPq5_o|04hEXDdhXazS4}j+jgXv(!sDRg>Q1CpVpQb$}cKW>qe_@ z)JZPBn-pq_Grw@G6m%j#w{WIzyZzPaz0^b(AX6p@FCI9OMdlCE4hVGw#%G6s<>J;= zr|Pxdp;LA2(8pU|$d8Sj*`mRVR{^!35RsuD{CX1q)#SPV6~C_Pj-4&gLCbt!a#OJX zf`s)#3-zYTe%ltbGQ|cMB+xEel-9}y6;&eNyG@x!+zAECO%!|oB66*T>Mon=evTD^S9`28soe_;HhtB zacYv;A_jM_=7Z?j028aj!DePu|JIq9p2b!aUMW6SwBy7vhN+evzk|glVsN?SMt?~& z;d0B0i>;2NYpf~@rlA?(4-L(Kn7YJ`4J;UeSXb@~4^0*0uMs|+H&5A)M%H+PL5mV0 zBR2OkWS0T}HbBJv9J6dKMs;F2?B}V<%Uu>bvAQFdE1G;jEwGLLzhpgG+V2DvdM_Mg zaAjKhmUs!GFh2;jT<3X>AQ_d@l-?@6^9rgi02&rk&4~Jj6;=^t9cuuvp|nltKBPWq z#Ml5~Y%6qg9V5JDQ_R|i%dLp@iA5X-wL~FDt#%#MuL)4zbye{%5ZxYFE=!OFLs(Vx zD&bRNp!X}%UEfSN$+o|rQ~2#8o$#FVp`QIuw@PML&+_}nTA{}1$WS>~s`8RFs2xdJ zxpbxoCcJY<60C$vwjoOeeXFg2Jw zylz9|IutB|uP`k-?t$^zm4prHE4|Yrd7qH_@H5uM-%|JgQRc!OGyqI@$cCrdmPYhH zI_8Uh$5Nev2yxkqLDIbY!-|@7f23O8N}%>N+rX>0YVNJZ8fhxKthCA(D_+mulZPWmO}UYFe z1^9&~d`}|r`!ICedKI~grdsE%KRg05aDmM4GvxYlP)oTLU7zMFT(w7{B z)0GN;o*gCc3M(B&WmSIbt#zS^cYV^Av1a5MIaU4B8szk!H^3Z^$YyNWAfxA*F6}IY z+$FaimRWZt{ORv+SD|LQ??wj6mNG=eRlLdTouCAR=B>eR|M}m>F$#sO{H~Q~w2QEO zaV1CwAXy5G{f<`8XYQ}nYlFr30o(Y5CPMnoN-Qv&J<=-#!2-)`PjXpK)-@&Kcd4U4Zvb_)NqiKt8{M{Km(mg0g!_u zbW66(k%hXI*+B7T=M<6;v_01%foYx5o^k8cOu~7NKReKDDY|3o@B}VNpu$&cicdR~ z!fsc-*Atzv+Pt*?L|)^v76Vu>J}JARnyYW;e~(1BgFN`M!WQjCBQreRJBZn+{Qc&! z+d)2az2*5-Zc}t4mo@IzHzzBj86xD%gc8&B4Pox;^zclV+Jj$`)*BnOuaDigWNV5F zf;oy?>A6+iro|gKxDh%*E;B-&;;hflW%Mm{;sdYYs+tPFj^Fz6E1Rsyl1XT*1Zq-t zs(i7w-Ur(HCE#2ND0*&dr#4URf)roAj>L zIQ^IQdshUox^ExOy}2TK41_^hT4y+bNoUwt7W5jky%`rBkb^PZ45YrP*!b|BfH$1j zAA^Fmu$pn0BL_Q?D?GD(QWFO!CZq!=FS@mLkO-9ppqKhKvZMs)$}eZ7JM1fg>IAsj z{SG)~1GGk6ra>V)T%;&E5eKt9Eo-BqA~C8m9#m9h$HdP4iy7tjoiXLe63e8OX?Wrt z7?H_(0w!x(x%v>|6HHjyp7j4hkNz60ujdDqqfOFy`BFc#DgQtd{!2ysowh9GwelfL zm*6a1?n_vC4#DxS)lG*Z$vKwk+0j!%nUNmz@~Vss|MdK7a%83E4zu#v#Be0hIC|bx zd4V5=G7Cw-!{~XCz$?T#L40(_TVhlpYf6URpbq#dmUe@Z3`3p$|B>|74^chb(|4Ed zZlo6J4nb*<5Rg`+yBj`q?9$;%i*z?A-AId+v~+`lbS}+)_j%ucfFG87=bo7}b4GEN zhPL0LaSGO2Onxi>P+$-!$DkqCj{#&pBLDltBJ%o&`C!z~vz5r}TC1Og#+`mic)*EC zJKTzn>LL|-OmTWAXlx?+g$|@61{<%>)<8jvOcctknf^U2d7qlju6q~F$_tA9mM5$| zjgNJ~H%5|X;X0BG+9t;cDBZn5Czd7LN=|0Y{uH5tP8;uo`5Rd#WSL7V_{;%rUM5VM z!yv^-1LrCG$z%PYXO4Pp{ zEr%Y=wJiPFZ2~{1@7Mjb0vkl?KOr;QNR4gp2ZQkEU}N<3=j0&je+kUp02f()GKh;e zJ>J--BVy_4IltX?Mnd)}jWbf6TyR>`6nK8vszydBu+<&IU#0t{XM&SpI=Nn^;o62a zyl^i|loaZ$qN4KNW|r3)Ej7ei;M$_ z5L!%EZl^ch^4K~{e#$^~`Tbb);&91`32T?W918?*|CNq!e}n4XX~Vqz^_X7wPdxX2 z3oEq&7lwpBYCrN~euJEK#x)|Zw z=T64WOnSeBL&nX%^IJpd*9Vq|{{6cSjMju3;c2rqjbbQQGM=G70)|C**>R`Tn?WL* zkneXBY1hNggXYk-%Hfp2KXSQhnYB2N3u5l!(D6wmYazN zwxT0RnvR_Q`$s^azLg8bfZV9?xAi_ZncM8MrLT&5Z-QYtpV_HE9C$s8%)mGJkhU1W zFUExyv$2zhU62_^h&pSN|J4CoS0Pa25(}prrKFHk=rOYw^&noJIs*a5`B3}`FcS%r z^ouV^@{H6phP4x%iDbcY9kS=t#CQ1aHK5QdkdFs-&~ zPg1Rm{7VD`is~ghA(ISe9 zy@^I7t_v*381&*7KV_a_O$r?`-M!E2xv^13)!prgveyNjRQaJwMysVR=>w?TUI(AZ zi^Q8nbhb-d>uLO$Hkoh-ZSaVp2Vp(=ti=d7GE^ejL9lj^mOhM!TYrrpf1sD@2jSXK z)0J#}q%iyAqO;V*8W{#+ZK&=dBC;J3XbD+metK6>woR?`1q%GK`Kg`Mog;DoW%sMR z$6rgOyG5kxpl2wMSeHujKoNxKmP|kg40Skx&!9;-5(0myQFi!Ci&=o3*cK|aYpeHJ zGO9iEyS;M&>8G#JlM6nHo5WN==2D)#S6L5H{#Rvl+=aP7r41Z`dvDZydd8?c2!kKu zol@d}_6#0!HxMfyje+#qOQ9vyp`n)!cP12ytJqUs&tj8qN)i*3M_g9EAMEb@#tZ4d zuC=BO3e1eg2dx@$Z_Y2r`Oi!LEdfSlo~WBG3OeCT4y!E1msb}3nlc3*2XhjhTwF~e zM{EJ~P}`xQp*f}ER2I}9Wm1}5d9c)y=|W1MoBj4iRzu&+@UZ@QAsm)RNOgjZNVoTk z7TBW9AVij{uT_o+i!*dNPo7X@$CRf#?#!uM&$k#1RihTXK9E9PE^}wctI!37@%0ZA zR-d9>*jAhuwxiKu&VEbQy`wMaLI^QVYlmS8R?a96%CfT#5=H7Kc}X~kxNBE4F*yG+2UXU@AbjH zXD`wiYMah?41jS&h`SfACAt*4G(*y))_iCw>It#gDfnu^!TO+~;D8Lz-z_SMPZQJ( zEL$#BBGl5;+I)_pXxKuadSZr5@Vj>euEZStW!V1yVWi~L6$SU)+(~u$uiV&GYWSI% zJ-(0>e_1?37NOHB9lNAb%xVm&3_radgv}jF6;X!z*nX=O^azV@2eA%3A5rqq9PEDg z`r;(EPIjfP(NjL;4VmPsJR>nM)Xyy0j&0=g9sWl6&cfmE00ApjB;bokpRTOH#{Cpc z4ynIU!>8S@}jeBEO6&+UViix-5Mn<2M`lGy0`24Xs9e0lKdW~c4@bqhXy z)NV_SpXsG&h;nVWq@cbBPOKts+z4alV*4XKaSlOEqILRWt9<0+3yxoA>c-hOwEXNe zZsF?U~UXOK{I=bfq)o>;MHs87YRsP!#YD-{zsi z(mMr*stm)j&wpyqw$j-g-BTm-8(pX>e;z6CW|s+g{1Jqk`Je|^X_znFm9+u2yT7aa z_E&4%FQ>ifJ02(qzXuaUuUjs!wMTiGg(TR?P&8snUMybkWnFVrziUdg=Gp^fQD4&v zh|X9}Vo!54ogp)vd1-;tgUz|S4YKu%p4h?}%`8}0-0@$(cjHtGu8t6>a95NRxpL~w zXYwxVI~BnXEbY|A1Y8y*&4qS$7xD8{MBWrXF{u81K991>-5X%YEIbY@gtme@oBWnz zVrfVUXa!^q06p9uSN+<@cZ$neMz`p++m-AHiU@Z|!leOEL$daI;Ik!C!4LX@5~UBD%n1 ziycc=r7bFX_0h4zDH}#pxrg(`7(-S8j0e%zyy@@)9RPFwujc@7W-kW72R81AYIXI= znRui4Z>j0S)75wM4Ol_!6G&l)P>>^C5jwe<7|y=~B?+iD3aemv{Mhb`T$vIE$$ zQ0-Nb*8`OOkp!1g;iSYpDkduOps;Pv%?Xw6Dot`87by#K`(H7+gy67-O}bo6{cG_Z zJxy8di~p=sKgl^ONhNz_6?`i|6ZPhmn6lE*f3fe`pb=U1jx_I2nKOzUTsKl+1A3Sn z=9C1`d7akfQs$usT)D2_F=|#;U!y{bXL*zYAl`E{BH$I+%J|!%leM_cabB=+&tGp2 z2b0*zbb1c1ivMC6`n!4h^ioAm$bjl!tLR`@EqTw>9Mw0C9W>%TJ7><{C^t%7*OAsI znP2!$4%DZOP%d^Y9lhw#Zxrkw(cgMYad11H&KDfLMpSSEI6x`^F=H0iGne4Ccc@1d zEyyam6NnLCQxhd(bmX)f9%L>;&j66+s1gW$i(+1RCDr4&s5n9%{KHm87(rm3`c-v7 zb^cvwMC-u%QK#`5LTx3&8J_Pt2fj@pKu@Ih%OK(N++cOjfqM^996d6L*kLB7s%UxbzYxq^}oZXCR`>-;Xz5Aj>`>{fq$ zV5Kl2ih{yHX??w8&R*}++}^jLqrW>jNl3=L zwNKs|8RZ9=F~9FMwi*u1wtGU+!~+pLRDf&n1wq=c+_(<6oB-Gj(bnny%N>i;!0?#v znuv&jqH|TQdEP@Q%%BBm(f2^&*`_PZgPU9R?ucU6@~Qz2J|M;;=HthUN3MNCEh}V} z>R}7Y{R_r;{yDF>xa1%5;Dn9s@sCA8g`=cwgmeapyT${}nFekyY@o-K6;lAc{whD# z8EI|Gk~kjo-z&%|4Sd#4=amdr(gP=b|NMypdMp5DX5zNQWq&dTu&th8b&5R#UNn*?~gq_uQ?d1k&++pOa1Az_Z;s()uy)5W*-+qJ% zh3*+}#AJj|qx%%ZXW<3TnCrw3r50yxx>>xsL2|$O1|D}EjCg8_?1x9y!%GUGrq|8R`3#42J4|lX!Un+CjD&4;qpW#LBTDU zj~H0%4%OA~?)|4(j@IKVK01W_mH~>NI>jh8%-a`Z;H8LW$yD%ResA& zzxxF#@@-7)4=nY7Dn2_#RcZ_Vu@5nQjW0P=v-r~=HO=Dd;qTx>HLnd2j(R)ataeaw zd!!S_PB$#+eucMuY%MH~hZGcH07U!;8u4P3d)`FAvmAQY{@vbwX`%thq`7tb_bRG% z9AfW?n(%}`=zjoSD-BP4Z!GhjE|(E6YTbi36rx}&2hXk99nl?kqe2J6y`H6)Ssq}_r2DW~c zwci5C?Zgfk*5X2F%$u@d`?+rz3NzwVco`P#L_#t1>83D4rRIdn4-i==132)QYP^I! zX>KQ67Ga&G-W<+`q42&JL&MyM*5S^aQ`(KG&>3qH07EQxmuHY2IX(uzJcD!k8p_GA7P51?stp(J%c!%ASL$ zNrC_HH`H7(8Mi=8xTHAvmu-R@GEIt1HfZR>qnuq;!y%0C4}%+R@2A}&fyJeDYC5urM{~;-?4r9T>+EI?^|2-9JXY1D*>F%ldm5yT3w^vhx&WV@T zBWCsF^NOT%)Csb41^`&&U1514cQ|Ta_9t9C0{mit!aGM9a$^ zLO3Dpnjz>An>M0YL#zvIrNc7pSmbLZ1j-($EH6v6_4w0+wRV{mw^*Psm+}S8zfE|M zvH*Bu=qWq`T2I_R+zn*kMB`0AV$D4LYc@xi$=*dna$FLw4`5#-zsLf$cof#41&sdq zB}ygrZ5y?K2vWyuC5+NERXUS93bgDn>iBnsEE$K-{KnL_y$_ z#ed^3CjFysblzhtJWKp`bKdXoQVah2Mw@1L zf0fx|%*8ykPtDmMm1!g1qr@jtLP$|B`fAUIr?m5BFHWm1Q_J1`J)IX0@BT*9Nqu%b zCAw(?{D|)=H-~O1I%l{ZMCsA#FWB#gpw6kj&`~`nB6{x6o6=bO()YmAhxxf97=moj zN)*ET;o#hZdLmMg=VPKAR^>yc32~hS_##!^gr9HW3wXm&n=~zS^Og$o{8S;(bOZ~k ze~jE&-us`=?C(SQV6<2O3;hb2^Aj_(Bi?IElSNi{Sr_as2MaxdkmOf9qVF5!$~%k_ z!gIVpRuzamRW!;qGEe|zSNJyveyhVnvB{1bQo}{7>?6{3b2KcRsSAex5j}I{OokO9 z{Y~510w`i4>xO9)iakWcWWS$&{{R?gj%xev0BP&wF~IAGTODjt(EF9nSVhK=n7z3< zU-I9-)fPspVi+bEpDhIpo)mxnkGUcrgZb!oFYtk0zKKhdwE}MYM zhgycA4xe??)-CELnl{j9TyeJ@bjzZnmRM~^S?CQ&Ub@8PR?6GMJEJ85i~vlwi8{IK zyr(XtKXaN|!)^bw`>(%DXjUw&n27=UA*`OYyrl24rh(N3m7}`77&K_(aKN$t$W!uH zp89bsHWOcOEKUgr(VC{oJFQneY8XT0S{gW@r@BsISz~p+YtZR`MEd;@y49qy*9TUQ^* zLxrc5@ItAw5t2Loc3?i2p_PIv+ATB7LzoGekC#SU)Gn%ZoFSo?ev~GZ@}fb3RRlYY z3bA<5U$kt$Cxz^QO-Q!irj>d|LwH0<$Kg%(YoeQ$fv!I@*PBPWH^-AcW7a>Xq`jrn zPF}^SF+!s>rEk%_cE|r5Avp-2NyEvqsL+t8L}n*?h$a=FwDz5*0&1eXe)%oXoW7bq znEGsN|QpUB;@d&Bwf;2c*~?DOv?SB@&j&g%T)`c#)9pJe1`j`JEKLBZJY z%{6Zo{9_7YBx-^}M=|tB|ke z3w!DklHQ46MWIzZ&g0M8|E@Rr6Xw4mBR-m~ z_eQ!MTi(ZtZP;4l*)>hUZw@?}do<_CrC+hRPfhMx%EEGKNPl4rbdT_2UojNeU*akk z*@-)@gliw}MDqk{?r~KZ6Vr*Rnq599ZRL@%wdX22Yzk|qb=Xhfh zSKk|%UmL2;wY-HtAx$QvrD=)mtg?cVuZmx@#QyS#-WfKQUSSQd* zV?O+1R`2k&%atptvYR3eP4Y*~li(U|Vp{e?3xkr?g&ZHLh=|Ov8k%DzqOjCjjP0sB zx<2h0wV37}7SkA*NiN@a(Z-Z(a`76>kG8iTh{HKNgDIl-iR|@6Ac_Od%g@aIr;GfZ zK-}Uyhh~kG2{lB!)3m2c!_oTDf!3Jw(q9wZkGkuD)X8;yuv%{q{6LU zFM^Lk?uGOSfxf(P3_vqW{R0i=+0hfuMOWndvWvBznt{=BWXP5-Z$XY-xc&p)IZ`2 z2;Unm-v@?xs%`Swtw4%w%cS$l9yGp<+LQ*#$|t8lSvZ$6m9j7CYA1{hw1ZV71q2(( z(!e_`Y+Q6{l=1G3*97YIB%zjMnm<;d0z`&=Hl47DtPKPzo zxhDF3{EeYCs0+b&Iw76Ewd6`D;tsA-U}Jz@3-+|%!Vb7^z<@{ZE5eO^B6`wNLKmMOHSCaw3W`dzKi ze#Oj3Xz;Y3HG8SWzimy6nF71hRU(GoVrR73sNqqAG+Cz^ zb)&)1dAVEM>K~G!QWZCIoh@2JHmFBDilKKpFDYbQFy_LBilrHT{p=$;(nA3(>$vw? zW86W>BoU)0M$$}3Xkz~UnD>7Q_*fZ!67wf`M8a+Y88!eWfrX<-_U`WFyQCzMuJk_% zm~1#QhU5XV?q2X7dl#~Z)-O2q*bxcLQ?L=Be5Gei5?gwl^N=MSWBF&IB-(@ACs-Kc=*~Mc7Zx1b*Y;l=0^r7sEV*FK8N3UlNaD5+qf(PlWdgm zhx9~d$!vc$@;ybg_}1CaSS$z^o=7aA9~)vCW4r6jL?Z2V2eKBJe-5HOhwsc(L!ULF zUB=5+`La@hRPf8ah&KCx&uHbtBa9?;SJ!(EkNiZm)U8~VR zrSx#Hh@e$^s=8PFQr!5{3tZJPo+M6x!(yXVW=Ce3J~6bVJ&Pzpc6 z!lZgGpggtUnf?(>@K&?1%c8s1dxK%^Wq#csV$YN>R%39gsTT({B8c3bL1=g>%xVY? z7HWv46D9jIVpqWSuamul%s6K2rn2JyLnyI`_bTuHVBxJpi8j5UMw9>*h*C3rVqx%J z9TXgpIpu#m#{UtJuST9JkNKY|ru+G=kbX%#rIIR_VIimZTqzk&mSntu>xiSG1fzKN z@uca=$qXLX9LeFD39{QYrxx^db5Qv=#tN)xKD7bnJNPM6U`C)OpYk8mEZ?K){cbA9M26zvDW&iHvDRCM6uMRZRN;cq<-VYCZ&8i>>LH%}Ya1mb z1)1QIY#BwLZcwuR8J7>Z^0b~sKpI@1*VE21mHA6~8gV`%NusWX9E?96o-1c@O%V3AiT%FXW~!VviU4;}+=f2V z_XzDYvV*G2{i4syv`b58>NU)b{)E8-QWZPQrTw8SHR@|--NH9U*wYlwq^N-6yKS)Z z;uQ-b&krk_dXZhy`!AZLciQIIeNdqO38skmx6rx@sidvCLaYa;O-rlI^WPWuU3Z&9 z8tMt36z9i&e7L(I$@V{bhA+_9?Q>*k-0B{R2Z${qFCMx)S}*3Lu92HeklqO5^>vYg zo_JA>w`$j1{`rY!arK#l;SosYoxD)=Ddh#-0YUpI-B`&hl?OwW7&W%VbadvI#a~eE z0pP8Z^Io(dSmMTg~EfP1uP0LZHL>!(PtEUOJ>qPRd((s`^3A>+r{bN})j zAA0}8zU1B^X_BY0(^!1)`Gg=VCbn#!T%#L=XAxuew`uy5481Wrc64bwNGGf#iA?mf z1+8aM8HC^VRUFyhy5$rLi@i6{F8*3wHhF<_#oOqJ)W&LkbI*&<)qmf~&s#=iQpE7@ z$&E&QAL0w9$1%uCH0^wbVsOIAUgT0Ab9);_ceU0#=v;&m`Br}gFZm=w>+ljhy?Pe2 z@_w9uuQ6Xu`nW>x-im!XqA#=cs|GsQ(Q>ktb8=j0wM9x@_pz}iUJy)umLOQa=>nP= z%h57F`7sQAuJGNCI`ccrh*6Cvo>FSYDl9wol6>ldE*5F9$5rK+ zdXK40pC=i(sXx*6-_!B#yqo3Yc(55NGxH&K?e;pV$z!O9W-5h*=0ntB>l^sPgtGRQ z{F-(#j|=aJ@QZxOPw0Ts6U}Cg^+0!+?L|XNetd!8M`k-blpdE9R`}1+)+D@Fz(WTuCBm+X8H}vwL1&H)G!_W7ki{<^-kpf z+Y;wly&}VpZzlR@>cP3tSx3CJy#;`JQMPV3v$+h zvc*WY1+VAkE$6*NWT}C$weiY&8n$yenPLG@%B#tzLrxyD0C0>YXMbgu*i?I<*nd2{ z6>FmEmwr#>S~~B&OPBO2C(3wWF|$IfyNyN7%37FOi_GKztsT>gHq!mL%vu3=*r&Qt zw4FTjHw}aBb6PsHuns6a9l(C>3>)aQ9k8CmMu))-2a4bK{osx;-r!bDhz%o%av`_= zEnOxA5KvetJ?Wa;5CeF@X5vPyJ?m}gq3{Q+fK)Gj7}GUw1jY*%wgRj-w+%_g0#p?? zA0t_M40lAnD!X1_qF|}QEWCOPV~9UDein}CsB~QFEv!Mh;Xn7NXds;C+F*f|u%Cbh zH~{gNH~qgkiSOEN6;O@<$(JZ`1VkZzi~0^vCsM!1>SKk(*%N_;}32J6xD`Xl(tdotOU^nC2sEjxW+(d)Aipp?O>SPtLN!71sz3F$rkrHUqB^w(!Za@rCH`zMwemM*6rW^NR+Dx%I-B!U z;21#y{T2e`*C)YEZ$D};capnU%@z7C6{U-B3##YbiT;GK36>?grK7#Q%Yst9K*7_KO zhWw6-ArkrAx@1QzsuoWHj3R5UpkoNKUlyMu$d zH4B3O>ZUjS*O)%P8b;~ET;{Fp5`I$5%KGqn z!j1Jw)56lmMYzj$dINiR4Z*k{6W2Rg{TmyHm5#nufob)*r$1}_EXDV|KL zl{>8wL4vOp3wNba{%a%o)mgva^%K&HJ7LlqhgM&H$zJxE9TTEfi53k3C&C!4Za`kH z(k#PTbcxtE;T38Yq&0c#>A4MhTG|s6A7`7xY+m;H7Ht=A}YTHua zvl3Up1B*i_a#ZHU!?#@b$`ASzlK^hWF4mAt=m02X>OJaB3{O$!paL%Ot6Pa=)iDcj z>u9`<0hQsZA|LlG#RLa|0i{^~VO4IZg&ip&0R?2waiPa}ol4`c$Eg=jM7J8}J+g8K zESqoi@&uchav`EM^^M9{R^-k@o61N|_*iC$wOIA`fJ{p+uaiEc%3k_Bt`s6wMdnCb zbfIW=zfNsgq~x+%x=lcULt~07Ac@xVgBh4h`xf*9Df2&93zP5|mU%6{Y<3oMDtMUq z+;kV{^-9!cYKq6hdlQ;g%20EnY4f(0l;Fi16&1&i(tDb?&k)dBLtPD=c2z?y9j&mmG?MH^ z-|$y}mM`Xca(*>2o-S6g#2~ZI1clG}-Q;K8=*spND7$s*6vR7Y!-mNk*WvGwN;fCs z85FCg`&PRCLe;``^YTr|S%f~G>U{_{;e>*Z9FgZoHl~_%kJ3&-6_twU7AVWC=zpC3 zx0B`T4z}OE6&8ntOe|f<`kCVlQ09ztp$ z?h6(}-c9Y&#v=KOMN_Y2)Cda=k%0rqkaLt588yTU0pLMqPCrQX=z1waeX!U& z%trjJkOp9phh-_C7d~>6?4%*X!?O3)4(Ttbl^kWCHkp|@UCfUd9`$s7KZITmepYe& z5GsO63iiyJE3)Y$ne}E=V1XF_gA2U#IaWBS*F|}93@)$o%PxXn$NaM zUx0!ynxzsxW105%wn%UPg_TLS|7ZYmA1@`2u}+W0d_8WLL6Xob%CNo}l6))pYYV3y zXD6}Lm-iRs(9BKt^YuSe{Zsp7v6vHDT{S->NLNGZf}mYR6R@<-tp;fLT@y4&CFWz+ z&F!tGQHSf}J!5dt(Ri6ycYoWpbbksz6lSu^XR*8Ji)Gpt;I+}D=_;!{QLBG>)-9%f zwW?7%*vK-(osfbo9JmcKNJHIU9V3tjnL{Rk@_c-lbLI7VTxK<|y?IL(N=pLe3kH%= z0hJfjy%SV%fFzkYTHYf&5#WgRLGHd4yH+uspqAp@kL6Z5^S3C@`d+GcSlW#6>&ff4 zKdhW@#rcV1-v0Zs!fVFd?elDKydC!KUrnLch}vHIrQ{O3bo6)yzXu3Km;)%khvzO* zk?iT;MixiF3-@jl22>uRv>GNxfD6^{%AIVc?ZkUpfsnf+qsf;RE<`>+Z=NVTotY2Cyh7Fn1R zXP6|{Vm&^H728jbiKQORgGM(gQ5bFb)+;ev7;6!JX*XYOyDLUlmqC^^+`Ri`?6sdY zPUC<0ORvo?k+hauTT`T@IwDoqS#SHFBK9&1U5UKjV0_3VAOjAA+CUpxkKF~Z&I?jN z%E=Y*(*%gGK*Z5uowz)Ub~S~?y$t{+V<3@6Vv6o-bv;VGcOtF*Pz_n}=6FhMpm3p5 z26vmDr=VCmQx$mP5_-UjPA^C;o~2au|C|T+=Jn%*MF#^$cPpZ_F3ox0f0h=aoTXvG zrI?wt0lt@4>IFU6Ji)G+jsYmE)fO*ck_}$;9S9Bl{BJ)?US20I$zNiC{ZCPA;WGyZ zgUR25k!?w`=t5I1;oVT7z9KL8^GHqiyOJtD$dubi(*?2<(BZOT6J8FZkInv&&9PD|2p|m$#$2y*RbL zcoErQ(+aWO)!7ek9UL;Q4znu=cFg9$2s0Yg&XL5Yv{z*dEISV+1~?wg(m@;S_kY}90RM{QKJHq?-2Mi=ZNzqWr732h-j$PVA!~3wJaFEbKn@)7b|>Gh zX_xRv7PpuXy>+`66#u^M>Zf$A=|RIQ^8z6m-#N1CEZY!E(C1SSc6ND)|-yLzc zrablX04S}I`iVW^p>A|7B8Dk>I#{-Fza&cUf5I*4b@U>aBoo}_v2B-&;eOizqW8P9 zT9CM7S?R%j!-h~1_Eo~^Fd02~2!HvH@qqE?)c8z2%k?Hp+L?}b10Euk|8=%Br*b)l7 zQ~>%8l=uq%kU}K;P8xD8vaFe(46qL2!e*{|`iIiODG!zC0>O!PXkQ^UVF)QB`?kWHy#cHwS7ZR8w{< zO#<7P(*fy6Euliw#-^a%g%1ObEh)h1my!Z*&Wg(b^ylu3s9=WHWK7ukVmWO?ObRk? z9D~C-Jq%tih@HS0k=+PZzj9_U#AF%*Y9m6MF~*#YH_4L0%09nNPd_O;D-l>?JBS+N z4{;rYeG451=*a2f7*bSFeY7f?mcUCU$Q!D&a5^Q^0t3)S^rGP`^jVJc$Pt46p$JC2cKT5whqU{hwtG%naRIVWG`&= znlH1lLiEf@9V@@#%y{N}VJ5#96@9}YXr}PS|9D^X7@0bKWPbGH0C}a9b(-qJ;=&gX z%HElJRdO*p%6X9iWqCy9ORsSNk$cVJb*+iGjwd2ofDp?Dq-6_hNFhQ=M6Fn|-r5jp zMDjq9QcDk9X;oZ@8^_YrDe3OE>EKY#ZF8=4SF2+=Im!1beQQc1j96 zn0GTj9ypGkL+T!MmuzQMR4wsG@&wMrqf)L!;{K6xrklMPPzRbtiF!|5ti?yL(x=Ab zdn=S-DxAaZ6=LR&mY+DRjI2MjGEK}Wm?M;rQLkZw#ZLDZ z0(^(TyfMIOMd2o71b2@BuB<65d5uo}HQ&?p&}>!hmIw#urGMm2dsJzI{-g@P&jo#y_1=UyPqvV}Q%uOObcZOH5WiDAJbRv{Wl~S_y9D3H`MWb76=r1{(^Gb1o$=lf~mike77Dz-s=NP$xXEEQ++y(lZX-zOK?TOXmFCK0Vx zdy=`}>t~f>Zfu1q%y;e3_vIB%QFI34Okedj(0U}mJ3d9#E)2MIWks$2Z085;kfIN3N%D%qFJV`Nq^RgyS)9zww!Kr#}wx>u^S0 zDi$1i*zRU`gdtpjEt|gxMbInoj$pn8u#E64>rVRn?T{GxW8ln3MyVy@E@^EJ^Yx}9 zPPtYxNnE$~xJ|)rly)qJOGkaXULk?&uqHQ2{2%B>xdrqd$&CNy1-)b-eJiKvhJTeOI=eL9;#!h z@U~=C{H#y(cm=w1cz<(NmS^E)hh>G9RWOk|P*52axp2DRwX$gvWEs;gQlZM0k!4HT{fXlR)lNZs1Jz?kf)^3&`di3|-Q)aMqv#3gd-zAt z7k;zBIL_6cKsyFvz!g=Ula|u7$luIFPDNFtt3BVoO_7am^X{$bx=i-N=+N+bT3S-h zScn*;;t6U#^yz)e4NH%pnfU#>=xcjOJuU*2e;M{* zhYxwWMu)8hHasSgy}T`>39&oS5?_w!=@laGb;W?6PMGgNxjd~(J$3}i2PTxVp=8c) z9}B8%MvxKzq6b5asg!V1Ym;t}lB^}gM^Xw~3Gj>-sy2#_MAHWj$3Vh@fJ3>lWKQAd% zObBFUU_cGsQGBK$PS=b9`&kLy?UA}vGJ|9j>yXF(VdP&3e?e&=MJW%|5mlYt-FmUa zE_PB`?u3Yu-aR28c(?kTkI=$6afbndlJfr=>Lmh+Pcf*UO7MIlrW-J71+=o79P)E{ zE68C3uuSK3Eb{>wr$<>u#9io!vC@s#e9vM13mj-K(U>0E#;#?dx2~9-yrS!+*>Fslo5*8^N#Cn}a?lwLwi^kUlMacY!} z%=Co;id|VnZR^{*&5bHV9`Me1sI z%Am*kf`W=X&bwDg8!a(3NU&~;w^dr#r?aXW^S*W``*aUln`fH&^)6x%i91vhQ2*vd z#mA4atM9d^TO~f^X|ez%NQuRJIb8*!CEBQ<_r8AIUH4A6IR!tkE3>OvCNT3$O54{2 z!cKta7){Z(0I|JT0WN3$zfNET3lF@YJ^NiS=SLzIC%tfaa*Bsd`RLU(a?D8x^ zZ65?w&EW{;$g0fB!T-F3mm#I4b7iTivp%T6?6qJa9^|J z@b7I|wF)qzSYYC5F#{MGq2+a0d=~T`xgmVAox?3A;C<(uduvhcCXu@4X1f(rc>Zqz z`tZ!+zU%r7fn{bjQ~DO=G^ZIM7np7c%?f0tm3VJ8Gwx-Kp1*s%UW;XG>(jERCjF}x z#vCoT`BZd!#LUhOX$kQB>F9a*GmBmDbc^~e8?0i?i8dIeN_>SMmY6i0~ z04eMsLqIUwrfLb+06v-zYA~Ep%%n=4d?!Wj!Vml_INZx*~hO`gLDCrm^p+d`}X#f6OizGG);C zRswdn_T4_mhkRx(XK;(%v~LMQRrlC-?Xh>nFMca?@vmj!?7?W^X{>5R{kUnOyRT!N z$b2fEy`ZKd9G_dCd?Dc6Af)o@6E}H+mDCzhYPSzkf`S=~w$A^E21$OWpm-;{cR6+O#`vEV;s0IPS$0ebRzg zRetlI?b*IK$YH=`*3#62PC19uJ0t3jBBuBxWW*weYIgrqIAx)vlN97!@4j1G_Nf7D zxLXz|w=C{vbDEJgLD**AGUi`#p-g;B0$Oi&Wb9T=lpe7DC;0Gx_*fa{jbBCWf1>Pt z6@WTCu3#a@h@2~eJ2U4gJ26Tz5_Jb(&0Xw*7?y-}Lo}>Mc`L`onxr(T9TW00qdC@dGPtsFtr@ zmFS#=;YR~t7NaKu4|p%|qAnV0{VELNg))`y3O|Wlob-KToMqtVt0D}YdinaCWAscc zB0Vg#zL&iVfpOaWD=NW+@4*3)HzYFwaG+o>G4MG{p9JwU83r7hnZ)8ur+l}m?97m(0?m!JGTAu>k%yO#;)}Nzb1`WT+1YI}VWC~OqMV%n&WfIlnPp9N z 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�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 ~cZnw#EA&Sw@aH z!VMOd3w5~of{Bvvk7Vd5nL(jXj@v`2_A{><7|Dw(aL&XPumx2!RR#PK@w?H$#;blG zz25K@=_dIe`t})(-Cd3P*QNhGx-KLMKqbbaep$WZI64lVUdWvSa+vTgQ0aRRAwcIx z^swN6M(;l1ZP4|JdU-lAin##NnZ}p=jG9Xa&)3nzG=8I2C~f;_X6)TP8FHAS;ls7R zd-MHYhPo-LRt3O9%6r6lTV362=+@gnzhG&S>;(pVEYN0y#<7B&&LC=_rcP~5$!$rO}qHE1}EDZHENmgCYD%nNGA-Tc+&Zo~%yX-ng-@O|NGAq|-Kr8P0yM=y{{WM9jseVyEXfMwJLSblAZq9F6m<$rRn~=Q2$iKjj~X` zb=*;SDni#*Qg-QlzQ0b}5!Y;|PFvFtaxv%U>H8!Dq}{ZC@r|tCYtb)Wdzr3r;Sa(M zdIz&ID-+O!;iB7r-IHqISw>ykEqe`G9m6JLFUZs!U2QlFL0izy)*w<@fpjk*yay=%-UUOK z?y3&KJiZkz%5BAG952dh4c)5*bUQiWL6FlDW=3kGEHG+Sqd%pKFpkFgWjS&(kBMs) zRPsaapEAidLvl8n)6NqaXUm){h?VL`EI3rpqdL$r5`sU?1Lo1x?pGmO4ka#Z-*+yG z>wZ4#Gz&pCuazOcQ-$(!lP3y@s{G7$|3r7Vu}V4&Pit}!qx)uAqG?3YQ^8C!pVW4I z^~@b)QPQO~1~@f|fd1^%-ns)(7AH@~Omted9O$isuLnSBd@62U5L`NX2ut9qj{N-Z zh6SzY@Vr0a6Jv%3XVew#M2z0r@XI1_0LonbakS?Uj;pyI2L3^%u2l$*hGXL$FFM|iSSQe8<(o}YZ5?YqYgBvXf z9W3CG8#&0*EX$|QeQ<1^NF7vlS+R?fCZ_+&CcZN~R>KQF$EgZpUb&)#wsnPJFCeRd z!#Wj^rTWRxs3>sGTtS0Peky5BWtvk}GogZbmS4wjMv1tke})=MXN-17OQVL|x_o6! zsp;ms6~&mb-OHh>->s>OdTKT%$}(DITok7K8~kdOi58UZvU}l+DA&6J#W#7%f0kJe zy;EOyT&K7fWGmPtUiUmdtn=D>Naa({PrQwX;+yNv4qFxTA{l=ir9sWVQJt*V339U| zjq9XzUxRbS?M#n^WkpQV7{#OyIMe6+=33QHE>vz8`usX0J+iH|EH=%ZGEO27-CjFg zE!8j+Si=qu!0vb&l&vcTPqigtiw%QB-VS9XB$oRQA8R6_4?! zzfhKDyX&ha5$6Kn<2oO!zC8eaymtezzDFK@a{71OVX@%0CdlsuM~yjkYs*E+k|T9; z4Y!QtDC!Dx_^5`5KkErCjJXF}x{LiRN?l}Iuk?l7@0~(zeuiypeCvHS9=ED2-Y@h3GyhiWeRsKu|78NR|15)0y8);*!vpiS9Ro2! z$+a1{S^T`|aZwNU?M-mPb6Zj0A7O2XoHwq0##h)6o=bRbV7WpGxinH}W_n*hDD$=eO0OibFF~8uG zkKn()VwfNRsPzq3943-s9HrRHz&mUMu8SDQu!42$bGVSpxLoA-#hc}RC0p4{|FqFj^?i35OuaPHqtC(>P|MQl~zqpzQ*hFlS8LVU;$J>0yRyL6TL>%6% zi+LX!TW0ttlKhvDS)^)Zz~NFg2wBj0ZoD(f$T4+JQt$$UmY6xsgbla=!QEHbo_Mw0 zM#wvdeAOuM@cV|xNj(p)?vnohCO^aIwLg?u&rH_nLkZ)ZbD$L~eFG!aj6oJL4n_~y zzAA?EM+5ZnEcpPmrgy8taMA74tNE!{19KjH0!R@7~Uor~)QN28#pM@zSkA4;dnmSuenA z4|cNn&Ab6Maa|QA^$6_%fU|$&LGw&`Qe@`2|2|0vS6E|b(9?>HPS;s`KzHdU7@$|L z>D2G=AFzo*(8V7JrJ1p5O0;m&!9ztlp z-h^7|r`Deee}EffLg9Ol1wCoF$R?q}g|@|LUm#d!T^1Nf`z1P}J-W@b8Q9q20u zSEZ6I6M9f^w6NLPu2GYEyJ^yFFY#;NGqJqV@gRw}qIafxm0yGl8M!8mwqzK4$kZUh zgoQtH%Qs%L${0vD*N7 zr@l}2EHkyCk95Nm25j6#3Z98?ef99{Ov8q}CWDP=>MV#iG3H|L;{9$*qFnz)YV-d+{##bBpptM_j$pxn9y%#ff+H*w$|GtxdAZJGO9O= z@ZtNw?wfK(fX;zUBnfwi_VLAnUMkEznF8l5$5}y)?sE2w!C$Oud9#quI?2;`dvjxx zh<0?1%Z|j-+%1|){YDQbDbbgS7`%YX?A!!uGq42H9+}~?HAn?WOaK(93K-V_|G}FE ztC+ACbvrcXp-VZbbL?-V$Sg?b6Hx6{PF(I6E-_Vj{F{h1mowDq^v~8i^59;ccs;eY zH)s&n3zC=%hGRKe-M%Q*Ces?tPjr7D(YKEC_;b?9R6_(W8caAR8y?_dNdWK6hOT^s z^8?Y(T+3D#UD$~?Sm~}?QNvv7ab5T!JL3V{gMWnDqYL5D^%-J;#^p*ECOO_QSRfLx zl?wVlGpOOsi|5;Ea>{pSy9t|W`2Ab$L%$e6)K@jP_c6WzwuKu^rLP~Ir+}&m*?)J4 zdA}kquS=BCZqnOWFGG)$auWyaKo{F*!2DqU#BLWFIE zp97`I7ADpUvDcB!XN!Jcv$S=L>q0W6z1qSX&>3Bv8-4X41&jh%8}zSAS!o>TdQ-H_ zxWXUkOP1g0%nkC*oyNFo(5oFC0m#xgBVDfLw2|PD!EscH!~9hx8@MpDhp|lF8X(Q` z&YuQ>OTUBmyKcx{*uiD-nN!Hm4Pq`fJle1;)qh<|dEF;^XKj=)?`xQ0RG%sQDXv`Q zMxKs@sPx#wxCJKCJ0?U7z)7v(LuYYi7K$YoK)bneZHj zGZ?;i6yNYrX3_goQsQLDlRQ^uu54zH-np{C{0hi^9C z^c(lku3o+--5yDAZj-%M&+}8UTKeZy7r4b$bP6nJ6-L+! zS&Wh4C2fI_>=(q?R-X00kISq1zYorRa5VWk0A;@~uo)R4)zlKgRLHQ;@9V;ZF&Tgo z2!Bt5c9t;AjYTOaiT4=cOyZphXwdm!(giI1KFL8Hv-D<2xBiOnUBI7xUZ&dNB|a>###GzBWY z>JC2z2z5NxFR@k}Oxb7&0qDCR>@)ONXl4FwIk#43PuC2%PGmo}grlQhms zBg^hWmzx4>T4~?5cw9nmy+hNcJ*0?ATzLDcAgNVfV)s3qP^c!byYrR#rx>xcqMI1+id={l8Hx52Krzh4djyRxU&fZl?zZ%@bk3{7a>u|?c*7%b-9 za|!&)K`=M^(7J+)eA%0ai>xt0tnX*f@&=Dz!g;@yjbzkPkZAZQs=C;C&I>x@H7Rok z=U+xqt@h;P!C1i1ETV*_K{^Rz|NpE+I{Lqxx08YRsCeozlv0;iAB2;MPPd>jQO`mE z(I50us9#08=LyggL-cMUmQ+U&S=P`VVUGlaAUJ>-iHWPM|At`$@(+iGGpp>qfdE() zlNf&15tUuWb{>Mel4Q8@XCnXzpA;iqSBHFT1P$K3`|U9=%8+ZuhJc7A3&I{TR86N3 zGhz!oT3#9z+oF+@=(_3RIXh_axqyp6r5C6Q#EDdfpltxq@BK;SFqU2Bh6^f5ZQOk|#C`Q>OcN>a@EieVgj-cXE9Qqt_H1DbrI(RV@fc_5UA4+)H2VEtz z)GK1T9}1>7gc-RQlta3r|1_$?t-wEG2+dsvuq^Bz)ooSW$Me>g4+8YSc5T!eQ zt(iR|?OR-%153WPPI*x)?A7NPM(bB;E}(0l%M9pbMibM9rUNgou!{NUiZ*Wd5hK=n zNzu=53VQY69?sCcpB*6uI`95Vb(l43^=)aPQB%(7+&k6HH9Q<$i39P$N#AEtA7QsS_sdv^;^ZVl5~R_>6b?Z^ zf)1G>Fkg7p58-!8xQFDTAs$DD7k;mElxtEOX^s^L2U87Srt=o###W~179Dv3d#3u! z`=Fj_P{EtOSh*>P;DN#O?aIF#-v4cl0+TF}TOz}B8ngP%eQfU>>mM>3cHkzXSp^%q zRcrdk+`X0EAFqlz^vF8#JFk%>Oy0YoOY5I;@)}#EwJ52Vn8DX>7XZxr=CrTsh@uY+ zXD(jbl?}f^G5;J__WXfWQf4=yLu=>^bfr^ydbUGy^-9-qyE&fUZT<(x3!5f$TI&Qv5+@rjjR z-RYmiaI#Q2i-sGHEv_9PW^C;5TX@7{t!SVZ!yIshc^3WRo#kA2; zv5Vqd4$J*<|I!~0FE5Mb^28}BrJRBm&r69f?Qw*TM0vRgpux5Uv0I4os8e(JY8i*PJ{y3uRHN1sdzB)L*Q%P7CR=fPI+MOpm~GDsIz9!BUM*l zM*!qzR!YiQ&s?D|FF+LNslzcz=Qu^{#@^0#gV&*~m3%|FF2FO@Ua%IE-EX_Er`qk8(tMOWy-mvUMlZ=h5yq8q^c5V9ZNp#fzo}EP+m`{ zmck{|xBWmjnUiHS~Ml^J<9vTL?j5{CrhNXC3m(=Dn#I0!tvXtRO=y6N@HAa{S|| zP~tI1TVqx)IIzzK08{L>{#Or^Q5X2I*OmIgfzZ`fIPAwXR#Bf5h)z{MV=qa${Wi7& zZ7KNEw~7aOxoS>?v;;>nN>aB*sV>%u#)!OoR5=#0|DH;j(>i-v!AC~HWwIW0-!PmQ z22j12y)44ybwmPz=vEu_w~4tDemsp+8g~XnW?oGx6zd(52)OnAH!kuCDC<&~hE^?{ z3IkEub*ZrpJ7IkmHI;Y*V!+l@RU?*lTbk@zqQ}GMVE)rKIVS8tqxkO2GSklcL0fFZ zaaW6~vXhwjaL_J&pH_OhebHkNC3^xv3ZNHWpriL($U-|Hs=juL4$HL-ZB3~Bx6lBI z>-DU79)728M0T@K@A7>{+uqpW_reUf)>ULLPtqNh!faz*Z`&rH*LePXlQ4{IOt3|F zz2B+|p9(C$Hv_$p!NK~9VYulbqY%(HvF(d5Ge>V|wlLkhMVXFf*awZ&(P@do?$>>k6?D!97r0A?dkdN0Ho)3EXeZ|hB$#g<1)5p&~Jr`?@ zFa|M0j|s5^q|3_OcRJb|_r{n0Fo^nZ&QfGehFdK1qsZ;q= z00T8ii`(N3gV_{Necq!W#TxvtEH~5!d*FZG9s9t;!Aqk*t%!qZtXEtq@GQ^yN()(f z;Tb@_s$&~x@B(i_ZPx-5>Hl!`5hEAbe;>uck8G&Eg;n_5DFqb755T!Lj0&62MDDLr zu8^X(Tw7?PTeBjeDW>Pi>r#Rgj6wsM(fp5fLYDql9P=GVC)RPLuD5DW91{$@c?^4% zG2(e;jW=r*l$XwBgfLn(T&m&1K5_WV^suI&Ztu?M`lTH|9dB^$TCdUo@Zj9zJVXt{ zdA>H%Lk;(Py0W>qxl5e*>8_BhNFL;J+pUZQ+MCgJO+q&PJRQEa}Jabf~zWo+})>sJ++ zLx@*7j`!V%FdbdFVE}5L&w^5Z{1eu{-?zYeTAvw56U*blDNUz%WGX*H2VF2z?p8wa z8aL;Ev;IGl&N{Bi_kH{K#^@p49a4gH3T$)>2r5Xoq)14^=xz`RX(^Qw=@=k_bVpIWlJl@CohLm=zhs$L1p(xFfTH6L^%sx79@Ev>Iq0QKU zeY;9*A*;>E;LuJ6C1PZSRun%uu%AYB=NR9oND@pVQDVdX{f<+f!_V+rnd%IYAv9t@ z$W6?VbT}C_ZzKSDlgu;1(9pn$0IUTyZ;jsCMc;4{WBkW}#*G z^dHirya8HAT0^`(f6A^J5u`woIiBR)ShN-usQ;)~vNU}{|xDbXH1#W%_$ZP#VG z^hrVE=phr8$3O3f2py`To?Fv7A!zDz1&sQ`1$5LYORYzqa^Z{=B&btBF|y~LW7~)m zV!#WZ#VOf|QJ8;Uip~*V^gK&|;^AlLE@tQWJ+zn9u;_LBv%NV+i~i2&yuoST%5qzFMTcqQrYohKt&!MiMam zIRkLK4hPJrIFfuw_O1v&m zYT~HPnW4vpiy=LGw898bLis9MZ91AfB1`#^n$I(@0r-Ck;M&PcHj$T-V{~Zd?C*_b-=r`~j%ap+8KVtCkne*i z!mJ8>dQ~~$BJ2B>Py_{f=j{IN0|NN=C-o9x+34b%2Pj|EaVc}Sa~FC^Q`Z0KssnoG zN!DO1vh}xgfVt;cM=N8ic2YGYrU|bu%D<27L@ET@b6tQMoXoGs*n2$-;YSsHyTF)i zh10qdVJ=4s&`Y;O2j~~lf_OOPcgt*!Q5syGjdU;L%`s7dYajy~GQ|)#$&Rlgq}|A~ zKe)%v%;l6kUM36lvBIgJ<(oe+BK>2p@kOr(O<%e!Po7xA!kHzd4kO>rD^^=J`2Mu2 zb}=P)3TB;~tKSL2{^v%H{PX-CVH1Em=LRTEyEjEY1zk`y*R2rhe>S%b+X|}wWIo7? zXsxB~rLGo3Q5}(@gsV;glR@v0qZkTCDe_-gB*8KtFUCrX z+TUMbaLv5m-tvc=JA(`6i?f6Qaa2r|lUHlF>-7*EwhrF1(uznJkf1!p8Pict2s;e` zgyD_%;1&meYLWrQX>90YkvxQB?+>7Q>a>{nhNPmGCL*Hu|SwVGE^+ zTsEkIcJAK_#h=!wmH@&?3|lnj&Q1qTR_AuYrvHWc+#NW8cuYSw{I7@PexMt&Y=ao@ z8W$=Ul0+WcyEE}$uyC4!l+$vqPKUyWTWX}B-_6`Xn(NsQ7Q-ihT_B-P>JlOfJ60$C zT1DHak<_#WXdaQCF-xW=sbl#KHs&Z`EK4hdmg;&Z^Mg-b{P=+F^d)upeT*(T%XbGal%4&SRs{@Gu=gLteO1 z5R?BQ{e6HKdL7#zGPSeQ#D51<5@eE;TY}#Qp3*56>G0P{@>zaZjQ2=X3f!ffU0R&BVQ4l76r(d}n$oV=QPUxj!Ec#1l`Nn)kn2v$6Qlc&kjdc`$^6ED-#~6XZ2DnT z8re1QPhU>b;snAUMBY6U{q3RLor+2w8T6xL8-PiEKM-bUr2 zuEb;{gIw;}(BP&nG;p(1)nr8EU7K}22%m=Xdy-aMq!S`LCmE3`6U}IN$~&qe$ooSN zG{RuW>Uh#Bj^27R&5T~<5&I<)U9VhU(2Dz3bRQm#%JJA8DK~7Fc#}s78=MnSbmQ?q zK#Y*687l`fj`PD~kvHfhf2IqNtd7{*5Ty6pLXf6d9lgDfeA3NC=|t3*a~3w$94oku z=BCnf;_qC^_|+;FBHv7XL4||#eNU5DXp$b{FPODis&tHbXC>C7Fb}xsEN!WgAE*cr zSrw|o3!Kfn^@ufJMiySmLnoTLFU0UzKz&q-^GhZt#}^3Au1rjlI7xLOyl}r^bL)VC zbpbi3fz$_G^K6hw6Z6|6ai+O-=8!^t&;(Hl6wE13AS+RFDUJT476lgv4Fe@hkN^UZ z3xQ!EZ~^(>@RdM^yTnfJg0dtT@hYGec}kc6=EQA@I^flQg7TmuW7+p__TeQAOw)B|5Ez%;N?tfMym)}D94lbpoCd&?Ni zcsU}hke>WnaS8^^ZTB=jRQ9ssN+Y}yZuE0RF$(50pIJglp*|G72rU^yAkSh`+v2SE zj}0HiWADWjGuHvPq%l~boE~8F2^0Z`fkT9Iub9G8DN!GZ*J1cFk?ox%uz|1H+L7rS zr;O;_t({uht)|HmmjA31i#P7K#t1Y}z!r$^FoUh7A!6fN5w1Nc{fp-UvL8K9v|vBB z>Ag+X0nPCt6?BIK*!2B#q+Mq;BCW(goch3c4eQci_zcKpD%|wTx|ZE-y2KGd1al8c zbXEasYn`Z?@>x;dzG}_{(I8V6p%-n0f3{!6;7gg8l!iT8z=&AKHDFJ}Qa_6vQ^T!0 znQ%j>NLms0=%4j$v3>=q{i6kGeH{y_{rM@c8gR>(0pX8tR6<92t36E#Y5hL-!L0Qt zch5y^GbrJ+Sh<>;-hvrS0jIDrsgamVdS+#09DCq_R_;Sftk8`7quk!)56{!$zTXS< zW~#a(4|U~DW-KI{wkIpAV^`-z?(R_AKrs_U)bKG13Q;gG10|aHItL15;3M-LNbBPG zZSEOv05n%*@BT!6bD>3Fl`wMg{oxSnNZhnex$>0kE~Y#F>r3=c{(^1FMXOW!c?;|L zAIo1#%{0e~x^GnHe5I0^7|H&%q=-tatAzqi(f>PU{Y8j!KWcp6S?6r1n)b!dCO(M~ zNau70C>%kOYa7jWRV*1--haXhJMn*Y>ps%6H?TYrtQwfz4M=XUQ-tUygn_{4+;jg) zo{|w`{!4$+3VL!PN0cr1pd>2e9Q$nZVxmQ=$yS*+woOSUS24c0k4`HOtMdp?HNJ`0 zbrC30B6SFeX69cKeq@V0d7V3e-N2oy=BI{{;e+)j*aI1yLCet_{TKG%=`MHLoWnQ1 z)gO9Vs2c3)lPAc}MiKIlNSnNhHLJEO5glC?|I6AaYc}z`r?mtqLBjJX5x-4xPiZ3V zGrAORTRYCHri>Gb$Sm}wO6l6p&S;oE`OlWxCSsPP_LJU(c*zW2ukvU&A#W<%*)fhD zNFnb1j!hs<5kKFX|9Yd_9Ske`b2eNEA$m8#R$)E?P#ZG8-=I4IEaGL(~p=k9RAEq8qZ$pY>@X8O9mN?^c;y-~jy$*aN z5gh@1qk1b4G!f48rA~CNPD43DO1XIUfoF>OjOdp&q47f(iF#%q?E=bkYt?`uEuU|h zO!6jMQ~CVN2%>EnTwG$3ZzGcyNmwu(LyV|UU}DvSNw{v0MZYo5Z^hX z8(E1$b?0)f7N$|8mL*3>^8%W-5K~&*a~lh%bi`+&^Qwm{T~Kk@m!RVr{tkuCt56j^ zN2CcLcOJkOC;2GR$Fw7T7ln6E2xXfTCQ@eq-@LOnA^yzCw@|+ts+0*r*(5eqgfaWISTk8M%J)VQUTc|r5?I3gFMqnab zN%PwDUNFI9E~Qjo;#KwPeqFow+2M=|__?o(CBcc5*H6oQk)`S<3wDxRI7XiHwtS37 z98X08FWWDV6L}wxbLth3CAGMvBQ>%wb7#fyO-Lvo+f~SL$z;D@mFhc)@9G|n8Q#NU zQSdN_S1|1NnFY=374w*quK*}PAIKnskK?OrAnDx+yy^khds@5zGstcmQA=C)|G@X^ zS8Xf^XS|n~LT*RUR5Ivs?aw;p;o1&@%TryO@=EukFROnyjugo!yhD1!x;)u27G1f0 zPB3z&+rsS;4FpNU8Gis0NH5=dxwwc2o8PsUxIpaS*JPrwOVh6PrqG@T;w5;EOo2bu{V$gih=5hI9Fv%y0;Zb*>-Js%fbO&dr zVi)|+nWag@hD2?28e8pTxOtTyr(;?R1BVY(q1$h$y8K#Adtx9s4=Os(;_v06gsn z8rth4a-0YnENGgnD7Y~iknp=38|A#ORme|)^kaXv(5;)IFK1e#J*h;eb zv+Mg#TAtb|c{~Ca(}e8rcn`&r)>_BKkhb>C{0t7@DYmhq{D5w)TOm);l~FxA_2^0~ zDMl6RA-)!@LmhzTPs{kYlDCZpp^w1-hV6U*{lh41bhqwf?^Ryr(N-m9$jDLtPHI>*2eJEyj9(#N9aNCTbco?oF9f{&` z+7tL?yA0wTlc*^ew{kQJk&Hh`gw)Cd{WV@K#HWD$#LJU=!12LXK(D}xL_N<e5{y9I$<=Cm$d$K2 z?n8S*gMu^C$eSPSP7rt4!ill-Ey_1Y8O@$!GF*;PIJMGQyLrFr{z@kzXCFPV36o8{ zWBT@j9)p^`f}g>2;%@N9`W85-OUq-Uv6fs7^sLxcZ>HYN82ER>-f&3J2N^ipUVDxx z9SRY@x9j}PjD{2TNHB##jBno=_AgZlSUWltOSu+y5LpM^Su+Gu`(F^jb_~Ay9?m$1 zoS*N(M&r}svX^{pc738a!=BMp`!sRN$PwehH>$9?9Jj{L07uBT$;8;EPrm#MAN%T! zeQIHOfaF@SJRh}pCY3B6E-?<=^7#c=v!x4c{;UO=DJarx64b_n&>?tPt1J$-K+6Ul z?NRgHwK%7-eLr!#O|ptVKknObzun33Tpyp|-II6&<6HxAg!+QjZHI8Mz=(R&m+lusGXCZ;{2qAHTXvUH%C}@I;gW9HZm}+>5 zn3u|t;CDJPg(O(0f`x_|-0AoRF-E{)TGa$3@_)3uSMrI5^3P`;ogI-1p@;z+UhWdZ zRJ5@Jns54__Z%!2S!`v{!|UO!o57eK4AiGga2vfrD(C&r+L>zd*o%gHPk8Q8^;R`C z*LInAYE+6J_@Kf<98aqXS>#W`;sE{KML6MZp=sp1-IXSvat&BiSR^_SMKjAX#P{xlEUk3H%{5 zY)9|I4G^xbOgI8%w8j9jOKaGEU=C>(L261sII06{lsO83Vs98A4XUk+`uIoH>lx|- z{W8q&w*8+-)W^stT`>W@XIwA;N@!f5z$dv;T3B+t0|bb}cwE39@d1}icCrxxw!9(M zT0wsCzV%N&-%$5wy(5>wMUmX8KyE#5U6&N9oX~YF2T4Tu{kx6r9w0~9TKVu}IN{Ha;UkJX0g2lA@|l%yEl%4J z*r(Q|!w@vp?I#gr?=RA7WGHRGr!v|I_DTECw~1Fz>o6~>FCKV0Xcy}`AMz>u5=jOi z;ew#*wxxNX!77uB8^vOZb4?!6FzBZJ9qu&?1?$!NBTc-a=W;j7Sv`1?XDysIvNkjE z4mfaKfzt^>9cB&Lz+ z2Csj9jAO*)2m!XhLG(85N{Q_cr)rNN{95MuCSp{LRcx=lu+7!t2} zAFdr}Jn3C}kE8L1UK|~UZDirGGtZ+Bw(POTU(yT^+9FP>zZrzpQhp9Zm+pz$O}WPx z{Em(mu!8s!768rIJxsan_Ab>CK84(~0TN+S91M`fk5^)k$Ke#oB`6_E2t`EKpkGjX z7`|Kuw>Z)(KlLNx)y(D)HHiQnQ-6)|?QN%R_DxGb){ERv2!34pUX*W!Xu$d%33sd} zyvUPP3amhZS$~v!Y|(KU_~+l5$&kUxB-ved-9P^P$g~-Z3ycx)Wz%1f;Z!9p&mtK# z2^HHDefV^+=6LgBe^cl4%HnGeEV<#!C?tE#$&0dcDet*3(zNXdL*OL}6C7xIyMd7# z_ARYUIJcPNFx)FBi4Uuj&{^w6V(Y~=u@NJu@LmvYwmv*9<*U@{-ujnZzS~0B=FH(z zRgqFQWienpq#ymaoUb3rR|FX$;@2_24>luy>FvV-yB{-qNo{XuGe75|K*o^=nx3sx ze&S1GScQW`l4JgvY)#f+J~G$ZPG0ADd2dLYu9z~50(9jT@>0yubEcLVm9Xx-tg0y} zD5+oMM8uQx*AR0OraS1ONZbom^2@o1asA{svhld<{7Jt|hD36&j=pPK*87&F-rlOY}E<3yeDD@BAoR8|1pYD9Zwf=`)EW8G&oC|wFBj3&qwG!Doa zfV>L*Ck|knv2C=TFqARIo$Z3|yaeXR-Soqr?he5`f|N3AoOOgywD zNGBR&oKbfIa!5__mPN7+a5^i+RfZV6{FVnCmUmj8e4Awpcfp<)%Ar@=sW4}6bf_ay z);|aq37t|CIpK^TenB!0bX78d0}mm?<+xW+D)E0rW=$LYXz9_+vwPqDD;Q7iEq;k% z$*abNYGh!fHD(^6#uV;N2+ee&#=__=miS)Z(R{x`zQ0rIzjaAgsXHJ?zV{=z0M!)_ z2BiM?#BTdviPuWPj;!}2qMPDrgdrYB zIzGoFu^4dhhDN1lEyzqqKq8$0V9y;oc&_#g$7s%odbQUlK|zA|`Fn}i|FuTm2ay%y zO8~!pBeRJOmrkWjI1eOlv)&S;tDZ!Vm=VCKzCfmYBZ_sn5l*CNHObc>dq79E%%~cw zy|vX5{q3hPWBuhQTyM2|?)) zqR4Ll#)Lm6UwCT$b-gqGYvaYPhI{_nU;WLy@cKY@K6p}Y13Hq~v}M}J0xR4JEIu2@ zt>8KkYIxLp^=RW?(BvKT^UdzD&qi7f!{tRwJVt{&{qnSdcBY8EJn(m1_5O`s5Qa4$ zWK)I3t0T6lzoYm$L2kn=1GMp@m>Zt<#MV;9Vs?x&uq=Y4)`o|x&U-RDF4-Tf=!>yOJ6TB#~E6! z#o&{R+-;8KwF>#)9rm=ZT3{Z~`L{CqY_E&;2CV&RU`Gc#{0P8)c9UobiGa;3un6V> z3U#o>FGS352d9HLscxC@r|er~DNz|wgvVwPpV?|4XSCvOh$jgQMB}n?>KK{tCu#vrW&HE;8&tuZ7`<_fLvxtOeXSes$_)VFjSQc=I z)CK!M?;MB&d6grEAzOTxe%}lz(r%~XtKBnq7zV29b@Rg(Z1WbZ=4!sVoUn`sHTIVJ zfWIm5z`tMaSi)Mcy;&7ky`jBbd|_!pPLQObqkRIn``UzvBv2WjI`oyMk^wlsavg3XPd=a5$3Vk z@d&HfD?)S9IsV4S$J}?p(w})-v90YUf>6QA{EPhcaZA9?9hY?Ne=>X9mc=_2>?*d~ zMxrP5``&wN#b7MtpM~YucgnDvHe{Igwpg|Ui>k|aqwGp{PS$5lPaYi-jm!kxh-FW2 zIYRzAGD7|`@|nmh)wp*#TSWw!F)6ptKQxfzI!v77=5Ku|&d&B+og}H1Ju`GP5EgkW z{)|LZp3UPy)(|>CGiQ+~UE0H7^KeL=8da~2vYsT7P0)!969Y;9H3ZSUdOiS|NEB3u zV6z-%P4v^AnzI|}JQ8{0gv1|*wyAl2-WLbK65u`ZJ}R!VefHH{!}Uz;JCjSGv}yb6 zfN+9vGR)Vl=Zzo^GvHeK@M1>NOeD#@=3M@nG&sN%Y2Q!{#LD6ulBD?x6^mCx8j90B7L_13B}~vOm-6l|8;A~?S5=0fzp@d z=~2xv!4y%EQ=@`FPit`rM`YD#I4vbjBO_9kMAF`-34}bUX9mj1CAr}e)RK5Mf3`Zb zPl|@MJ*wV+AfvURhQ~r)`hm{5A}lxz^?(@)T?xE5w_3EMtN-k!l7O1PM~XdBY%Bk` z$D!!b5fX-5Qb!`MH}K=Cm%G=}e;)P3TwlHtbUBn41C(Nop@@&ek7dP+@K0hm!c?hk z)Fhz1zez58Eqk47vGjZX3_#`)jQBSE!L1tsBB3myoOfMmkceXU*%Ssh^T}L(e8R3+ zOCx30dB0ZRu2~3JgSUZ(Hw+gXS@l9Kj&YVWDDs()K1L}&wkIxC6^nOxgM~>pfEvz% z1qZEXFi(%eN3AT+{acRXc018&yS?WIFPE_P&6K}eS<$-9M|_J_ei32w%FAIVBI=(z zmjD|H6dzTAW*Fi+;<&VB|B+X72$7_6xD$Nu)T?R6le4!=7KpQqAm_T=w_(Dq(YBkz~wAg`u#rs52vr`N-0>oo^5u z1p9jM>s8=gKK@As&8C=lzcLsL=#4Da#crsiAO$Jgx7vCVFY z#K^-OH)+h;`QB`|MflLGhcdY$!KLN{d0(8zQ_L?Kuph(r#j%RnHj42!FfUc5NG<4b zkJ}8Yk%t7g`|182Zc{wWM)e_hVJDH;=Hyi=_I;2T+4i_)%!MvD<$uNzT1AvLrwxF} z1dpKxLL9=INT{JF4sdmQ*a?0^yAmM66_b@c;)(b*FGQJvSA8vK!Y0Q7^z*gli@%-K zEu!Cho{*O&ADOkE)g&Jo==vB48pGv_QfKb=Y_luaE3jDAfZYhk-pbbAnTw!Ri#qFg zwr$w&%{z&szwE`AX{e&$D@KzG$?*E$x35v`^|&ruhLMyHRR1S$VW{_`UrtYbl*pB* z=F*Mh3-}T1j@TKrQ@o|OWD`a(9IjJ##cVY#rPLYGc*F1UT$QE&W6(E>cf(<_L2KDj zb+e!*G!w5M%e#EVQgNa%ePr&RYq=3|k7Z%qkp3QKi$$KH-}@t9shu`_u<`qK;ok=D zCgl9j(VpwqZuJ*d@8s;AYIa_v9Xk{xiysxwo(EPUDu!RG5fBV4xP5sCaGKvyFw#WY zSi^omszn}B;FZV<<3D=AJY{_hfAK_N;$S1C9u{;@m35rIAzy5DJ^u0!NsU~3Q8vFZ z;rF8}u@)gzBQ6a(_eVtN~1CvO<2cQr^ftW$WJ; ze$pUZIJR+nB}tMe_~jCA-4(8`wWIOUlhZ#5*Dx8^nf}HLC(+geN#jiz7i{5!k4PJ; zUUz938F#GrsCnS;x14K!EeeYDRSdN@`0u$*J-HmpmZ;_YjAqFl1%<2;wQ(#F-R6%Z zXzRQ**NF1|MbPbCs7Z3oN@7P zSo=oSr90LxljbN5Ao1x_Gn1Q*Q;ym$q3Be^An z_E-O)DH)5XVFW?0(xR#3tOy)cMO)95wKm! z@Q{zL8wgKI4aMT=EBHpwV%h^XhOdY*d&f>D%vZfTnoQ?zHj|XVqi2cqroQlmMFlw9nUa0~j%EE~YJB+(-F7uqGjo z;jtR!Pn@i&u^!?R#j|Mt!`@F9r_?BRJ3Qo12ucqq0vk$z0@$gT2^AoSVCGl-f2Ek2{*f6HdNx zkKn{!%;V^rXWZ{>-Ur{QGAw_U3_H3@yZB6vGJv{AMO5vdy;6B%^MDHPh3$!(Msgap z?v6)aSNns;Ff+;91!u08_B{+FeaxhDVv0%Xf~p8Ig!j+=W6S%hB?#yBp$*sl3>W`ARt z)6LHOoY03A$l8}`Z@1_jYsZ#;`8bfW1)oe8nZ>v~JvCdeail(hwbKFQgz=NvBR2|P z*Lm%G9EjudDC|EBiKFt~C5^wet070_Iu?VkY8QH+StSi!3`r#uoqv}~)p~~XE4ix@ zjJSvryes~89I?Sy0504_s)Bvvod;B92p3s4uNW6fDxrlTdZ91i&+#~F&XBzZz5mVI zElg(Qx_Ek$c4wY_vq3RIYNDKN*8)KwRj9(0$A-U*g*+W)^*Qd@8Ox`2!z`_>DSEBn zT^;}U`p)qgP{cKrpB~?K;uZamkgEEIONfIgtf0$L2QCe$w0h>40kuBjM#kB3Ma!v!ir-ng5g$`(U^iy+JnpSxe$b zE$lld%?y3npH04oNu|$rbh^jWJBOGl~l|bGV zh3N5p8+PtPPWZaSw6yE578j8by{-+V4#t&whbN8wzqz)QsD|*WwVpK=&gWEn%v3Og z<{nD0R-D=FIUzYC!|xM>NrQREK;sDTi#P|9{o^W$$6MmNH>39xQPu1HyD|7{qTHcwM*Q3#DN|3JNQg zDGn~Y|LTXu4lYzc>lo*Ekxkktm#)dSDg2FM#MfCO3b3v@2z8|JYJq#54TKNv>f*n7YDdHQND#jK)xd^U)9mX+$7qAWdAV^OJ?mrbW{7KAEEQKhwh60L$ zQ8rxMa2Zfod}Ty$x)4Hx?Ak0vF~t4r=emFPvW3SblE;h=gY0TSV~elie8z#{wh1Dy zpY)6X*6&2*n$--*as%|F0bZ2##VP5zE=yr1NL1Y&;-!Ij#*P>)QN&n%kO}VxP{WAH z9RcLAE969v)aZpGaMzC8LAgnQ3^)!y0hnTY5{~S{<67Q_3sgQ)#X7%a+x~k4xd|qk zV7%oUfDK?c@h?0&!^=LLKd64iUGi#6`s#F_$yfkuM|4oWbNEva5XOV!rU`&+>%leU zpAMz_T3DjXd~#cVR|2?{0pYL&&_!Ur^gs}g<5*4%_y!pcr2EgsV8;KJHk;2i%S{t~=IrJGO!z$qS3Z-e?`~Jtsggk(9)Os;ier z0K)-r%drxlDj<8;`_-T?+^1C>V0z@QyOL=YY3|wmx$olYZrj`EpE!L7ECh||%!PWq za73GZdrP9``8BBw?5gD#Px48%BAl#0P)Ou$-)ydhg+VFR-8iA4-4CAfGlk>DBtop0hS{@Om zj9BX=2$tYoq`58eKK$93G$hzr`x?d!{Nz4P#34%)S+{Zqy$$H1+W*1r*CdN`aq*JFD?f1^%$?FDp#Jtd|iK~ zXpA7ed#$W64-vv9Bo1Mo`=+KX>@bW=08=;Vw&a#^yx&jB^@PF0$M3IFUa@pHf=Ue7 zWwn2-X@*IhwXD1{9Xq;gziRdNAW(WpE|tFUb7H6E(ect|2bMiB?~(mAlyEQ**B*#F z@bcX~a0a|0lqP_9@-(=bji^cs0mmGSBEtNZ;uk%F!y2YW0GSC5krvQ(1<_QPdHow! zl6;%>&0SJPZ$w;x7RMRiam{`;76SVXGv zJI`CjA)-uwV;0&RzT=|W3T+)WZp4NvNBxhsTn=jqaP{YJ9+8;e-DTc%$GHa``iFeq zBbxn;ZD8-obs0e)XmrOr?jP0@$wYDEWNrzzW|B*t zihcw~+CdCEN4#G+NPOh?AT0nnS1bOYKz#xTLdC$@0ygwMC?R#a0x-_P6^q0N`+zTL z5(Vh_vUQLKX;00}c523@h)h@`YbEiqPxqXSa+G)abYQABdi4WNaHb?Of(fwU5@07( zQM)zrSC~F~tYd=OB1@0DX|}^M=^kYP@S@p*$8^C@SzTg3a+q^vV$@!$EU7}5%aQ5i zEZYUuY{8ftB|#!2*a>%JQP9~LWF*SfcGsJ_Dc$kX$J4x&@S@;Y49p+s&qYyiqn^$% zLvCN;4qv)%GUv^e+IX9X0>`Y^PfE4CX)+TxXtR(;wc-R0XkhXoa;grm>oD|dN*rzW z7o(C`y5wUC#!Ek(ZHQe4B#DQ-JZfV^nt|LQ!+M|&%Bg=f&mN#=6JCJC_2Bz=&PD~w z*2%yc1jPw1WQ4CUwbuso^@R_$-XCe~_}8|f?6IYJ-f>(adq*N}cg2~~hk=22duM@n zQx0hV(1Tu;tS^AWryl8}jaqul7EUu4LhM5UNAPYpW(0UAbg>v94ZI>{GFbw=KOJWM z!Q0*0v;)61qn5#~kqDmBqY{H=dzxCD`1fHe?s$W+X(cykY-T={aMZcXjAr;F#SPWb z33iHXpUs})>h+MLwS^$`%Dr3KuUMT3oT&gv7C3peKn4W5*AjD_)L&uF#N?XfN|Kz3 z88AKH<}=t!A~3w~-NAEV2-lrQ4J*X=ct}xxCOJKyzGHSQ)g3WswG=i-KK!jp3Erby z=gi)WABdeB9W52W(tP$?`5f-+6iG)DNiX*l5UCz<6$?cV&{xL_5gy!CJRhu|+L(X8m@GxiUR@ia5gZ~l?&Y}a}U*X!ya_xW^Jp!T`*dF^-FsE zZld!jV5;S{-&h*=-2+NyH7`n2-Cw2#s0~Clf`B%PiKte)nT>ibxvk_`u}}?iYH9&YN>S%lheY$3NazxA&drHS&l0)`wm^ ztl3g{YZDu!~S7uw;!2j5G2Y$r1oe2$F{=WnizlmNA{ zA;fs;jQTjmX*lF%P4p0`&lsY=XPPPjvVGyHdid}1+>sgY@m~H`36Bj35;94S$nUoh zBOZ~MwH^JT;`oL@JQJ#woEW>);dip$K-oH(?^oD%ox1eJ=|jDF<84%r#?B6(KUpa< z|C&!s73nK4S4YwnxShP>depUrF+SS~3~36}AA?2Xuh>YtYu+0Op5W#m?XIrW-ekjk zG6vtOL$5o;87|XibMGI%Qj9H|8{o$!M((hMlDdf`jt2`Iai)}hlT4%n-#h``TJr0% zDVtG!&B__E{FavECRhN)mNgQi>0S1r80dxeoYRj>F*A1h`dKB%EED+}%c3p=6AeMy z!zv#qR*D=iy=R94Ml!_7EacO{3R+W>xBxJ4!?|={kCr2GwL8cP_qz>}NQ1_Pv;|d5 z`a`H_d8P3lm(BQ+Jmm$4ZwWYp4Og7x%M*~r`oP<~Ek>iSEe|u|pr((r=1xGJP;L|_ zq)@5^ikI4weYVw@Scd4GuXAuAfPctA6_@l1Mom1}su+H&y`!;jN1zoNNjhRfvFjYA zOdZi4i9O5Ty%^i!d6qO$y8JB&@`kEaP7v+<`Wc{WU7Vg(bljkzLJ^+&?Js3y*jsUk z>o=OI4`bjp1smf&+jgF5&vqe?N4j|7Z!vA$F?QGXUJi;WVB<8tx zz3~lMB&HQL7J?@=zhIQ5Blf<L&>dk>T8pKg5f!VV=N2ktm42 zva#ZOe}yfXwFANJy*+!Z+l!4{v-|n2cL>Bqunx}1j_#Xlyv7L}1V~J8J`fxcLJ;`* zs+gnqy>j^2AS7J~@DmcFl08-OW^sfxyJOj2#G$`p!JjMM9=f}S#>O7KDzDtbTYUej zyyIHm#D^2t#gSO2?_mXfifPgH>70N;8COn=8P2i%Ph2`sjdO7Uf*mIivT6Wzzc(mr z-vX9z?zs{mDWR!F8BoM@)ThxcUIgyrKc$WZm?52ea_%f9vYqJ;Kcb=#y`Qarf^1Z6 z4ug(+{rvr{)p`#L$NhcU+e2JP$qC>4tysq9=z`ZtNNdshAr7R!`U@zSm&<5oYH3DX z3n(J|SspaA65GD7c*xM-k-_lz7sGPQxAez6F}@sfrpAVZnUTvs(*dkgFMoA&lQDVIStTs8ak}u z8T)1d;ZK)6X$lA^y6#hd%q6s0`(qeQ_!gNzm)7swQ9P=24|Xi67ME?4s+63_Yl;t~DsX;O0e9g0idF@1F)WkC4V-Po0UIknK-P0(Fx&f^^ry7S4$Y z7y$#qYG=?pJ3EKfuxCw1dWhF}2#18E7zr5thdqJaI{%WjXQ>K4;vv$WY8IvpP5M7x zeiq8v1DSsuG0e}1b+>PViir*l+Rk=doSd7+1s`?X%#QERhdHFA-Tk!jc~3*BpeUUz zl$EfL2W>CfVYlBLi6U?7)F&^L2tJxpB@gJ@`ugx+RU>B#wkWTQIj{zDqEH_?kDu-I zUR|3P1iSieZeXbJFx{F55l*8HLF>dBIVh>gBe-V6Xqc}`-=W&o)EZu`3YS>tk1fY! zR@i3qrWh8KhQDj3c1&1Z|ByZQ+JOaad7l7y?>6Z71Tk4F>FR-#-t>SE-ujLTA#gpA zBh9dMM0hI6EuStFNW4#@o6JMq{XErTT0Uw_g+pHSeoGkE6)hAe0<+nUF=Y;|{ zJOX&|Jm3vM$aG+&Piz?et-Izem`g}FHAL0-$5Nlbky?|)D4@9%q6_NFpDWBU5J zzCZ6@e!gu9!kIBZ^&=m=@zi7S!3Njj&N5iA9LcExs>!~1o1amVc=<6bjst5+uOAsM zP4!JLKoh4nr{F6xmt2SDDVEgj+0V6x>f-s6{kkt$Gln=WYfK|0s^yBTP3M^8KcR2F zlb9pD&06kBxPEJ3I63tDFSglgKY;!6HaCMdJig@2A2)nxrBpq8ocC5#!c`^|R>bGU zV>%YVP}P8&-%D=;lqI9z)hWY`mrm?!7mqVn4}m4Cp!4<5dfOfKWma?z3V#GWy6nuB*^-bKAoEO82#$!7Nta>sl=Lu}Y7!cHF!-jYB zlHjEt^hUoA-s`M;gj>f7|LcC)S2+}Q zn;1sPz7~t-2VZL?QnJRAAHyvIssN=2N@di4A*SNY$?rN$KboM)=KyPwZJG7Xa6JBb&|9fM`7YRVZG-Nj?aBPrqUMx{Fz?#l z#+!KfT}oYsQZ(`>5dV4OpYAnU#X@Pq<;zi*vnKp;ih@Yb>xBSil@GH|o^Q5v9?9*V zcGWxNNqa2os0N@nvMbDuUg|3s4T5z;SVqJp;{8914t@XO1xN#nL@1ZrHvitrHsJlG zj^tZ9E+t8ZXR2Muu#cZDD#6*m5M+;=r{&p`hOkxN_&CNy0JpdG2u=m?#eMw6dDEos zyZ3DY0px5;z03l{#BDouov9r~JGtE_X;_vSu*}t-(ihLp2jS~cA0Pj77Y&ncf&$0WO19h ziQuw2Q>h;qqXx!)d#|G{Bn@W3#1Yq-ahG{7TNO#FASaeTxIEDS$caUd=)};^JD7m3 zwQ4lsZ$=IlX<&jT&n+LJr`~{U!RdBt+qZ`c$#M@;Qy_ z+`7yMRSLMi#O*k&D0(_bJo~s@{CzMk@WgL=R&HyQ42gL6M4YSuFvL` z>dE*L5g6l~1463OIav0=m?3YHT$31X8LtD`r2z}cpG00#c;|P%cs44Twk3?9tic<( zb7*Atk0l8G(`P_L5%xieq57HYGa74Nbgu@|prQD$Jd02)MlaEf=8JURs%EBrocNNZ%BQ<9(w*4Qn9o zVY|jJQyEB81>ZUmyo|*a=CZ_7fh2t$yx=Q3G8FOZAO*+I){Gau_l;sn&O@G$^G=Np zVtbP0gOZEQ7lyyw3rSvHCO3MHCCj60sN3V7%kI6uRo#BIQLDUt0mqF39%mJQGNL7J zlc;{r+RENeaQ#?ck=*>R)MBC)({snZ1tV>w>D$+|_s?669KxXZ-!+ZWZ~0HDM7a1c z(1=TA(}7DQl{nNM#gTc}nz0DAF^0#5jdOU3fgP5Sf87D_UoR<$-73H!!cgr9NoEE? zuuzPc{Rn`Qp&0>J0s^UuUsqCq5NA}w({8;ftfl1X7`4ZF>kP(H3>=`PJ&L-T7FRjx zDfkb3HIUV^*L~ZuNMSRrBs^fTm_~-sZV(wNM1%zvTHDh*SK|zRdWh{XFb4CA6x|99 z(b?b7FrMV|4cma*Z<)WW4kf#g;^C{gX4-o?x5EFnH?ku$*YNoX_>Xs8nbM7*`*|os zmjEFtn*~|0TwnMV<2m%b3UtkUPL2zn(c8TUn3T6ToyXSn+OPU!^wyj zM+y2U>!?o{-mrH>S`t3g6-Ja!f7x9NgNhN?Se%n5y{!v5a}&Jy`#%Bo30>sMPoHD6 zrqP8*H_naIkYA0ED>2B`G|9lI8hI0GoWvZOgsMTmIm*X#2lsg7wf2aTH&+GfsPhcoYX>JVBerM6>vxIW(0fAqrc@DzDZuKNE9Litk; zJfh#;a^tkezE{;^RM4GN3>?@WT@lI(`ukICf@4JNg!CFxHO93i9U8P-rmx&f^3YR5 z%cX!NH>L2$&foyRX4-gE{$ui{_N~iorEm%<*}whFb4h{uTzhe<>Y={3qct~qO~RZC zILhw?!EudAP&a$lfecrD4RR$tqhQ=6H@9k`fhdSh#heko*_<*YCn#{6e!c_ORVNOJ zkNBC+9~*fUOGb3Et~X?$sp)s0?a^zBdWA61^VFkUGw@OOPSJz9oqxqvZC=GV5oD#x zp!n|;&MbGm8n(jv?`k6SrPsgA@r4#oom*Qy)Bh&Vj5UoiG;Q8uiAI{*{jofKSnX`n zwDNa=@x^a;nt0lD$2R>k=|07evKd^UFryjIghAqRerdxMQ9(hvL#iCZ&bbm4Zq^ay z1bC(OG60WwbO;dlFj-v801G4LK~|0+&rGmrYT1ll`YSHUoI(Z zsBWu{K8U=TS6bF6yQno`n}x-$wy{-2&%&O*6izO^(1O-gvPW|YD45z+T&dKX>190C z+Ii|;;RfF^Oz&dG_Z4pXMPN(hJ4JR=ZPBW-{Oq0D4Ud7AVw_t2bNBTqD*4lz`_{>rv&;P4Cdq60Sw#> z>}Tk@pQg|H2m!)&#QE1D!lwe^-ld4%Qh}VfF_aUiSEO);081GGHY*+1%HU7$A)SX9ln#VB_HgthaA$0Ps4i;w?C7yO;nqA1H7qXqT*j z=5H$SZ)H>9o2aApx+ZEj^EPD))HZ&C+WL=VIDy1EdcK2>)A*4T|EsH|;}*V(+{EKZ ziylL26wgub3fW(^CINngizJPHH!`F5AS-4seIFb^X3QQEwPW|m`^q<-LIM5FRu%GG z@-L#Y@I@7Q40%2mlT+*Ec`u+m=XsQ7K97>Lt0+!+1_eeo1+E}J`7&}6&e7`~h9z`F znE`(NBsK)LeW3|3kqw~g4e&IC6FvAk#Ot#LOc(*!9Nch+4(~S>?AJC*Fu0VrT}lBoB^Qs^b_#6jQmjc zZ5>h1K-tTvqtCT2?>W?FJ%hTer?GO050)?XM5?hBUELSZGk6-?hEEgxpTW@B zIgA{*Kv4e}f&bGuaN-#pJb6`g;KWtgw(ry(%YyAC{x zps@H~-*M;Nfv)!lHZ~fn0W&J*j`c(;$wP{z-=)B zx~0cIujx?~c0U87Y3Gd%farcvQtURQdK~g`= zQT;GQayCFG-FI;6e~nc0Hw5y`0gVFw9Fu~$kf1J3{a5gB4sE0F=pN)HY@_?vLAtLS zLaBKO<(5HIS_kO9tdqX4Yw5d{)kxoME!g6bh~*D&hL=aAKtE>!Y+fHh3diPk;n=bv z5{u`r{-v9ndmCM->8@Aq<}$I|GHdqmst|*~zh`0&c-lA}6erJL|NDr+pO3>vf@RxD z8A_1Ue&Ej<{sZ!q(cwDQe=_vzZB_lBpI0Zt0A%|B7X_S}6`=1EUfC@mKjnDzI`sMc zJ$;1t>7V7aX>N1p-22d9>zNr`Q-Gf*=QSw{fDM3k(W$?or`$d9m++M>i-NZJ{8e#! zn)LXmB^r>Pn22f_=U+fE8wueN2=Nb)qJV~oNH_`ln@WpBMX6>P|IhHhr?(yF_wT}E z$M)guo*mfP-iZEsr#x0m$Ko0T+{4e=0Qo6q)D`7pps5zGKm91)y!x2T9>BE+?z?C1 zv#uxkA6?w0&$#8@TW`I6(H(cp^}cuR{LBaMU)-~J;hIO+uJZX-z~+R%j|U=4Iuk@HxLq#bc<>K7@+&F{H;e!*8Pz9?L_qc1Z}koU%GL8I7y%TK_tzc&>~^z{U&$ zhYtEIj?>@6K5SSXiDe7@u=3#mx^CfELt42ofPOHOC7qwazcQ7e-g*}0=94lTf!%rz z)mC~vevLGKT`oXK`x0nZayq|WV}JmhQ|m*#amo-k?VHPy^^zC@&YV|B$}CWAHVR%+kF)Z)2q7J}^i|l)UW2_{ zGXg5!)Qo@$6F}B^Xn~jjENWN00Y^FObvWoTr~O^jI5``D0KS1ho}r#3J^Kvv&D^6u zq1uLzC3Aqq;LpVcYihnBDgSH$h$&F@4yw|gR%8F8NAaZ_0D3C>7Zwcsf^35+z)w&d zKB58tsDOQr;i%Ls;GX^Bw96>Tc#QtHpFmmm(-fbQSf2fij1ku*)5dZ2_~Ng_R{9ET z71vN*NuQ04J{LP(Zzo;%+IL}h^8E8}p|bRKR1~~I-`OwGclL`Y&3pkRY0uGXK8>8@ zM_`TGhva~5Fl^~U;?`be1nAiTE<*)48-NQ0%8&rA4WLi$CvZL$+{ZHn^s)a@BeI?M zQbblh*AV!k;R0d~Xy(Dt_X+sFE9w8^8339D{@dP1WAnRo&hMh3 z{!L{9)F=a>o<6^N`urr8y@I-8&H{KIwb{?2A^SP`9a;F$D)?_nL2vKl=-zf3{X0)% zaP%y;k3E8s0~e)de?P(hfs?uc@T?|f2Cxy}Y69#&^q8do503J&PGNBO88ozyVA+bb zHw%&7T)vFu)>~%Yp0aXj(6^#O>kuDJ;2leVAJ>Njy2nX~>lYIsfz~r^bU#A(LXz$u z*@DJDwnhlTEu%tmlMGRq*{iwwhOeI)X2M`5c!kFugM(~Lkb zBZ7U5c<(9%}8xw%J9 z{(Ja}mRn}dm{H}kVg1iaGt;H_KPx#IoDsl)&ISD9!ouOV*$2VC{z!_7rr+{>N&Rmw zD?(~q48eUqcK5X6*l<6dIDP<6pFV=)Bipd8!HNDlhhzbCIc%uP%R!dO2y0>@F?Jei zi}KK0XUDVWPvZHDr_oqmDl-k-b;q5Lx}M~JbeVbgUH5f7c;Dh5JTz~~|6aGs?^i)S zNuL`c3+Rni(;I6>UP>DQVhhp}>qVJKZS=+3jHEEf=g~p7&*Op|pNDNJ{MP`ljDPmu zkor$PYZHIAVOhjay;sKmo!83Pzx7xg{MQ7;|I=$_)K51o3;VluOM`#vxh(1*eAg!Z zgYW93e+=4~_AlXHdA|tXl>5tw%{jk__9^_OA;A9Y!~ol`EFty3$%yQr8^%_;S#Cvk zY!~w5_zQR&!R2;>cuvdTMZiY@Zy|V3-7f&|NZU^^dVpYYFSQxw705eDH3Z}JIfoV4 zr|+jP?S1l`%G425Fo+Wj=O=X`*U*ma#5QClv=NLqlbVo`*o?%8O2h;gASS2)VSZNl zdPZaO#%RpHcMTTJ^Tg5x-dHk!vuN2uAFN)s6uaU`eipA+`)L;dw}m zsX%BzHtxN98Rp-=79m?R(OP>6olRHJ+4vYb>aU=^_E9*BkHZpMkNA)(LoC;;?RM4A#@O z_y7lr68FPnX&5#xPr#;?N$?_VT9r)e2CP{UOrOOW0{=5IySEQJ#DnF_$c6QIsbhN4en`DvhU6mUtK$5kn}U_o2)K zEmL5!0iX{X5Yyojz22jw$LV~Yq}P0k{`RlZ-}{U7w@gr<@pafUUxGc0+5~$}0tjc$ z3nE9(^Q7kp>Ys;Q;)}G-#sC`ynq>XONoK(dN_nILI(Eq`nhEg6gb6@UKamZS0_@}hm0Ytzfqzrqx6#=5Ej0Ch6U`jEK0;&r2WV`4PqF|S z8s1hWK+Wr@v%O5utc`g?@cyVE%QTP&sFpe5VY?) zkL|n9YX-n2N%&be-U9($^Sn0z6Z9r-Ync) zZZ5y)a@PZMmtXYv$@^s-_xeY-3H-+q?8nnRoKiojPci_~%8ntm;2`3{JJc|M@J?;~ zzg7bvk~0Ikks#_pLR7C3fqY_A58Z6j_f>R1j0EZCIQo8K=#L*%iW^V{06mt%W&y!` zN^~Dmd4H}m;8zbL!GCHv!ADq+$Qs^5-`oAjh}=f-zfGq5%jSyzbdQr0NB35V+fZT} zM5%cI>ausBHjC>7bRadd5{AG+BnMYu z%_85wCmiBB8$4b1&E>Z&x6Zz^Z+Sq>=N>Uuctl$TK6OBhso6fI7#*jfb5;54;a63u z=WGE(>mJnu&agTOSj9~EvxR?p|0ITYe(x#+K&9(5w3~X4BCM=q9Kv~)0GZ;D#HN7W zGjHnAvjSX1*NqJo%fN)8z}M5d^8)63Y#!v#k*nF?yLk1hJ}ISAgfX0F9iZ3d%!}~K z9x2#pq~ojS^XGCJ3C+8CI=~LszlpDCaliGJTO8KJgnvyocYr1%uEV}otSK^+K!?2&d;7a^c&JzE3$W2J>$cmDxSrtevvBqPYIk?{9dl;ieeV8y z7hHY#p_Okuc>lvM&b?>e)%)f?_~c!8-TTO_+wRzV`)#v#-FnOIy>9OAE$;4a_UY57 z=TCEU%X4#cOQd!*eXvn()7 z51u*WmXup&+*WYw%vq%~rq9fw=atX8bxzBS8MoBUoOx^i9kcJ>`8 z3;&IVe+%?9BGlW82%ii@`(+{AHw_V6(h#{d8_}e2-*jpdoNvvbb_T+>SP|rHg#V@l z_->4qG%fFqVes`L(Dw{O;8qjDf~*J+PD6BfJ`$pfU`nipA-Wi*gbElFD`BB^tH}wg z*@<*Z9nvf{)OH}%Y(r9FIg(5zh>6XHmsc>w3f29@YxcM;E*Je0iof^2ntT5=O-a3Fd4z2M#RKqAT}Wz@d;Uo zjmxB%OFz1~w4K)}MrR`=BnAHd3Gi6si=_)UVd1=uc<6x@2=Ft&lw1jGY7GkWdQe`v zi{7sVi|2V`^`cM_&!4+yQG|f~nx*sy9%Dmk&M-XJL`&9#$FflRp>05VVg~_#G&U@Y z$Ho1bA9em3oMPJPPZV#>11~pC9MQM!@PtK`1uvMNQ5lNDQgR;)gu3 zdT|I=Ee^)=g}(4#Z^hcBVOYH+M6xc{EDe&(iw!H{=(zzfhjzf3ei^xOqgXoM3tp>| zuz8IUn^qfXzc84CTV$HTvZTXO_ker-3*+}8+P8wvDNc+FPl{3AB?|bpx&bnafJJ2) zMER7_xopLn#bNaNAqd@Eh|-x6I(qj^t$ng*-`-qosVP<=vf3QYWM(~4m@39wV94@;@7xL@e1j2R2$g{ zc#6)AhXXuI@9kMQ(h1fxUw}P}fIsV5IJ3BTASs6)%cYpBMKJ_ew0}061so?E1xj{J zG8;i2Jy!4{>?PL->a|P&F#<@H$_!9F{sj7^1pURdU*XHJ7m>JKLhxGhnhYm!RI&-6 zrVNyf0LcpYP^s=4<8l({OF==Nk)Zm0wSUz+((7OAc#q=Su+e+Xh}$ny|FHq!3h;lB zbnu@H|9XY{>wtekoYJ3{d;;ZpPs3LJ3SAqzF19x{skWV>^xRjyMvt>zCBVN%`(Km! z;%%ibt6qL;SJOTY`3|R2b=v}*s4jkcTh#wv8?n}l+fo|lKm{w;|{^Fr2`2*?MU>co9nH8lZFWl zXhQ`CWx7GG4IuRa1nRFh0H#3yWV!D1g;K}V4FDehUsds<>h)*%C$R~@hCmA&0DABL zcGeFBN?-Q{9Q0vj>)O{`eUmGeQz5gtJE*k(G*%07;_&K@(pl1TGc_8Ee zxk%+_s`ww900jMwJ)fYl`(rfqehbaL)b99DGXdU5Lmg)Tys5_iSG_`dRT%)11@Nk5 z0n`_Lo&Fb}f)9O9tXS-Y^{WCg|G`!0YI_nreU~saatS-fE@OD#B{2Xv13-uW$(k?% zc>Ng}4xr%wQH<=rjG^6UH3Q%@{jCgRy{GTZ-v67+AG%DNd*{N_k%4x^hBqTNlHtEg z!F~dPf5HH15DA7sWdsmV8w}fENa)vKUu6MEQNRc;3dpgOV84r?UljqIh+Gh`2Z_}1r4gOOI{whRFLi$43>^+nNcE;n9g&3$;q|KVx-Jfc#tAt4iS^}_;= z+;bdS+BN~W1fdB8p*Mn42HBX}?NgwiAvm#Zua<&-W=buAKS#0ok=%7yhB@%830$y` z-*;@?&hdScIt~zoAC)uht#c`#^;&u7+zc$on} zNtpnKhzM8{5)l~~jKs(&lx3u%sk9Kqsb;!w&L!Ay6CEEO!1)8C80~IHuEm15kWj>j zhQSmYi#&@NRk_)yDar?D8f2S{sL09?6M$zDs4Fgjzqb$Z>4wj5z4g{E*OU9tEL`m8 z)~~5ze{(s~hjqKVyZfyKd69A8R~6}_ zpO>T!qAY#z^NOrtR1(Zq7mR-HEIxqR(u1h0I7~Nb$5HP%iYDiAG}azNbKOZa)g41a z?NPKeo~Uop|$NKT3U{wrS%v(y3U}h=QO(ePNK8_I0{Rf zux-aVbo3oTTlXQlIUGYn%P1VRgQOwY>xR(WzK0$^gr30@*fDki+ji3P2adv4+l&4k zXRv+r5%lgjiC%3!=-!>j&^2%v-Gd~GEnR!i(6$RroqOm;c@*_6BdBen_eihHG5=)% z0Du5VL_t(xr+@fr#~?~8x=~u$4QpCCN~oQa--NVu8%&mR1P3LqOtU$EigsaAkR36E$id4e1RXq-Dr$2tB0p)jr2TJV_+Mkfrqw2_UluI}LbOjg z{3sfOn^0ibC&Ml_(lIuWJXa-&X|Qo+46tfGnOlpiI>cU{j!mA>Z-7^!PLM zPo7@TS@AY%N?u28*&C>>RBf(~pQfe%f9bvd*Y*03ju+_Dd-&5MM#sTFGkOdK<};`) zd4bOV9n{p&IoHtpqF7T)s-yQ;|2}FP3D_ChCrMzQ)xi6Z>fW6K`vUkn+;@C}`p$2n zzKg}vA%06@eK)m5-&X4RHf{elJ?|6LG<`(J`UZG@dVB4MsIDP7KR`8I@5-vTQC|MK zWC#?~-$zRLC=$F|5x=te?Jza~&rcb6C0IYVd0YJdd@Gb!VeFgrU;y_47U{Vr>DMtltzQ&2=*cXMhA(j)sBD0)aTy}IkVN|>({>|?$NMwrr$mvcZKk%Fpx+$c z1#_5^CA1S3jy#QEU<(oh8tHqio4$W~z!?EnQW`yn$NpzUlVWTsTW^1kF4JPy>vnUw z@!~dphGUsulcgTY_!De1^fO$`doFC0bsiQW*P*yYfSjiW)Zt%;`WwN&etdm~ z0Im_hfX~GS>H7a@_S^@yt_e^6zRD=5lU{w!IN)O^w2VPa0qr>a+H3&u3=ihMqQ$?t`>s1HT~F@jGIilu4A|hfjr1^S9Vx)weR|v-v+t?BZ|;I^^B-8Y zXVJp7r`E3yd}@nl%o{=e<_{90i+_}r*7Wz~Wdr}WuJ+)+b$4AtN5@%o_nb#p_j$Ba zyS4o^T1ai}XV6Tr-`0K#?Y!Q>@g&;2PN2P$)O{QsJ;%}6cY*+&+I@#n-#U!G9R%&$ zk4x+$knh_;?O|%~WbyW61o%fuM?`%)IUYuZy$wA>2kG&{w2d^Z)W4JWIVA0E`nKUC zq@#3`M{$JWu45S7b%NGO!^bf&dWzyH^wVqejbQ&UoyX8|bZ85r1q0DMPba*bpgVPZbU`4=IGyHv% zVTdV0azY6Lw-RW3gk$-l%~-y8GuE#3$LeLi6n){pB^DupCU|cO!$yx_QXtl?37|jt zO;|8*4Hhq0kA)QHJ+MNmW6!_e1M}vt!ovI3%P@?@2q%F;JC;A}2an~kk{z&dRU+0d zjl|N2HeubeXslluiy*Hox-n?S`W4Xv^P5+j#VFXk#ssfb2`~mX!;yYL>JRXggLZ=O zwD4_G=fP`rk~~M(+NI%GvA`FL=WW8u#UZjDxFHLczz#a6Ep$u^Hm@>a6KV4*el4S{ zv(_(-#a0iq)Dz&@5(NIau0hfXWQO%2!Job`{c5F$BAZ~e%5(vhq$=Y@Q6)z<15A(7 z`W4ucuc$f!CaxE7QHBmkp}{oTmh}|D|I=_}KBcA>%zQ><&m`#2yb5Q=Q*fp~Atu3u zS@1OMIX4g+0h|rMMnK`q^yS3h{~~y*LN*s9n}CN7@HSnvugU~q1K?Ex|F_|+dJE2S zo}Q2k4N@$7OUwXgIf)}10~Jcn^0!b^^eSreUq(&gHECDpynxL3gGh@R`_ke6x}Ja5 zTS=bJ`w94eN7UH+sfgQk9p6H2%O`L)e+*~CM{v}A zh-xtcK0vkO1611HK}E$IsG@6KS^5@=vz~!DbO++R>JY!V4F(^&QQp$4i~yNQfa?Wp zgE@$efFV^IKA*H{(hcEo&9YzwR|cXHvm{% z2yh!0%IN@%m8|?KN|oH`Gag4s2+da0FYq=+PY*0=mvl;HWs%3g-rRU z(*ITOKNtOLlyU#>iJCe-&@up27C=L-W&k+Y1b9Ok09BI>fNN-`&mi2d0!{lqMf>5O zpy$-zVk3Qz7UvA3qwNxU`!8W|=OyeIyM*EWm$2&~PX%}d`;I?#gJA$yvH!%=svzLe zCnfcNc;ChG-v4d8PRo>neu0rZ2l>q@|86dS$TEG-?f1PO5#T^fc(e5UCnV5sSmJ=l zVB9VSfGKMq42eT3BY+D4Myuj~3jVp*zg<&@tWPljCYb5z5`J!YiHmH$m41VUl7jbsh)L|P=90Nu!n=|MIr zC$aiaXpk%OQGhp&`fHKaX;Ff!|Cl{vUHg97P z_D!omOzn_XOMuOU8^i6m_;C^!4!rI$7xA%prUGvBumtXX7u}$G{(q(Pp7qG;KDl0j z1u7GO0o|Xj8~3<#Rey&6_{LFL_a`8aHQ-eP1xPlhLO$|7^9;Q7aEM?qeFP<@;N+t z>Ily69YtMfu^h+O(+hz9$#OO759EZ)nkywU2vk4*f7R-1=80Q^nt>rq=vZMpnbW zW#u&gIyb-lH-*LBzbUI6K(%uO4b242oyXA8&At8HYkyiQH}?#ll-~TF!DHwn@b4G! zC(z%1Or~J!-F^f;Q*>Bq=n%TMAEfp{bPeuDQAIu4`*+j&e%j93N7_57y&pY0NIUnT zcX&Vgh7XVqYC3@ak%M&8cZlHsFzE;eMMsr(A0r*7_6d6Iq>K$6+Qmhp&d8k8CTqUj zIBp+1hx(SCD68s}o6v!s=h46YEcyn{(9J2m=iXCj?>>h1&ZB5--iMm{5jbmh!tNM` zy=IVLV*oX^!$?i9Kni`KH@1wTv30j(Dl}8OwQCTPlMQh(`3MV5g`aOcHhG3)%?e+vTD}EK9^Qz>^Veg+LmrrS z?{X|&un9}%dtu$GVEC+$6VqVT;y|oi5{xwj?jFk`B?G`jH!!xev#7M5ggyNNYBL_E z8wEBD;xwbcOdzkK*BTS%&0UQ}^EShKtr?rvCc|^30U@4+SoLs_m;_#{l12R7O{Xt!2e_KE5PhJuWMtm zWLq)CmO;$Yh(;P_W@bhW^W0%((#&X>#4rNO0^4yoZW24T1CH&Of=%1BP5RotS9*oi zT5s?DpL6HV)!4C}q|s~V|GxG8hwnM(&YXMJ`q$pOmdO4U5ds*6VM+wZ3zV} z0!1lbK~egPN(eamO_VS)2x+uU+KU7t{3%~UX~LIL7XKxbCMsk`%p%Hrz*uJP4if*n zz>NHh8$c5PvJ-EhoQQKyGTkG#Z5w_-f9pS#nds_s9N?Inp4&(gWY8xYXA38?62A-y6 z3>E^)>fS&pivX41M{&jXQN*r*((j2IprGhg{LR4OScjMgy6F?pj)i_MredzpPttfjDi4@e-nW~_M>G9 z{-Y>Nx&=eYYpAOEq1gYc>)sUyfU$3S57n*jtFnNd>;zyE{}YY)tI>T95vU>3U(-qC zp9KK!JGI;ay?W??i6el;0u~kcIGp&ei!=VeBT4@x@gK+jH@|MQ`&ZPwLVpk6Rzg7i zYib!g09XJhA>v=cVE{@1C}-sT3CeR{BzzrJdEbJELmsNf-$U)>Pf$Pob9hA7Ajqcx zbv2hogl_A)M9=0c=o@Ac;IdQ$7@W8wCH_=NKvflh$^YnyXK5MR|F6;Zm*|;2E2aNf z{N-u_X*pHczRM!t{6}%IEw)e6mfW+{Y1d}A+uly)@b#*Pzke$c{|+Spgmfbyv`GDFxE(1?_P2INMx&~I#;pe&A_XYLtzXzk~INVmuDGm8S-Cu&QUEjR3R z3B1kZe~(ur4hAR7$gpl5_oDYmCb&#GSrpJm^m&;iq!Z#lzrMY`4-?J9;TbXtE@A>N zUx17XG?9Vh=UHgr90QWUo|bVLyF0emU>%bO3!fN5H1_+))A^_1a6~4oWAk8_P^3oW z(>`4V15@bP^x5qoU{?eYeNLdqBl~>aLA9f5TkTq0vm3Pgc3#Ln=LcYd&+9q<-<13t z!y~l&W)2Zx=vcfRe?P_?4Dwx=xG`v+#RvYbIE-V#HYI z*%9SAnYcPVg8qhT6ecGiJ2o0waWTk_ih7Hd|mdXWqFnV;KY`yHAVa=?v45Lgt@!y`E4fW?80w9b0zvgLs*R;)L@Sa0W+MGO%CD3B79sYdXy`nSqXm_yZS6-> zHGy9m*;V8@L65(aQ^XAm|#&iM*lab$1AT<8H2e$G8GUjX1~CjUwd zU`K)#%^#xUa8(3f>moX)FD$nCNH~JpPB{&BZg9bljdsWl=EQ}{0g&P|3U8|tSnZ~5 zw|gVVz7Dw|oPdyX23#THPvk%BB2DwM3zG0q1c9(wnx|!nM)BNyPtI>TjVqnx>;~poDrs z%(EzoRbX*|lMI%meU(T)hY5TYMJa^TuL-0?Vd~dW!XVPmWeiJ_zbfRvl*vD#B<=+i z#N9%y|Ck#2X92*R!2g~h0)WQ=QbSLntdvMy)mthNT@4d|EhBw{8i}rMQmAUC^{wwJ zQch&N^~~R*^U6P=aq_QJX}W$@qOOWX03wwFE+@ya<)+Kb!0UAI_ElZ<8J+YQ)XO|4 zrt6~h1pZtR1Uh)Rnm07Qg_4>dpsfBaK}pRUC@TNHgas66C@g;+g=Md!$nYkPW_%eT z4sGx~V1U161N;v+B7hwMA_S=L0Cod}IkF?56Ok@v#D5`Z#NJc@_(*8mrqFj@oc=tj zn}4K8|3c7(fTs6F3=n4kR|#N}&(kf0RzjOL-9p$;JJ`9}XkBNWHw^31Tf?8V6@&DDY!chK_5&%kHCi4GHMg9wj{BtS5 zJS6~B=6wS}UbUzmdl$76KNdvi&*0!*cNFDMi0iDa>oU5IU7_dbWqLl(qHlB-#|V96 z)Q?@F=j2tf`wvYst_%5Rw*V&(>>Rj2&tZNhv&efMq0#C8vU>HJN9X+*F1E$?3EQd_ z_n&h-oDMH1B4FMPN&pD%Aan`oX9oZyAh;U=GWy@9IRIKD1i;Tza{##2&4~ak2(Sx4 zO9-gq|25El0?r3Ogg?Ng1_91B2y(4Oh-qLLpzWY-j3|>R%8S>(sV2GA{yy8 z+wotQFI#brZp{$d@3=Zg3jfb+y~BO5Z-o5pc8k_#LuJpY{%#8@UIw9 zR(%#x=)Q$EP04ZiI$0FZD*zbDf2T^sw;);9_G4j$NxcUh|HDKSUhbCDAfgP9?6b?j ze4Dv#%do}T9bUy9i0Qk8wU0gZJ0-jOeYfSymTeF9_WC6!>C^K7@H7hm+(!ijBGBD~ z-f0ujSd@p3ic*vxO(QbzfS$T4jI}q>yKgeGi0tPl#mjV2Y9jKJ6Ob7bjnv3Uq!IX7 z{_bvYv$uz@BpCF7r=t@rcJBHO@z4zO^IB|w*k)93Ss~CSIZwfwB}1T!5^UEps{oE6dPh3WMZ6}g4 z3yIA0%PQ|n$C;*nntO#I!tja9XlUz4LTWY!X+A0;9fMOBF@E-GjGbmYgNakuF?Q+( z#!uhGB#(Zbc#f7mFa7Au=c!jh!O+BW$SY_;3q2V72d|@(N78z)ptEBZ%}wV~Uv~;M z)l(=g9zb4R7ZD%&(T_7AA~YYt0U7XgkAtlh5q}G3SnP7du5Gs1zS$aEHyy#w%}&_2 z-3JGE2I3GAc6I?+Z1uw7JuC=l&;$S_2!u*?1P(diJOl@}`@?z<{V;4(E(2XOV6fYO z#e(&Z?MIwvKMEo)!QZ|DyEi(*@*q8Q(nb-Q)DOoaNl5pbLPo#|B>Rjam8P=-Pa`*& z1psypTtr^*1stXIss0ml;RGxguoxg>0Sg6;bF|C^JRf#epag;QN-UuLibF3EE)%Yz zIP4mVBd?=4>V}8_A_l}TZb@Gh&0q(?7wN(G6-E9Dg+%@pzK$Xh0Tl5sN&E_tekT8f zI41vJL}ASHNDse&7$45kuUqy1kRreU-S+{+`wXLyv$a>eu3697hW@r1iPp2xw`-R2 z9wPXCTypMbl8wH0;OD3v)X>kC@;OxZ{z#F2>Www*iFle4eTI-y9)afU^F6#w2?k0u zcu%e4+Vl*q%pHphl{`uvi2%+E5cq}gaml|4qG+Go zjB7;5e>OMrZw_A0-vyES>SnrbtrwE7g9QK<14INcSx)n{T|ZKZ1odQqeBaqkz@UAq zTZsHOyd|h?_<-edM*jh$q%qqMBj)8nZHE+ zWtwN9fSz@Ov*j($&0(C^0-VH(!;&M^e=Y;)(<)T}=E#3NeBFusyVaVw0Oo`M5dnnwvjD(ifR+%D z$iKfUJº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�V@X+Jb&^|T3F`` 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

s@+-Moi&jsvzBEFLl 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≧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

$cvKh;0PGYlw-5m5qHdSss5G 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 z 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Ν+0HExgVJShBDF2VRD&C_(+zaNop7OKua&0I&SMo=L!mWv+t-P}ztvdgQi%)rPwZaob z^S(sgPq}x(|BeJ^8wyxo#VAmtC_&IbhGA3qp==Cr#BX32X(iWrACRX641vuX@1Z7L zqg3$pp2|{4CAAf!u@qGW)@DFmu*_Z#cqus?4rp5Rp)ha&;f4h3IT1>rNfI##8etiA zvdi|-?cMW|>sTCT*h$JbVeoUKs)9NB$>8C zz|Kb(E(+m?Z@uKOd@}-XW&}sCkq&F_F*0jBRa6htM1S4V=K;2bu;Kun*TYQz%M))bGCj0rd3K|hhd?~Z)@GLXtUDzYMT zEX0^_LHb%Solk)}sHZg|nBkQ`5G8-2zWQWR;$X-IIY?rjvRuEAujxxa?47%co;6Pz zyl=}nG~9MwzHe$oZgy%!u%r8XbH;~CPcq)1>AR$)-kj7_V$>=?Db%?;Hbv3?TaeAJ1mUMFCvBsH+u2o z*UvS=H`p%Er5$g_Apt7R#~=~e7sfsrqrlX|#PYQP7c!h5fPe@Lxk5bhL(q?oI-Q6Q z=#e-#^5{h3`UsJPm#>&8Lk={ax4KY?nX0^}Py-|s$N+Q5m>%d(vjugD0Sey}QbQEj zv2NsV4he2EO2*e2-{b>d&gNw;t2T)I+qZTT;xhPe*$k!r(lL0)hhdZ?_Vlm*buAJ5 zHN6*fuZ`f!shD|KS#e&wwCuz!;k#Eu_`}ZKA@*czV74qwiXLI$Mh|{?15tl8Ki}Mk zD=T=%DV!c~B=``{0=qNA$=n+Ke6zdM^TIp2myeEL%LO^Yhmg59zPE~Qv1@fCsQ(=t zT-Z=4Q(5w?iMRR5q<4+YMtTU}t&-*qR*(DKJ%hZjcD)};fIFlot$30g&`Tmc@%Di(h~6`w#%$g0Ri%Y+Y$?4` zDgsyjR;!Xg6jkY5DUMBV0yHcp%Fe+Pe+Qwu`#yen3U4=c)|i z$IK`0gEAxOE2S)MDUAbTO?XbI3p_INJ2^zJt6TM3!r}W6>bHZZI+Rf~ix!|p794!d%FgblIpYJPk34YSsge)-A~G`P zq$1@fH8Zm?vFR7AjddMS3cqljId1w-LYG9hBRllMqWl+Kl(znSezSk5=K7 zAFzUqfXwNqQe{AsH@{!<&(A(wB;l(M>3@g3OC^@)cun0C%J45SLqK2m&|+?W3q^8d zP^f?IjcQJAZEvCUu|Aocu6_9ry7j9gbb5Ea%n)t!*I1eaMGdtNtRgAs!Ge6l z?CF={cJrYX;Bss&tyunuVH{ihl)I>F|4`MQ41`M9sT*bOkEaRBh zhi7MkkMy5P;Q1-;Ff2*U&?1vN>HniLspRlvho|xR%+As_5t5&XwiZoaJt- z?^E5Ljo#k><*9u#+~#+6ZGOIbgt&{BhF)>c<=hOzKhe zlqcv4DRpLc0P)IMcQs@=o=$?sm%z!f4-|LbWvXUfSkc^vjo8Tw$g>Q#&p^_D*}eV6 zU{KGL-7$x{V^CpOjbgO(*1B}aBje|) zA&z#xIfhGe*B*wr+``hj(q(rLq&1h33(WX4S@ScgjF|7Nv$ZsvrB>A ziB0;vgeTzyXZ8?TX#*(LV>&>Z5qf&sV1U4C1Edf~`UQ!rc&&*wI!3={b0)4~S*c>r z8=q>#BW6M^k-uBH{S%Y`Ozk$RcB3|rPb9wYUw|3a{Gbhq=Z zB#9~si4Wl#y23Cb%W_i!e`%OPdiq(9lIEEq7u$@zm#^(K&%JvYcM=yVDH5lX4!a#y zH#!bawQp}&exnb1t$OEZe6Jj*f73e@Ro;F-28tI)%L(X<>VH�Ro4?#in4e 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 z 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 jN^BM>q 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≻Vl+l!Wu-MGE#*#-wkrMw6G1ye* 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 S-g*H1XsA3=e)rHe;{O4&+5AZW literal 0 HcmV?d00001 diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.png.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.png.meta new file mode 100644 index 000000000..8305af547 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor.png.meta @@ -0,0 +1,145 @@ +fileFormatVersion: 2 +guid: 4c61e8d64ed9c3b4c9f0c834b7f9bd2b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset new file mode 100644 index 000000000..c41a40344 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6b194f808b1af6499c93410e504af42, type: 3} + m_Name: raptor_Atlas + m_EditorClassIdentifier: + atlasFile: {fileID: 4900000, guid: b219eece9997ce34681f630958223068, type: 3} + materials: + - {fileID: 2100000, guid: 501778ed9798a664b909ce819e493a6f, type: 2} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset.meta new file mode 100644 index 000000000..96a634c7a --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Atlas.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 399f83b8511d02a49bea993c1fb51e88 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat new file mode 100644 index 000000000..6223d77fb --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat @@ -0,0 +1,102 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: raptor_Material + m_Shader: {fileID: 4800000, guid: b77e51f117177954ea863bdb422344fb, type: 3} + m_ShaderKeywords: _STRAIGHT_ALPHA_INPUT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + AlphaDepth: true + IGNOREPROJECTOR: true + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 2417507d34cbd71428c9044a0ff737c3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BlendTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DiffuseRamp: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4c61e8d64ed9c3b4c9f0c834b7f9bd2b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - PixelSnap: 0 + - _AlphaClip: 0 + - _Blend: 0 + - _BlendAmount: 0 + - _Brightness: 1 + - _BumpScale: 1 + - _Cull: 0 + - _CustomRenderQueue: 0 + - _Cutoff: 0.1 + - _DstBlend: 0 + - _EmissionPower: 2 + - _EnableExternalAlpha: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _Hue: 0 + - _Metallic: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderQueue: 0 + - _RimPower: 2 + - _Saturation: 1 + - _ShadowAlphaCutoff: 0.1 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _StencilComp: 8 + - _StencilRef: 1 + - _StraightAlphaInput: 1 + - _Surface: 0 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} + - _FixedNormal: {r: 0, g: 0, b: 1, a: 1} + - _OverlayColor: {r: 0, g: 0, b: 0, a: 0} + - _RimColor: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat.meta new file mode 100644 index 000000000..cec354dd3 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/RaptorURP/raptor_Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 501778ed9798a664b909ce819e493a6f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP.meta new file mode 100644 index 000000000..ea8a9a486 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f37cdb978b3c4994e81c88510a80f8d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-emission.png b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/Spine Skeletons/StretchymanURP/stretchyman-emission.png new file mode 100644 index 0000000000000000000000000000000000000000..c43659207765b886d1efe72a39e717d48b5dc4f4 GIT binary patch literal 4831 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

s@+-Moi&jsvzBEFLl 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 + Render Pipeline Settings). + + Also check the assigned renderer asset at Player + Settings - Graphics.' +--- !u!222 &1975175691 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975175688} + m_CullTransparentMesh: 0 +--- !u!1 &2107709633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2107709637} + - component: {fileID: 2107709636} + - component: {fileID: 2107709635} + - component: {fileID: 2107709634} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2107709634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107709633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2107709635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107709633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2107709636 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107709633} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2107709637 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107709633} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 739509038} + - {fileID: 1356057900} + - {fileID: 1975175689} + - {fileID: 394849623} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/URP 3D Shaders.unity.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/URP 3D Shaders.unity.meta new file mode 100644 index 000000000..1d4e579ea --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Examples/3D/URP 3D Shaders.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bb1acf275841dd4d85e39c168d08cdf +timeCreated: 1479531945 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md new file mode 100644 index 000000000..61b10330d --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md @@ -0,0 +1,26 @@ +# Spine Runtimes License Agreement +Last updated May 1, 2019. Replaces all prior versions. + +Copyright (c) 2013-2019, Esoteric Software LLC + +Integration of the Spine Runtimes into software or otherwise creating +derivative works of the Spine Runtimes is permitted under the terms and +conditions of Section 2 of the Spine Editor License Agreement: +http://esotericsoftware.com/spine-editor-license + +Otherwise, it is permitted to integrate the Spine Runtimes into software +or otherwise create derivative works of the Spine Runtimes (collectively, +"Products"), provided that each user of the Products must obtain their own +Spine Editor license and redistribution of the Products in any form must +include this license and copyright notice. + +THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md.meta new file mode 100644 index 000000000..83a0b0ca4 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 02268a9ef61d71447823227a171b8486 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders.meta new file mode 100644 index 000000000..589a36306 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83c36606fa1072b4195e16df9d6350bd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D.meta new file mode 100644 index 000000000..0631748c7 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62005423324a854469aaec615a0aaa74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include.meta new file mode 100644 index 000000000..c20798a04 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a693acdf2b15846428ba98907cda56ce +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl new file mode 100644 index 000000000..0bdd83882 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl @@ -0,0 +1,66 @@ +#ifndef SPRITE_NORMALS_PASS_URP_INCLUDED +#define SPRITE_NORMALS_PASS_URP_INCLUDED + +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" + +#include "../Include/SpineCoreShaders/ShaderShared.cginc" +#include "../Include/SpineCoreShaders/SpriteLighting.cginc" + +struct Varyings +{ + float4 positionCS : SV_POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + float3 normalWS : TEXCOORD1; + float3 tangentWS : TEXCOORD2; + float3 bitangentWS : TEXCOORD3; +}; + +SAMPLER(sampler_BumpMap); +float4 _BumpMap_ST; + +Varyings NormalsRenderingVertex(VertexInput attributes) +{ + Varyings o = (Varyings)0; + + o.positionCS = calculateLocalPos(attributes.vertex); + o.uv = attributes.texcoord.xy; + o.color = attributes.color; + o.normalWS = TransformObjectToWorldDir(float3(0, 0, -1)); + + float3 positionWS = TransformObjectToWorld(attributes.vertex.xyz); + + float backFaceSign = 1; +#if defined(FIXED_NORMALS_BACKFACE_RENDERING) + backFaceSign = calculateBackfacingSign(positionWS.xyz); +#endif + + half3 normalWS = calculateSpriteWorldNormal(attributes, -backFaceSign); + o.normalWS.xyz = normalWS; + +#if defined(_NORMALMAP) + o.tangentWS.xyz = calculateWorldTangent(attributes.tangent); + o.bitangentWS.xyz = calculateSpriteWorldBinormal(attributes, o.normalWS.xyz, o.tangentWS.xyz, backFaceSign); +#endif + return o; +} + +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl" +half4 NormalsRenderingFragment(Varyings i) : SV_Target +{ + half4 mainTex = i.color * tex2D(_MainTex, i.uv); + +#if defined(_NORMALMAP) + half3 normalWS = calculateNormalFromBumpMap(i.uv.xy, i.tangentWS.xyz, i.bitangentWS.xyz, i.normalWS.xyz); +#else + half3 normalWS = i.normalWS.xyz; +#endif + + half3 normalVS = TransformWorldToViewDir(normalWS); + float4 normalColor; + normalColor.rgb = 0.5 * ((normalVS) + 1); + normalColor.a = mainTex.a; + return normalColor; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl.meta new file mode 100644 index 000000000..fa3c2b1fe --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-NormalsPass-URP-2D.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9057c6890fc765846aa6561463305af9 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl new file mode 100644 index 000000000..8a00a3d2f --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl @@ -0,0 +1,112 @@ +#ifndef SPRITE_STANDARD_PASS_URP_INCLUDED +#define SPRITE_STANDARD_PASS_URP_INCLUDED + +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" + +#include "../Include/SpineCoreShaders/ShaderShared.cginc" +#include "../Include/SpineCoreShaders/SpriteLighting.cginc" + +#if USE_SHAPE_LIGHT_TYPE_0 +SHAPE_LIGHT(0) +#endif + +#if USE_SHAPE_LIGHT_TYPE_1 +SHAPE_LIGHT(1) +#endif + +#if USE_SHAPE_LIGHT_TYPE_2 +SHAPE_LIGHT(2) +#endif + +#if USE_SHAPE_LIGHT_TYPE_3 +SHAPE_LIGHT(3) +#endif + +TEXTURE2D(_MaskTex); +SAMPLER(sampler_MaskTex); + +struct VertexOutputSpriteURP2D +{ + float4 pos : SV_POSITION; + fixed4 vertexColor : COLOR; + float3 texcoord : TEXCOORD0; + float2 lightingUV : TEXCOORD1; + + half3 viewDirectionWS : TEXCOORD2; + +#if defined(_NORMALMAP) + half4 normalWorld : TEXCOORD4; + half4 tangentWorld : TEXCOORD5; + half4 binormalWorld : TEXCOORD6; +#else + half3 normalWorld : TEXCOORD4; +#endif +#if defined(_RIM_LIGHTING) + float4 positionWS : TEXCOORD8; +#endif +}; + +VertexOutputSpriteURP2D CombinedShapeLightVertex(VertexInput input) +{ + VertexOutputSpriteURP2D output = (VertexOutputSpriteURP2D)0; + + UNITY_SETUP_INSTANCE_ID(input); + + output.pos = calculateLocalPos(input.vertex); + float4 clipVertex = output.pos / output.pos.w; + output.lightingUV = ComputeScreenPos(clipVertex).xy; + + output.vertexColor = calculateVertexColor(input.color); + output.texcoord = float3(calculateTextureCoord(input.texcoord), 0); + + float3 positionWS = TransformObjectToWorld(input.vertex.xyz); + + float backFaceSign = 1; +#if defined(FIXED_NORMALS_BACKFACE_RENDERING) + backFaceSign = calculateBackfacingSign(positionWS.xyz); +#endif + output.viewDirectionWS = GetCameraPositionWS() - positionWS; + +#if defined(_RIM_LIGHTING) + output.positionWS = float4(positionWS, 1); +#endif + half3 normalWS = calculateSpriteWorldNormal(input, -backFaceSign); + output.normalWorld.xyz = normalWS; + +#if defined(_RIM_LIGHTING) + #if defined(_NORMALMAP) + output.tangentWorld.xyz = calculateWorldTangent(input.tangent); + output.binormalWorld.xyz = calculateSpriteWorldBinormal(input, output.normalWorld.xyz, output.tangentWorld.xyz, backFaceSign); + #endif +#endif + return output; +} + +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/CombinedShapeLightShared.hlsl" + +half4 CombinedShapeLightFragment(VertexOutputSpriteURP2D input) : SV_Target +{ + fixed4 texureColor = calculateTexturePixel(input.texcoord.xy); + ALPHA_CLIP(texureColor, input.vertexColor) + texureColor *= input.vertexColor; + + half4 mask = SAMPLE_TEXTURE2D(_MaskTex, sampler_MaskTex, input.texcoord.xy); + half4 pixel = CombinedShapeLightShared(texureColor, mask, input.lightingUV); + +#if defined(_RIM_LIGHTING) + #if defined(_NORMALMAP) + half3 normalWS = calculateNormalFromBumpMap(input.texcoord.xy, input.tangentWorld.xyz, input.binormalWorld.xyz, input.normalWorld.xyz); + #else + half3 normalWS = input.normalWorld.xyz; + #endif + + pixel.rgb = applyRimLighting(input.positionWS.xyz, normalWS, pixel); +#endif + + APPLY_EMISSION(pixel.rgb, input.texcoord) + + COLORISE(pixel) + return pixel; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl.meta new file mode 100644 index 000000000..49bbec9cc --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9f1eb74802463764986790ef549c5bbe +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader new file mode 100644 index 000000000..472e992cb --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader @@ -0,0 +1,228 @@ +Shader "Universal Render Pipeline/2D/Spine/Skeleton Lit" { + Properties { + [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} + [NoScaleOffset] _MaskTex("Mask", 2D) = "white" {} + [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default + } + + HLSLINCLUDE + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + ENDHLSL + + SubShader { + // UniversalPipeline tag is required. If Universal render pipeline is not set in the graphics settings + // this Subshader will fail. + Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True" } + Cull Off + ZWrite Off + + Stencil { + Ref[_StencilRef] + Comp[_StencilComp] + Pass Keep + } + + Pass { + Tags { "LightMode" = "Universal2D" } + + ZWrite Off + Cull Off + Blend One OneMinusSrcAlpha + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_0 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_1 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_2 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_3 __ + + struct Attributes { + float3 positionOS : POSITION; + half4 color : COLOR; + float2 uv : TEXCOORD0; + }; + + struct Varyings { + float4 positionCS : SV_POSITION; + half4 color : COLOR0; + float2 uv : TEXCOORD0; + float2 lightingUV : TEXCOORD1; + }; + + // Spine related keywords + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma vertex CombinedShapeLightVertex + #pragma fragment CombinedShapeLightFragment + + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" + + TEXTURE2D(_MainTex); + SAMPLER(sampler_MainTex); + TEXTURE2D(_MaskTex); + SAMPLER(sampler_MaskTex); + + #if USE_SHAPE_LIGHT_TYPE_0 + SHAPE_LIGHT(0) + #endif + + #if USE_SHAPE_LIGHT_TYPE_1 + SHAPE_LIGHT(1) + #endif + + #if USE_SHAPE_LIGHT_TYPE_2 + SHAPE_LIGHT(2) + #endif + + #if USE_SHAPE_LIGHT_TYPE_3 + SHAPE_LIGHT(3) + #endif + + Varyings CombinedShapeLightVertex(Attributes v) + { + Varyings o = (Varyings)0; + + o.positionCS = TransformObjectToHClip(v.positionOS); + o.uv = v.uv; + float4 clipVertex = o.positionCS / o.positionCS.w; + o.lightingUV = ComputeScreenPos(clipVertex).xy; + o.color = v.color; + return o; + } + + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/CombinedShapeLightShared.hlsl" + + half4 CombinedShapeLightFragment(Varyings i) : SV_Target + { + half4 tex = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); + + half4 main; + #if defined(_STRAIGHT_ALPHA_INPUT) + main.rgb = tex.rgb * i.color.rgb * tex.a; + #else + main.rgb = tex.rgb * i.color.rgb; + #endif + main.a = tex.a * i.color.a; + + half4 mask = SAMPLE_TEXTURE2D(_MaskTex, sampler_MaskTex, i.uv); + return CombinedShapeLightShared(main, mask, i.lightingUV); + } + + ENDHLSL + } + + Pass + { + Tags { "LightMode" = "NormalsRendering"} + + Blend SrcAlpha OneMinusSrcAlpha + + HLSLPROGRAM + #pragma prefer_hlslcc gles + #pragma vertex NormalsRenderingVertex + #pragma fragment NormalsRenderingFragment + + struct Attributes + { + float3 positionOS : POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + float3 normalVS : TEXCOORD1; + }; + + TEXTURE2D(_MainTex); + SAMPLER(sampler_MainTex); + + Varyings NormalsRenderingVertex(Attributes attributes) + { + Varyings o = (Varyings)0; + + o.positionCS = TransformObjectToHClip(attributes.positionOS); + o.uv = attributes.uv; + o.color = attributes.color; + float3 normalWS = TransformObjectToWorldDir(float3(0, 0, -1)); + o.normalVS = TransformWorldToViewDir(normalWS); + return o; + } + + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl" + + float4 NormalsRenderingFragment(Varyings i) : SV_Target + { + float4 mainTex = i.color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); + + float4 normalColor; + normalColor.rgb = 0.5 * ((i.normalVS)+1); + normalColor.a = mainTex.a; + return normalColor; + } + ENDHLSL + } + + Pass + { + Name "Unlit" + Tags { "LightMode" = "UniversalForward" "Queue"="Transparent" "RenderType"="Transparent"} + + HLSLPROGRAM + #pragma prefer_hlslcc gles + #pragma vertex UnlitVertex + #pragma fragment UnlitFragment + + struct Attributes + { + float3 positionOS : POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float4 color : COLOR; + float2 uv : TEXCOORD0; + }; + + TEXTURE2D(_MainTex); + SAMPLER(sampler_MainTex); + float4 _MainTex_ST; + + Varyings UnlitVertex(Attributes attributes) + { + Varyings o = (Varyings)0; + + o.positionCS = TransformObjectToHClip(attributes.positionOS); + o.uv = TRANSFORM_TEX(attributes.uv, _MainTex); + o.uv = attributes.uv; + o.color = attributes.color; + return o; + } + + float4 UnlitFragment(Varyings i) : SV_Target + { + half4 tex = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv); + half4 main; + #if defined(_STRAIGHT_ALPHA_INPUT) + main.rgb = tex.rgb * i.color.rgb * tex.a; + #else + main.rgb = tex.rgb * i.color.rgb; + #endif + main.a = tex.a * i.color.a; + + return main; + } + ENDHLSL + } + } + FallBack "Universal Render Pipeline/2D/Sprite-Lit-Default" +} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader.meta new file mode 100644 index 000000000..22b8bb996 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7549820bdb4e84b4bb099fb30af6e6b4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader new file mode 100644 index 000000000..9896911ed --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader @@ -0,0 +1,149 @@ +Shader "Universal Render Pipeline/2D/Spine/Sprite" +{ + Properties + { + _MainTex("Main Texture", 2D) = "white" {} + _MaskTex("Mask", 2D) = "white" {} + _Color("Color", Color) = (1,1,1,1) + + _BumpScale("Scale", Float) = 1.0 + _BumpMap("Normal Map", 2D) = "bump" {} + + [MaterialToggle] PixelSnap("Pixel snap", Float) = 0 + [PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {} + [PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0 + + _EmissionColor("Color", Color) = (0,0,0,0) + _EmissionMap("Emission", 2D) = "white" {} + _EmissionPower("Emission Power", Float) = 2.0 + + _FixedNormal("Fixed Normal", Vector) = (0,0,1,1) + _ZWrite("Depth Write", Float) = 0.0 + _Cutoff("Depth alpha cutoff", Range(0,1)) = 0.0 + _ShadowAlphaCutoff("Shadow alpha cutoff", Range(0,1)) = 0.1 + _CustomRenderQueue("Custom Render Queue", Float) = 0.0 + + _OverlayColor("Overlay Color", Color) = (0,0,0,0) + _Hue("Hue", Range(-0.5,0.5)) = 0.0 + _Saturation("Saturation", Range(0,2)) = 1.0 + _Brightness("Brightness", Range(0,2)) = 1.0 + + _RimPower("Rim Power", Float) = 2.0 + _RimColor("Rim Color", Color) = (1,1,1,1) + + _BlendTex("Blend Texture", 2D) = "white" {} + _BlendAmount("Blend", Range(0,1)) = 0.0 + + [HideInInspector] _SrcBlend("__src", Float) = 1.0 + [HideInInspector] _DstBlend("__dst", Float) = 0.0 + [HideInInspector] _RenderQueue("__queue", Float) = 0.0 + [HideInInspector] _Cull("__cull", Float) = 0.0 + [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default + } + + HLSLINCLUDE + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + ENDHLSL + + SubShader + { + // UniversalPipeline tag is required. If Universal render pipeline is not set in the graphics settings + // this Subshader will fail. + Tags {"Queue" = "Transparent" "RenderType" = "Sprite" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True" "AlphaDepth" = "False" "CanUseSpriteAtlas" = "True" } + + Stencil { + Ref[_StencilRef] + Comp[_StencilComp] + Pass Keep + } + + Pass + { + Tags { "LightMode" = "Universal2D" } + Blend[_SrcBlend][_DstBlend] + ZWrite[_ZWrite] + Cull[_Cull] + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_0 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_1 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_2 __ + #pragma multi_compile USE_SHAPE_LIGHT_TYPE_3 __ + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2 + #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE + #pragma shader_feature _NORMALMAP + #pragma shader_feature _ALPHA_CLIP + #pragma shader_feature _EMISSION + #pragma shader_feature _COLOR_ADJUST + #pragma shader_feature _RIM_LIGHTING + #pragma shader_feature _TEXTURE_BLEND + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma multi_compile _ PIXELSNAP_ON + #pragma multi_compile _ ETC1_EXTERNAL_ALPHA + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + //-------------------------------------- + // Spine related keywords + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma vertex CombinedShapeLightVertex + #pragma fragment CombinedShapeLightFragment + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl" + + #include "Include/Spine-Sprite-StandardPass-URP-2D.hlsl" + ENDHLSL + } + + Pass + { + Tags { "LightMode" = "NormalsRendering"} + HLSLPROGRAM + #pragma prefer_hlslcc gles + #pragma vertex NormalsRenderingVertex + #pragma fragment NormalsRenderingFragment + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE + #pragma shader_feature _NORMALMAP + #pragma shader_feature _ALPHA_CLIP + + #pragma multi_compile _ PIXELSNAP_ON + #pragma multi_compile _ ETC1_EXTERNAL_ALPHA + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + + #include "Include/Spine-Sprite-NormalsPass-URP-2D.hlsl" + + ENDHLSL + } + + UsePass "Universal Render Pipeline/2D/Spine/Skeleton Lit/UNLIT" + } + + FallBack "Universal Render Pipeline/2D/Spine/Skeleton Lit" + CustomEditor "SpineSpriteShaderGUI" +} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader.meta new file mode 100644 index 000000000..9c42ddebc --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a79d0a36ad5ba0542946e3c3317e2aa4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include.meta new file mode 100644 index 000000000..2a5157217 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0db93304f212781439f0267455d4a121 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl new file mode 100644 index 000000000..43b6bdbf1 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl @@ -0,0 +1,37 @@ +#ifndef COMMON_SHADOW_CASTER_PASS_URP_INCLUDED +#define COMMON_SHADOW_CASTER_PASS_URP_INCLUDED + +#include "SpineCoreShaders/ShaderShared.cginc" + +struct AttributesSpine +{ + float4 positionOS : POSITION; + float3 normalOS : NORMAL; + float4 vertexColor : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +struct VaryingsSpine +{ + float4 positionCS : SV_POSITION; + float4 texcoordAndAlpha: TEXCOORD0; +}; + +float4 GetShadowPositionHClip(AttributesSpine input) +{ + float3 positionWS = TransformObjectToWorld(input.positionOS.xyz); + float3 normalWS = TransformObjectToWorldNormal(input.normalOS); + + float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, _LightDirection)); + +#if UNITY_REVERSED_Z + positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); +#else + positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE); +#endif + + return positionCS; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl.meta new file mode 100644 index 000000000..e011b78b8 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-ShadowCasterPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 53d9e6b22286c5640b000735f5a4f2ee +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl new file mode 100644 index 000000000..34e7af782 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl @@ -0,0 +1,42 @@ +#ifndef SPRITES_DEPTH_ONLY_PASS_URP_INCLUDED +#define SPRITES_DEPTH_ONLY_PASS_URP_INCLUDED + +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "SpineCoreShaders/ShaderShared.cginc" + +struct AttributesSprite +{ + float4 positionOS : POSITION; + float4 vertexColor : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +struct VaryingsSprite +{ + float4 positionCS : SV_POSITION; + float4 texcoordAndAlpha: TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO +}; + +VaryingsSprite DepthOnlyVertexSprite(AttributesSprite input) +{ + VaryingsSprite output = (VaryingsSprite)0; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0); + output.texcoordAndAlpha.a = input.vertexColor.a * _Color.a; + output.positionCS = TransformObjectToHClip(input.positionOS.xyz); + return output; +} + +half4 DepthOnlyFragmentSprite(VaryingsSprite input) : SV_TARGET +{ + fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy); + clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff); + return 0; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl.meta new file mode 100644 index 000000000..6a0b68912 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-DepthOnlyPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 692e50ad8dd7bb44cb6f6f7473b62ac8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl new file mode 100644 index 000000000..fdebde129 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl @@ -0,0 +1,48 @@ +#ifndef URP_LIT_INPUT_INCLUDED +#define URP_LIT_INPUT_INCLUDED + +//////////////////////////////////////// +// Defines +// +#undef LIGHTMAP_ON + +#if defined(_SPECULAR) || defined(_SPECULAR_GLOSSMAP) +#define SPECULAR +#endif + +//Have to process lighting per pixel if using normal maps or a diffuse ramp or rim lighting or specular +#if defined(_NORMALMAP) || defined(_DIFFUSE_RAMP) || defined(_RIM_LIGHTING) || defined(SPECULAR) +#define PER_PIXEL_LIGHTING +#endif + +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" +#include "SpineCoreShaders/ShaderShared.cginc" + +#if defined(SPECULAR) + +CBUFFER_START(UnityPerMaterial) +half _Metallic; +half _Glossiness; +half _GlossMapScale; +CBUFFER_END + +sampler2D _MetallicGlossMap; + +inline half2 getMetallicGloss(float2 uv) +{ + half2 mg; + +#ifdef _SPECULAR_GLOSSMAP + mg = tex2D(_MetallicGlossMap, uv).ra; + mg.g *= _GlossMapScale; +#else + mg.r = _Metallic; + mg.g = _Glossiness; +#endif + + return mg; +} +#endif + +#endif // URP_LIT_INPUT_INCLUDED diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl.meta new file mode 100644 index 000000000..0b543c2f4 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 04433ebe597dd6d48ad3306ae3eeca2e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl new file mode 100644 index 000000000..bb04f3341 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl @@ -0,0 +1,43 @@ +#ifndef SKELETON_FORWARD_PASS_URP_INCLUDED +#define SKELETON_FORWARD_PASS_URP_INCLUDED + +struct appdata { + float3 pos : POSITION; + half4 color : COLOR; + float2 uv0 : TEXCOORD0; + + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +struct VertexOutput { + half4 color : COLOR0; + float2 uv0 : TEXCOORD0; + float4 pos : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO +}; + +VertexOutput vert(appdata v) { + VertexOutput o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + float3 positionWS = TransformObjectToWorld(v.pos); + o.pos = TransformWorldToHClip(positionWS); + o.uv0 = v.uv0; + o.color = v.color; + return o; +} + +sampler2D _MainTex; + +half4 frag(VertexOutput i) : SV_Target{ + float4 texColor = tex2D(_MainTex, i.uv0); + + #if defined(_STRAIGHT_ALPHA_INPUT) + texColor.rgb *= texColor.a; + #endif + + return (texColor * i.color); +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl.meta new file mode 100644 index 000000000..7fb19fc7e --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Skeleton-ForwardPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 66d99756a2edf0e4d8761712cb85e9f1 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl new file mode 100644 index 000000000..f0fa20e1b --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl @@ -0,0 +1,76 @@ +#ifndef SKELETONLIT_FORWARD_PASS_URP_INCLUDED +#define SKELETONLIT_FORWARD_PASS_URP_INCLUDED + +struct appdata { + float3 pos : POSITION; + float3 normal : NORMAL; + half4 color : COLOR; + float2 uv0 : TEXCOORD0; + + UNITY_VERTEX_INPUT_INSTANCE_ID +}; + +struct VertexOutput { + half4 color : COLOR0; + float2 uv0 : TEXCOORD0; + float4 pos : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO +}; + +half3 LightweightLightVertexSimplified(float3 positionWS, half3 normalWS) { + Light mainLight = GetMainLight(); + + half3 attenuatedLightColor = mainLight.color * (mainLight.distanceAttenuation * mainLight.shadowAttenuation); + half3 diffuseLightColor = LightingLambert(attenuatedLightColor, mainLight.direction, normalWS); + + // Note: we don't add any lighting in the fragment shader, thus we include both variants below +#if defined(_ADDITIONAL_LIGHTS) || defined(_ADDITIONAL_LIGHTS_VERTEX) + for (int i = 0; i < GetAdditionalLightsCount(); ++i) + { + Light light = GetAdditionalLight(i, positionWS); + half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation); + diffuseLightColor += LightingLambert(attenuatedLightColor, light.direction, normalWS); + } +#endif + return diffuseLightColor; +} + +VertexOutput vert(appdata v) { + VertexOutput o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + half4 color = v.color; + float3 positionWS = TransformObjectToWorld(v.pos); + half3 fixedNormal = half3(0, 0, -1); + half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal)); + color.rgb = LightweightLightVertexSimplified(positionWS, normalWS); + + // Note: ambient light is also handled via SH. + half3 vertexSH; + OUTPUT_SH(normalWS.xyz, vertexSH); + color.rgb += SAMPLE_GI(input.lightmapUV, vertexSH, normalWS); + + o.color = color; + o.uv0 = v.uv0; + o.pos = TransformWorldToHClip(positionWS); + return o; +} + +sampler2D _MainTex; + +half4 frag(VertexOutput i) : SV_Target{ + half4 tex = tex2D(_MainTex, i.uv0); + half4 col; + + #if defined(_STRAIGHT_ALPHA_INPUT) + col.rgb = tex.rgb * i.color.rgb * tex.a; + #else + col.rgb = tex.rgb * i.color.rgb; + #endif + + col.a = tex.a * i.color.a; + return col; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl.meta new file mode 100644 index 000000000..6f4a73d6a --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 259a1da3d69e3904e92a582735352359 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl new file mode 100644 index 000000000..f3feb908a --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl @@ -0,0 +1,24 @@ +#ifndef SKELETONLIT_SHADOW_CASTER_PASS_URP_INCLUDED +#define SKELETONLIT_SHADOW_CASTER_PASS_URP_INCLUDED + +#include "Spine-Common-ShadowCasterPass-URP.hlsl" + +VaryingsSpine ShadowPassVertexSkeletonLit(AttributesSpine input) +{ + VaryingsSpine output; + UNITY_SETUP_INSTANCE_ID(input); + + output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0); + output.positionCS = GetShadowPositionHClip(input); + output.texcoordAndAlpha.a = input.vertexColor.a; + return output; +} + +half4 ShadowPassFragmentSkeletonLit(VaryingsSpine input) : SV_TARGET +{ + fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy); + clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff); + return 0; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl.meta new file mode 100644 index 000000000..3e83d0fde --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 80e9a34d66b713544a0a47bcf9ec53fe +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl new file mode 100644 index 000000000..1be33a8d1 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl @@ -0,0 +1,267 @@ +#ifndef VERTEX_LIT_FORWARD_PASS_URP_INCLUDED +#define VERTEX_LIT_FORWARD_PASS_URP_INCLUDED + +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" + +#include "SpineCoreShaders/SpriteLighting.cginc" + +//////////////////////////////////////// +// Vertex output struct +// +struct VertexOutputLWRP +{ + float4 pos : SV_POSITION; + fixed4 vertexColor : COLOR; + float3 texcoord : TEXCOORD0; + + half4 fogFactorAndVertexLight : TEXCOORD1; + half3 viewDirectionWS : TEXCOORD2; + + DECLARE_LIGHTMAP_OR_SH(lightmapUV, vertexSH, 3); + +#if defined(_NORMALMAP) + half4 normalWorld : TEXCOORD4; + half4 tangentWorld : TEXCOORD5; + half4 binormalWorld : TEXCOORD6; +#else + half3 normalWorld : TEXCOORD4; +#endif +#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF) + float4 shadowCoord : TEXCOORD7; +#endif +#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS) + float4 positionWS : TEXCOORD8; +#endif + UNITY_VERTEX_OUTPUT_STEREO +}; + +/////////////////////////////////////////////////////////////////////////////// +// Vertex and Fragment functions // +/////////////////////////////////////////////////////////////////////////////// +half3 LightweightLightVertexSimplified(float3 positionWS, half3 normalWS) { +#ifdef _MAIN_LIGHT_VERTEX + Light mainLight = GetMainLight(); + half3 attenuatedLightColor = mainLight.color * (mainLight.distanceAttenuation * mainLight.shadowAttenuation); + half3 diffuseLightColor = LightingLambert(attenuatedLightColor, mainLight.direction, normalWS); +#else + half3 diffuseLightColor = half3(0, 0, 0); +#endif + +#ifdef _ADDITIONAL_LIGHTS_VERTEX + int pixelLightCount = GetAdditionalLightsCount(); + for (int i = 0; i < pixelLightCount; ++i) + { + Light light = GetAdditionalLight(i, positionWS); + half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation); + diffuseLightColor += LightingLambert(attenuatedLightColor, light.direction, normalWS); + } +#endif // _ADDITIONAL_LIGHTS_VERTEX + return diffuseLightColor; +} + +#ifdef _DIFFUSE_RAMP +half3 LightingLambertRamped(half3 lightColor, float attenuation, half3 lightDir, half3 normal) +{ + half angleDot = max(0, dot(lightDir, normal)); + return calculateRampedDiffuse(lightColor, attenuation, angleDot); +} +#endif + +#if defined(SPECULAR) + +half4 LightweightFragmentPBRSimplified(InputData inputData, half4 texAlbedoAlpha, half metallic, half3 specular, + half smoothness, half3 emission, half4 vertexColor) +{ + half4 albedo = texAlbedoAlpha * vertexColor; + + BRDFData brdfData; + half ignoredAlpha = 1; // ignore alpha, otherwise + InitializeBRDFData(albedo.rgb, metallic, specular, smoothness, ignoredAlpha, brdfData); + brdfData.specular *= albedo.a; + +#ifndef _MAIN_LIGHT_VERTEX +#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF) + Light mainLight = GetMainLight(inputData.shadowCoord); +#else + Light mainLight = GetMainLight(); +#endif + + half3 finalColor = inputData.bakedGI; + finalColor += LightingPhysicallyBased(brdfData, mainLight, inputData.normalWS, inputData.viewDirectionWS); +#else // _MAIN_LIGHT_VERTEX + half3 finalColor = inputData.bakedGI; +#endif // _MAIN_LIGHT_VERTEX + +#ifdef _ADDITIONAL_LIGHTS + int pixelLightCount = GetAdditionalLightsCount(); + for (int i = 0; i < pixelLightCount; ++i) + { + Light light = GetAdditionalLight(i, inputData.positionWS); + finalColor += LightingPhysicallyBased(brdfData, light, inputData.normalWS, inputData.viewDirectionWS); + } +#endif + +#ifdef _ADDITIONAL_LIGHTS_VERTEX + finalColor += inputData.vertexLighting * brdfData.diffuse; +#endif + finalColor += emission; + return prepareLitPixelForOutput(half4(finalColor, texAlbedoAlpha.a), vertexColor); +} + +#else // !SPECULAR + +half4 LightweightFragmentBlinnPhongSimplified(InputData inputData, half4 texDiffuseAlpha, half3 emission, half4 vertexColor) +{ + half4 diffuse = texDiffuseAlpha * vertexColor; + +#ifndef _MAIN_LIGHT_VERTEX +#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF) + Light mainLight = GetMainLight(inputData.shadowCoord); +#else + Light mainLight = GetMainLight(); +#endif + half3 diffuseLighting = inputData.bakedGI; + + half3 attenuation = mainLight.distanceAttenuation * mainLight.shadowAttenuation; + half3 attenuatedLightColor = mainLight.color * attenuation; +#ifndef _DIFFUSE_RAMP + diffuseLighting += LightingLambert(attenuatedLightColor, mainLight.direction, inputData.normalWS); +#else + diffuseLighting += LightingLambertRamped(mainLight.color, attenuation, mainLight.direction, inputData.normalWS); +#endif +#else // _MAIN_LIGHT_VERTEX + half3 diffuseLighting = inputData.bakedGI; +#endif // _MAIN_LIGHT_VERTEX + +#ifdef _ADDITIONAL_LIGHTS + int pixelLightCount = GetAdditionalLightsCount(); + for (int i = 0; i < pixelLightCount; ++i) + { + Light light = GetAdditionalLight(i, inputData.positionWS); + half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation); + diffuseLighting += LightingLambert(attenuatedLightColor, light.direction, inputData.normalWS); + } +#endif +#ifdef _ADDITIONAL_LIGHTS_VERTEX + diffuseLighting += inputData.vertexLighting; +#endif + diffuseLighting += emission; + //half3 finalColor = diffuseLighting * diffuse + emission; + half3 finalColor = diffuseLighting * diffuse.rgb; + return prepareLitPixelForOutput(half4(finalColor, texDiffuseAlpha.a), vertexColor); +} +#endif // SPECULAR + +VertexOutputLWRP ForwardPassVertexSprite(VertexInput input) +{ + VertexOutputLWRP output = (VertexOutputLWRP)0; + + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + output.pos = calculateLocalPos(input.vertex); + output.vertexColor = calculateVertexColor(input.color); + output.texcoord = float3(calculateTextureCoord(input.texcoord), 0); + + float3 positionWS = TransformObjectToWorld(input.vertex.xyz); + + float backFaceSign = 1; +#if defined(FIXED_NORMALS_BACKFACE_RENDERING) + backFaceSign = calculateBackfacingSign(positionWS.xyz); +#endif + output.viewDirectionWS = GetCameraPositionWS() - positionWS; + +#if defined(PER_PIXEL_LIGHTING) + +#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS) + output.positionWS = float4(positionWS, 1); +#endif + half3 normalWS = calculateSpriteWorldNormal(input, -backFaceSign); + output.normalWorld.xyz = normalWS; + +#if defined(_NORMALMAP) + output.tangentWorld.xyz = calculateWorldTangent(input.tangent); + output.binormalWorld.xyz = calculateSpriteWorldBinormal(input, output.normalWorld.xyz, output.tangentWorld.xyz, backFaceSign); +#endif + +#else // !PER_PIXEL_LIGHTING + half3 fixedNormal = half3(0, 0, -1); + half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal)); + +#endif // !PER_PIXEL_LIGHTING + output.fogFactorAndVertexLight.yzw = LightweightLightVertexSimplified(positionWS, normalWS); + +#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF) + VertexPositionInputs vertexInput; + vertexInput.positionWS = positionWS; + vertexInput.positionCS = output.pos; + output.shadowCoord = GetShadowCoord(vertexInput); +#endif + +#if defined(_FOG) + half fogFactor = ComputeFogFactor(output.pos.z); + output.fogFactorAndVertexLight.x = fogFactor; +#endif + + OUTPUT_SH(normalWS.xyz, output.vertexSH); + return output; +} + +half4 ForwardPassFragmentSprite(VertexOutputLWRP input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + fixed4 texureColor = calculateTexturePixel(input.texcoord.xy); + ALPHA_CLIP(texureColor, input.vertexColor) + + // fill out InputData struct + InputData inputData; +#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF) + inputData.shadowCoord = input.shadowCoord; +#endif + + inputData.viewDirectionWS = input.viewDirectionWS; + inputData.vertexLighting = input.fogFactorAndVertexLight.yzw; + +#if defined(PER_PIXEL_LIGHTING) + #if defined(_NORMALMAP) + half3 normalWS = calculateNormalFromBumpMap(input.texcoord.xy, input.tangentWorld.xyz, input.binormalWorld.xyz, input.normalWorld.xyz); + #else + half3 normalWS = input.normalWorld.xyz; + #endif +#else // !PER_PIXEL_LIGHTING + half3 fixedNormal = half3(0, 0, -1); + half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal)); +#endif // !PER_PIXEL_LIGHTING + + inputData.normalWS = normalWS; + inputData.bakedGI = SAMPLE_GI(input.lightmapUV, input.vertexSH, inputData.normalWS); +#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS) + inputData.positionWS = input.positionWS.rgb; +#endif + +#if defined(SPECULAR) + half2 metallicGloss = getMetallicGloss(input.texcoord.xy); + half metallic = metallicGloss.x; + half smoothness = metallicGloss.y; // this is 1 minus the square root of real roughness m. + + half3 specular = half3(0, 0, 0); + half4 emission = half4(0, 0, 0, 1); + APPLY_EMISSION_SPECULAR(emission, input.texcoord.xy) + half4 pixel = LightweightFragmentPBRSimplified(inputData, texureColor, metallic, specular, smoothness, emission.rgb, input.vertexColor); +#else + half3 emission = half3(0, 0, 0); + APPLY_EMISSION(emission, input.texcoord.xy) + half4 pixel = LightweightFragmentBlinnPhongSimplified(inputData, texureColor, emission, input.vertexColor); +#endif + +#if defined(_RIM_LIGHTING) + pixel.rgb = applyRimLighting(input.positionWS.xyz, normalWS, pixel); +#endif + + COLORISE(pixel) + APPLY_FOG_LWRP(pixel, input.fogFactorAndVertexLight.x) + return pixel; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl.meta new file mode 100644 index 000000000..7eee00493 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cf623d0aff5fa5a46a8ab141746282e8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl new file mode 100644 index 000000000..ab7a6cbf0 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl @@ -0,0 +1,27 @@ +#ifndef SPRITES_SHADOW_CASTER_PASS_URP_INCLUDED +#define SPRITES_SHADOW_CASTER_PASS_URP_INCLUDED + +#include "Spine-Common-ShadowCasterPass-URP.hlsl" + +uniform fixed _ShadowAlphaCutoff; + +VaryingsSpine ShadowPassVertexSprite(AttributesSpine input) +{ + VaryingsSpine output; + UNITY_SETUP_INSTANCE_ID(input); + + output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0); + output.positionCS = GetShadowPositionHClip(input); + output.texcoordAndAlpha.a = input.vertexColor.a * _Color.a; + return output; +} + +half4 ShadowPassFragmentSprite(VaryingsSpine input) : SV_TARGET +{ + fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy); + clip(texureColor.a * input.texcoordAndAlpha.a - _ShadowAlphaCutoff); + + return 0; +} + +#endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl.meta new file mode 100644 index 000000000..cc4d16539 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ShadowCasterPass-URP.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: eb352cfad402b384bb31649b44fa2cf3 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders.meta new file mode 100644 index 000000000..ce6e68ab6 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 543e1e9f1b6cdaf40a010bc06130716c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc new file mode 100644 index 000000000..521692bcd --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc @@ -0,0 +1,2 @@ +// Adapt this path accordingly if you have unpacked the Spine directory to another location. +#include "Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc" \ No newline at end of file diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc.meta new file mode 100644 index 000000000..89bebad81 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/ShaderShared.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5c831ab76c424d9429cdff3bc8fbb856 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc new file mode 100644 index 000000000..addf71be1 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc @@ -0,0 +1,2 @@ +// Adapt this path accordingly if you have unpacked the Spine directory to another location. +#include "Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpriteLighting.cginc" \ No newline at end of file diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc.meta new file mode 100644 index 000000000..9ad27f48d --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/SpineCoreShaders/SpriteLighting.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 63fe0a6c5f377d9448f7ee7ad96e6a8f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader new file mode 100644 index 000000000..20677a848 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader @@ -0,0 +1,152 @@ +Shader "Universal Render Pipeline/Spine/Skeleton" { + Properties { + _Cutoff("Shadow alpha cutoff", Range(0,1)) = 0.1 + [NoScaleOffset] _MainTex("Main Texture", 2D) = "black" {} + [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default + } + + SubShader { + // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings + // this Subshader will fail. + Tags { "RenderPipeline" = "UniversalPipeline" "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + Cull Off + ZWrite Off + Blend One OneMinusSrcAlpha + + Stencil { + Ref[_StencilRef] + Comp[_StencilComp] + Pass Keep + } + + Pass { + Name "Forward" + Tags{"LightMode" = "UniversalForward"} + + ZWrite Off + Cull Off + Blend One OneMinusSrcAlpha + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + // ------------------------------------- + // Universal Pipeline keywords + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE + #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS + #pragma multi_compile _ _SHADOWS_SOFT + + // ------------------------------------- + // Unity defined keywords + #pragma multi_compile_fog + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + //-------------------------------------- + // Spine related keywords + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma vertex vert + #pragma fragment frag + + #undef LIGHTMAP_ON + + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Skeleton-ForwardPass-URP.hlsl" + ENDHLSL + } + + Pass + { + Name "ShadowCaster" + Tags{"LightMode" = "ShadowCaster"} + + ZWrite On + ZTest LEqual + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma target 2.0 + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + #pragma vertex ShadowPassVertexSkeletonLit + #pragma fragment ShadowPassFragmentSkeletonLit + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl" + + ENDHLSL + } + + Pass + { + Name "DepthOnly" + Tags{"LightMode" = "DepthOnly"} + + ZWrite On + ColorMask 0 + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + #pragma vertex DepthOnlyVertexSprite + #pragma fragment DepthOnlyFragmentSprite + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-DepthOnlyPass-URP.hlsl" + ENDHLSL + } + } + + FallBack "Hidden/InternalErrorShader" +} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader.meta new file mode 100644 index 000000000..5311d75d5 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Skeleton-URP.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b2f45941d9f4fe9479ce1aebb9d63fbf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader new file mode 100644 index 000000000..166c8d2b5 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader @@ -0,0 +1,154 @@ +Shader "Universal Render Pipeline/Spine/Skeleton Lit" { + Properties { + _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 + [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} + [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 + [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default + } + + SubShader { + // Lightweight Pipeline tag is required. If Lightweight render pipeline is not set in the graphics settings + // this Subshader will fail. + Tags { "RenderPipeline" = "UniversalPipeline" "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + LOD 100 + Cull Off + ZWrite Off + Blend One OneMinusSrcAlpha + + Stencil { + Ref[_StencilRef] + Comp[_StencilComp] + Pass Keep + } + + Pass { + Name "ForwardLit" + Tags{"LightMode" = "UniversalForward"} + + ZWrite Off + Cull Off + Blend One OneMinusSrcAlpha + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + // ------------------------------------- + // Lightweight Pipeline keywords + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE + #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS + #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS + #pragma multi_compile _ _SHADOWS_SOFT + #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE + + // ------------------------------------- + // Unity defined keywords + #pragma multi_compile_fog + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + //-------------------------------------- + // Spine related keywords + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma vertex vert + #pragma fragment frag + + #undef LIGHTMAP_ON + + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-SkeletonLit-ForwardPass-URP.hlsl" + ENDHLSL + } + + Pass + { + Name "ShadowCaster" + Tags{"LightMode" = "ShadowCaster"} + + ZWrite On + ZTest LEqual + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma target 2.0 + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + #pragma vertex ShadowPassVertexSkeletonLit + #pragma fragment ShadowPassFragmentSkeletonLit + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-SkeletonLit-ShadowCasterPass-URP.hlsl" + + ENDHLSL + } + + Pass + { + Name "DepthOnly" + Tags{"LightMode" = "DepthOnly"} + + ZWrite On + ColorMask 0 + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + #pragma vertex DepthOnlyVertexSprite + #pragma fragment DepthOnlyFragmentSprite + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-DepthOnlyPass-URP.hlsl" + ENDHLSL + } + } + + FallBack "Hidden/InternalErrorShader" +} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader.meta new file mode 100644 index 000000000..bcb71052b --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-SkeletonLit-URP.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b77e51f117177954ea863bdb422344fb +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader new file mode 100644 index 000000000..61fa6ac55 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader @@ -0,0 +1,220 @@ +Shader "Universal Render Pipeline/Spine/Sprite" +{ + Properties + { + _MainTex("Main Texture", 2D) = "white" {} + _Color("Color", Color) = (1,1,1,1) + + _BumpScale("Scale", Float) = 1.0 + _BumpMap("Normal Map", 2D) = "bump" {} + + [MaterialToggle] PixelSnap("Pixel snap", Float) = 0 + [PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {} + [PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0 + + _EmissionColor("Color", Color) = (0,0,0,0) + _EmissionMap("Emission", 2D) = "white" {} + _EmissionPower("Emission Power", Float) = 2.0 + + _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 + _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0 + [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 + _MetallicGlossMap("Metallic", 2D) = "white" {} + + _DiffuseRamp("Diffuse Ramp Texture", 2D) = "gray" {} + + _FixedNormal("Fixed Normal", Vector) = (0,0,1,1) + _ZWrite("Depth Write", Float) = 0.0 + _Cutoff("Depth alpha cutoff", Range(0,1)) = 0.0 + _ShadowAlphaCutoff("Shadow alpha cutoff", Range(0,1)) = 0.1 + _CustomRenderQueue("Custom Render Queue", Float) = 0.0 + + _OverlayColor("Overlay Color", Color) = (0,0,0,0) + _Hue("Hue", Range(-0.5,0.5)) = 0.0 + _Saturation("Saturation", Range(0,2)) = 1.0 + _Brightness("Brightness", Range(0,2)) = 1.0 + + _RimPower("Rim Power", Float) = 2.0 + _RimColor("Rim Color", Color) = (1,1,1,1) + + _BlendTex("Blend Texture", 2D) = "white" {} + _BlendAmount("Blend", Range(0,1)) = 0.0 + + [HideInInspector] _SrcBlend("__src", Float) = 1.0 + [HideInInspector] _DstBlend("__dst", Float) = 0.0 + [HideInInspector] _RenderQueue("__queue", Float) = 0.0 + [HideInInspector] _Cull("__cull", Float) = 0.0 + [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 + [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default + } + + SubShader + { + // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings + // this Subshader will fail. + Tags { "RenderPipeline"="UniversalPipeline" "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" } + LOD 150 + + Stencil { + Ref[_StencilRef] + Comp[_StencilComp] + Pass Keep + } + + // ------------------------------------------------------------------ + // Forward pass. + Pass + { + // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with + // no LightMode tag are also rendered by Universal Render Pipeline + Name "ForwardLit" + Tags{"LightMode" = "UniversalForward"} + Blend[_SrcBlend][_DstBlend] + ZWrite[_ZWrite] + Cull[_Cull] + + HLSLPROGRAM + // Required to compile gles 2.0 with standard SRP library + // All shaders must be compiled with HLSLcc and currently only gles is not using HLSLcc by default + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2 + #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE + #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP + #pragma shader_feature _NORMALMAP + #pragma shader_feature _ALPHA_CLIP + #pragma shader_feature _EMISSION + #pragma shader_feature _DIFFUSE_RAMP + #pragma shader_feature _COLOR_ADJUST + #pragma shader_feature _RIM_LIGHTING + #pragma shader_feature _TEXTURE_BLEND + #pragma shader_feature _FOG + #pragma shader_feature _RECEIVE_SHADOWS_OFF + + #pragma fragmentoption ARB_precision_hint_fastest + #pragma multi_compile_fog + #pragma multi_compile _ PIXELSNAP_ON + #pragma multi_compile _ ETC1_EXTERNAL_ALPHA + + // ------------------------------------- + // Universal Pipeline keywords + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS + #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE + #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS + #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS + #pragma multi_compile _ _SHADOWS_SOFT + #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE + + // ------------------------------------- + // Unity defined keywords + #pragma multi_compile _ DIRLIGHTMAP_COMBINED + #pragma multi_compile _ LIGHTMAP_ON + #pragma multi_compile_fog + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + //-------------------------------------- + // Spine related keywords + #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT + #pragma vertex ForwardPassVertexSprite + #pragma fragment ForwardPassFragmentSprite + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" + + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-Sprite-ForwardPass-URP.hlsl" + ENDHLSL + } + + Pass + { + Name "ShadowCaster" + Tags{"LightMode" = "ShadowCaster"} + + ZWrite On + ZTest LEqual + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma target 2.0 + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + #pragma vertex ShadowPassVertexSprite + #pragma fragment ShadowPassFragmentSprite + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/ShadowCasterPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-Sprite-ShadowCasterPass-URP.hlsl" + ENDHLSL + } + + Pass + { + Name "DepthOnly" + Tags{"LightMode" = "DepthOnly"} + + ZWrite On + ColorMask 0 + Cull Off + + HLSLPROGRAM + // Required to compile gles 2.0 with standard srp library + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + + #pragma vertex DepthOnlyVertexSprite + #pragma fragment DepthOnlyFragmentSprite + + // ------------------------------------- + // Material Keywords + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + + //-------------------------------------- + // GPU Instancing + #pragma multi_compile_instancing + + #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" + + #define USE_URP + #define fixed4 half4 + #define fixed3 half3 + #define fixed half + #include "Include/Spine-Input-URP.hlsl" + #include "Include/Spine-DepthOnlyPass-URP.hlsl" + ENDHLSL + } + } + + FallBack "Hidden/InternalErrorShader" + CustomEditor "SpineSpriteShaderGUI" +} diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader.meta new file mode 100644 index 000000000..bcc280b64 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9f253724b2d29a3438eeea48277c25cb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json new file mode 100644 index 000000000..845425ab7 --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json @@ -0,0 +1,23 @@ +{ + "name": "com.esotericsoftware.spine.urp-shaders", + "displayName": "Spine Universal RP Shaders", + "description": "This plugin provides universal render pipeline (URP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 3.8.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)", + "version": "3.8.0", + "unity": "2019.3", + "author": { + "name": "Esoteric Software", + "email": "contact@esotericsoftware.com", + "url": "http://esotericsoftware.com/" + }, + "dependencies": { + "com.unity.render-pipelines.universal": "7.1.5" + }, + "keywords": [ + "spine", + "urp", + "universal", + "render pipeline", + "shaders" + ], + "hideInEditor": false +} \ No newline at end of file diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json.meta b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json.meta new file mode 100644 index 000000000..4335d61da --- /dev/null +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 873d705a4cd0f674ea19f9f30b1258ed +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From b67bf992a0349b779aac9f619f027d34e296267c Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 20 Dec 2019 12:20:09 +0100 Subject: [PATCH 10/10] Single bone IK fix and license header update. Closes #1580, closes #1581. --- .../src/spine/examples/Main.as | 24 +- spine-as3/spine-as3/lib/spine-as3.swc | Bin 122840 -> 123107 bytes spine-as3/spine-as3/src/spine/BinaryInput.as | 26 +- spine-as3/spine-as3/src/spine/BlendMode.as | 24 +- spine-as3/spine-as3/src/spine/Bone.as | 24 +- spine-as3/spine-as3/src/spine/BoneData.as | 24 +- spine-as3/spine-as3/src/spine/Color.as | 24 +- .../spine-as3/src/spine/ConstraintData.as | 24 +- spine-as3/spine-as3/src/spine/Event.as | 24 +- spine-as3/spine-as3/src/spine/EventData.as | 24 +- spine-as3/spine-as3/src/spine/IkConstraint.as | 61 +- .../spine-as3/src/spine/IkConstraintData.as | 24 +- .../spine-as3/src/spine/Interpolation.as | 24 +- spine-as3/spine-as3/src/spine/MathUtils.as | 24 +- .../spine-as3/src/spine/PathConstraint.as | 24 +- .../spine-as3/src/spine/PathConstraintData.as | 24 +- spine-as3/spine-as3/src/spine/Polygon.as | 24 +- spine-as3/spine-as3/src/spine/Pool.as | 24 +- spine-as3/spine-as3/src/spine/Poolable.as | 24 +- spine-as3/spine-as3/src/spine/PositionMode.as | 24 +- spine-as3/spine-as3/src/spine/RotateMode.as | 24 +- spine-as3/spine-as3/src/spine/Skeleton.as | 42 +- .../spine-as3/src/spine/SkeletonBinary.as | 58 +- .../spine-as3/src/spine/SkeletonBounds.as | 24 +- .../spine-as3/src/spine/SkeletonClipping.as | 24 +- spine-as3/spine-as3/src/spine/SkeletonData.as | 24 +- spine-as3/spine-as3/src/spine/SkeletonJson.as | 50 +- spine-as3/spine-as3/src/spine/Skin.as | 24 +- spine-as3/spine-as3/src/spine/SkinEntry.as | 31 +- spine-as3/spine-as3/src/spine/Slot.as | 24 +- spine-as3/spine-as3/src/spine/SlotData.as | 24 +- spine-as3/spine-as3/src/spine/SpacingMode.as | 24 +- .../src/spine/TransformConstraint.as | 24 +- .../src/spine/TransformConstraintData.as | 24 +- .../spine-as3/src/spine/TransformMode.as | 24 +- spine-as3/spine-as3/src/spine/Triangulator.as | 24 +- spine-as3/spine-as3/src/spine/Updatable.as | 24 +- spine-as3/spine-as3/src/spine/Vertex.as | 24 +- spine-as3/spine-as3/src/spine/VertexEffect.as | 24 +- .../src/spine/animation/Animation.as | 24 +- .../src/spine/animation/AnimationState.as | 24 +- .../src/spine/animation/AnimationStateData.as | 24 +- .../src/spine/animation/AttachmentTimeline.as | 24 +- .../src/spine/animation/ColorTimeline.as | 24 +- .../src/spine/animation/CurveTimeline.as | 24 +- .../src/spine/animation/DeformTimeline.as | 24 +- .../src/spine/animation/DrawOrderTimeline.as | 24 +- .../src/spine/animation/EventQueue.as | 24 +- .../src/spine/animation/EventTimeline.as | 24 +- .../src/spine/animation/EventType.as | 24 +- .../spine/animation/IkConstraintTimeline.as | 24 +- .../src/spine/animation/Listeners.as | 24 +- .../spine-as3/src/spine/animation/MixBlend.as | 24 +- .../src/spine/animation/MixDirection.as | 24 +- .../animation/PathConstraintMixTimeline.as | 24 +- .../PathConstraintPositionTimeline.as | 24 +- .../PathConstraintSpacingTimeline.as | 24 +- .../src/spine/animation/RotateTimeline.as | 24 +- .../src/spine/animation/ScaleTimeline.as | 24 +- .../src/spine/animation/ShearTimeline.as | 24 +- .../spine-as3/src/spine/animation/Timeline.as | 24 +- .../src/spine/animation/TimelineType.as | 24 +- .../src/spine/animation/TrackEntry.as | 24 +- .../animation/TransformConstraintTimeline.as | 24 +- .../src/spine/animation/TranslateTimeline.as | 24 +- .../src/spine/animation/TwoColorTimeline.as | 24 +- spine-as3/spine-as3/src/spine/atlas/Atlas.as | 24 +- .../spine-as3/src/spine/atlas/AtlasPage.as | 24 +- .../spine-as3/src/spine/atlas/AtlasRegion.as | 24 +- spine-as3/spine-as3/src/spine/atlas/Format.as | 24 +- .../src/spine/atlas/TextureFilter.as | 24 +- .../src/spine/atlas/TextureLoader.as | 24 +- .../spine-as3/src/spine/atlas/TextureWrap.as | 24 +- .../attachments/AtlasAttachmentLoader.as | 24 +- .../src/spine/attachments/Attachment.as | 24 +- .../src/spine/attachments/AttachmentLoader.as | 24 +- .../src/spine/attachments/AttachmentType.as | 24 +- .../attachments/BoundingBoxAttachment.as | 24 +- .../spine/attachments/ClippingAttachment.as | 24 +- .../src/spine/attachments/MeshAttachment.as | 24 +- .../src/spine/attachments/PathAttachment.as | 24 +- .../src/spine/attachments/PointAttachment.as | 24 +- .../src/spine/attachments/RegionAttachment.as | 24 +- .../src/spine/attachments/VertexAttachment.as | 24 +- .../src/spine/flash/FlashTextureLoader.as | 24 +- .../src/spine/flash/SkeletonAnimation.as | 24 +- .../src/spine/flash/SkeletonSprite.as | 24 +- .../spine-as3/src/spine/interpolation/Pow.as | 24 +- .../src/spine/interpolation/PowOut.as | 24 +- .../src/spine/vertexeffects/JitterEffect.as | 24 +- .../src/spine/vertexeffects/SwirlEffect.as | 24 +- spine-c/spine-c/include/spine/Animation.h | 24 +- .../spine-c/include/spine/AnimationState.h | 24 +- .../include/spine/AnimationStateData.h | 24 +- spine-c/spine-c/include/spine/Array.h | 24 +- spine-c/spine-c/include/spine/Atlas.h | 24 +- .../include/spine/AtlasAttachmentLoader.h | 24 +- spine-c/spine-c/include/spine/Attachment.h | 24 +- .../spine-c/include/spine/AttachmentLoader.h | 24 +- spine-c/spine-c/include/spine/Bone.h | 24 +- spine-c/spine-c/include/spine/BoneData.h | 24 +- .../include/spine/BoundingBoxAttachment.h | 24 +- .../include/spine/ClippingAttachment.h | 24 +- spine-c/spine-c/include/spine/Color.h | 24 +- spine-c/spine-c/include/spine/Event.h | 24 +- spine-c/spine-c/include/spine/EventData.h | 24 +- spine-c/spine-c/include/spine/IkConstraint.h | 24 +- .../spine-c/include/spine/IkConstraintData.h | 24 +- .../spine-c/include/spine/MeshAttachment.h | 24 +- .../spine-c/include/spine/PathAttachment.h | 24 +- .../spine-c/include/spine/PathConstraint.h | 24 +- .../include/spine/PathConstraintData.h | 24 +- .../spine-c/include/spine/PointAttachment.h | 24 +- .../spine-c/include/spine/RegionAttachment.h | 24 +- spine-c/spine-c/include/spine/Skeleton.h | 24 +- .../spine-c/include/spine/SkeletonBinary.h | 24 +- .../spine-c/include/spine/SkeletonBounds.h | 24 +- .../spine-c/include/spine/SkeletonClipping.h | 24 +- spine-c/spine-c/include/spine/SkeletonData.h | 24 +- spine-c/spine-c/include/spine/SkeletonJson.h | 24 +- spine-c/spine-c/include/spine/Skin.h | 24 +- spine-c/spine-c/include/spine/Slot.h | 24 +- spine-c/spine-c/include/spine/SlotData.h | 24 +- .../include/spine/TransformConstraint.h | 24 +- .../include/spine/TransformConstraintData.h | 24 +- spine-c/spine-c/include/spine/Triangulator.h | 24 +- .../spine-c/include/spine/VertexAttachment.h | 24 +- spine-c/spine-c/include/spine/VertexEffect.h | 24 +- spine-c/spine-c/include/spine/dll.h | 24 +- spine-c/spine-c/include/spine/extension.h | 24 +- spine-c/spine-c/include/spine/spine.h | 24 +- spine-c/spine-c/src/spine/Animation.c | 24 +- spine-c/spine-c/src/spine/AnimationState.c | 24 +- .../spine-c/src/spine/AnimationStateData.c | 24 +- spine-c/spine-c/src/spine/Array.c | 24 +- spine-c/spine-c/src/spine/Atlas.c | 24 +- .../spine-c/src/spine/AtlasAttachmentLoader.c | 24 +- spine-c/spine-c/src/spine/Attachment.c | 24 +- spine-c/spine-c/src/spine/AttachmentLoader.c | 24 +- spine-c/spine-c/src/spine/Bone.c | 24 +- spine-c/spine-c/src/spine/BoneData.c | 24 +- .../spine-c/src/spine/BoundingBoxAttachment.c | 24 +- .../spine-c/src/spine/ClippingAttachment.c | 24 +- spine-c/spine-c/src/spine/Color.c | 24 +- spine-c/spine-c/src/spine/Event.c | 24 +- spine-c/spine-c/src/spine/EventData.c | 24 +- spine-c/spine-c/src/spine/IkConstraint.c | 64 +- spine-c/spine-c/src/spine/IkConstraintData.c | 24 +- spine-c/spine-c/src/spine/MeshAttachment.c | 24 +- spine-c/spine-c/src/spine/PathAttachment.c | 24 +- spine-c/spine-c/src/spine/PathConstraint.c | 24 +- .../spine-c/src/spine/PathConstraintData.c | 24 +- spine-c/spine-c/src/spine/PointAttachment.c | 24 +- spine-c/spine-c/src/spine/RegionAttachment.c | 24 +- spine-c/spine-c/src/spine/Skeleton.c | 24 +- spine-c/spine-c/src/spine/SkeletonBinary.c | 30 +- spine-c/spine-c/src/spine/SkeletonBounds.c | 24 +- spine-c/spine-c/src/spine/SkeletonClipping.c | 24 +- spine-c/spine-c/src/spine/SkeletonData.c | 24 +- spine-c/spine-c/src/spine/SkeletonJson.c | 29 +- spine-c/spine-c/src/spine/Skin.c | 24 +- spine-c/spine-c/src/spine/Slot.c | 24 +- spine-c/spine-c/src/spine/SlotData.c | 24 +- .../spine-c/src/spine/TransformConstraint.c | 24 +- .../src/spine/TransformConstraintData.c | 24 +- spine-c/spine-c/src/spine/Triangulator.c | 24 +- spine-c/spine-c/src/spine/VertexAttachment.c | 24 +- spine-c/spine-c/src/spine/VertexEffect.c | 24 +- spine-c/spine-c/src/spine/extension.c | 24 +- spine-cocos2d-objc/example/CoinExample.h | 24 +- spine-cocos2d-objc/example/CoinExample.m | 24 +- spine-cocos2d-objc/example/GoblinsExample.h | 24 +- spine-cocos2d-objc/example/GoblinsExample.m | 24 +- spine-cocos2d-objc/example/IKExample.h | 24 +- spine-cocos2d-objc/example/IKExample.m | 24 +- spine-cocos2d-objc/example/RaptorExample.h | 24 +- spine-cocos2d-objc/example/RaptorExample.m | 24 +- spine-cocos2d-objc/example/SpineboyExample.h | 24 +- spine-cocos2d-objc/example/SpineboyExample.m | 24 +- spine-cocos2d-objc/example/TankExample.h | 24 +- spine-cocos2d-objc/example/TankExample.m | 24 +- spine-cocos2d-objc/src/spine/GLUtils.c | 24 +- spine-cocos2d-objc/src/spine/GLUtils.h | 24 +- .../src/spine/SkeletonAnimation.h | 24 +- .../src/spine/SkeletonAnimation.m | 24 +- .../src/spine/SkeletonRenderer.h | 24 +- .../src/spine/SkeletonRenderer.m | 24 +- .../src/spine/spine-cocos2d-objc.h | 24 +- .../src/spine/spine-cocos2d-objc.m | 24 +- .../example/Classes/AppDelegate.cpp | 24 +- spine-cocos2dx/example/Classes/AppDelegate.h | 24 +- spine-cocos2dx/example/Classes/AppMacros.h | 24 +- .../example/Classes/BatchingExample.cpp | 24 +- .../example/Classes/BatchingExample.h | 24 +- .../example/Classes/CoinExample.cpp | 24 +- spine-cocos2dx/example/Classes/CoinExample.h | 24 +- .../example/Classes/GoblinsExample.cpp | 24 +- .../example/Classes/GoblinsExample.h | 24 +- spine-cocos2dx/example/Classes/IKExample.cpp | 24 +- spine-cocos2dx/example/Classes/IKExample.h | 34 +- .../example/Classes/MixAndMatchExample.cpp | 24 +- .../example/Classes/MixAndMatchExample.h | 24 +- .../example/Classes/RaptorExample.cpp | 24 +- .../example/Classes/RaptorExample.h | 24 +- .../SkeletonRendererSeparatorExample.cpp | 24 +- .../SkeletonRendererSeparatorExample.h | 24 +- .../example/Classes/SpineboyExample.cpp | 24 +- .../example/Classes/SpineboyExample.h | 24 +- .../example/Classes/TankExample.cpp | 24 +- spine-cocos2dx/example/Classes/TankExample.h | 24 +- .../src/spine/AttachmentVertices.cpp | 24 +- spine-cocos2dx/src/spine/AttachmentVertices.h | 24 +- .../src/spine/SkeletonAnimation.cpp | 24 +- spine-cocos2dx/src/spine/SkeletonAnimation.h | 24 +- spine-cocos2dx/src/spine/SkeletonRenderer.cpp | 24 +- spine-cocos2dx/src/spine/SkeletonRenderer.h | 24 +- spine-cocos2dx/src/spine/spine-cocos2dx.cpp | 24 +- spine-cocos2dx/src/spine/spine-cocos2dx.h | 24 +- spine-cocos2dx/src/spine/v3/SkeletonBatch.cpp | 25 +- spine-cocos2dx/src/spine/v3/SkeletonBatch.h | 24 +- .../src/spine/v3/SkeletonTwoColorBatch.cpp | 24 +- .../src/spine/v3/SkeletonTwoColorBatch.h | 24 +- spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp | 24 +- spine-cocos2dx/src/spine/v4/SkeletonBatch.h | 24 +- .../src/spine/v4/SkeletonTwoColorBatch.cpp | 24 +- .../src/spine/v4/SkeletonTwoColorBatch.h | 24 +- spine-corona/README.md | 3 + spine-corona/main.lua | 24 +- spine-corona/spine-corona/spine.lua | 24 +- spine-cpp/spine-cpp/include/spine/Animation.h | 24 +- .../spine-cpp/include/spine/AnimationState.h | 24 +- .../include/spine/AnimationStateData.h | 24 +- spine-cpp/spine-cpp/include/spine/Atlas.h | 24 +- .../include/spine/AtlasAttachmentLoader.h | 24 +- .../spine-cpp/include/spine/Attachment.h | 24 +- .../include/spine/AttachmentLoader.h | 24 +- .../include/spine/AttachmentTimeline.h | 24 +- .../spine-cpp/include/spine/AttachmentType.h | 24 +- spine-cpp/spine-cpp/include/spine/BlendMode.h | 24 +- spine-cpp/spine-cpp/include/spine/Bone.h | 24 +- spine-cpp/spine-cpp/include/spine/BoneData.h | 24 +- .../include/spine/BoundingBoxAttachment.h | 24 +- .../include/spine/ClippingAttachment.h | 24 +- spine-cpp/spine-cpp/include/spine/Color.h | 24 +- .../spine-cpp/include/spine/ColorTimeline.h | 24 +- .../spine-cpp/include/spine/ConstraintData.h | 24 +- .../spine-cpp/include/spine/ContainerUtil.h | 24 +- .../spine-cpp/include/spine/CurveTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Debug.h | 24 +- .../spine-cpp/include/spine/DeformTimeline.h | 24 +- .../include/spine/DrawOrderTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Event.h | 24 +- spine-cpp/spine-cpp/include/spine/EventData.h | 24 +- .../spine-cpp/include/spine/EventTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Extension.h | 24 +- .../include/spine/HasRendererObject.h | 24 +- spine-cpp/spine-cpp/include/spine/HashMap.h | 24 +- .../spine-cpp/include/spine/IkConstraint.h | 24 +- .../include/spine/IkConstraintData.h | 24 +- .../include/spine/IkConstraintTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Json.h | 24 +- .../spine-cpp/include/spine/LinkedMesh.h | 24 +- spine-cpp/spine-cpp/include/spine/MathUtil.h | 24 +- .../spine-cpp/include/spine/MeshAttachment.h | 24 +- spine-cpp/spine-cpp/include/spine/MixBlend.h | 24 +- .../spine-cpp/include/spine/MixDirection.h | 24 +- .../spine-cpp/include/spine/PathAttachment.h | 24 +- .../spine-cpp/include/spine/PathConstraint.h | 24 +- .../include/spine/PathConstraintData.h | 24 +- .../include/spine/PathConstraintMixTimeline.h | 24 +- .../spine/PathConstraintPositionTimeline.h | 24 +- .../spine/PathConstraintSpacingTimeline.h | 24 +- .../spine-cpp/include/spine/PointAttachment.h | 24 +- spine-cpp/spine-cpp/include/spine/Pool.h | 24 +- .../spine-cpp/include/spine/PositionMode.h | 24 +- spine-cpp/spine-cpp/include/spine/RTTI.h | 24 +- .../include/spine/RegionAttachment.h | 24 +- .../spine-cpp/include/spine/RotateMode.h | 24 +- .../spine-cpp/include/spine/RotateTimeline.h | 24 +- .../spine-cpp/include/spine/ScaleTimeline.h | 24 +- .../spine-cpp/include/spine/ShearTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Skeleton.h | 24 +- .../spine-cpp/include/spine/SkeletonBinary.h | 24 +- .../spine-cpp/include/spine/SkeletonBounds.h | 24 +- .../include/spine/SkeletonClipping.h | 24 +- .../spine-cpp/include/spine/SkeletonData.h | 24 +- .../spine-cpp/include/spine/SkeletonJson.h | 24 +- spine-cpp/spine-cpp/include/spine/Skin.h | 24 +- spine-cpp/spine-cpp/include/spine/Slot.h | 24 +- spine-cpp/spine-cpp/include/spine/SlotData.h | 24 +- .../spine-cpp/include/spine/SpacingMode.h | 24 +- .../spine-cpp/include/spine/SpineObject.h | 24 +- .../spine-cpp/include/spine/SpineString.h | 24 +- .../spine-cpp/include/spine/TextureLoader.h | 24 +- spine-cpp/spine-cpp/include/spine/Timeline.h | 24 +- .../spine-cpp/include/spine/TimelineType.h | 24 +- .../include/spine/TransformConstraint.h | 24 +- .../include/spine/TransformConstraintData.h | 24 +- .../spine/TransformConstraintTimeline.h | 24 +- .../spine-cpp/include/spine/TransformMode.h | 24 +- .../include/spine/TranslateTimeline.h | 24 +- .../spine-cpp/include/spine/Triangulator.h | 24 +- .../include/spine/TwoColorTimeline.h | 24 +- spine-cpp/spine-cpp/include/spine/Updatable.h | 24 +- spine-cpp/spine-cpp/include/spine/Vector.h | 24 +- .../include/spine/VertexAttachment.h | 24 +- .../spine-cpp/include/spine/VertexEffect.h | 24 +- spine-cpp/spine-cpp/include/spine/Vertices.h | 24 +- spine-cpp/spine-cpp/include/spine/dll.h | 24 +- spine-cpp/spine-cpp/include/spine/spine.h | 24 +- spine-cpp/spine-cpp/src/spine/Animation.cpp | 24 +- .../spine-cpp/src/spine/AnimationState.cpp | 24 +- .../src/spine/AnimationStateData.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Atlas.cpp | 24 +- .../src/spine/AtlasAttachmentLoader.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Attachment.cpp | 24 +- .../spine-cpp/src/spine/AttachmentLoader.cpp | 24 +- .../src/spine/AttachmentTimeline.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Bone.cpp | 24 +- spine-cpp/spine-cpp/src/spine/BoneData.cpp | 24 +- .../src/spine/BoundingBoxAttachment.cpp | 24 +- .../src/spine/ClippingAttachment.cpp | 24 +- .../spine-cpp/src/spine/ColorTimeline.cpp | 24 +- .../spine-cpp/src/spine/ConstraintData.cpp | 24 +- .../spine-cpp/src/spine/CurveTimeline.cpp | 24 +- .../spine-cpp/src/spine/DeformTimeline.cpp | 24 +- .../spine-cpp/src/spine/DrawOrderTimeline.cpp | 25 +- spine-cpp/spine-cpp/src/spine/Event.cpp | 24 +- spine-cpp/spine-cpp/src/spine/EventData.cpp | 24 +- .../spine-cpp/src/spine/EventTimeline.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Extension.cpp | 25 +- .../spine-cpp/src/spine/IkConstraint.cpp | 62 +- .../spine-cpp/src/spine/IkConstraintData.cpp | 25 +- .../src/spine/IkConstraintTimeline.cpp | 24 +- spine-cpp/spine-cpp/src/spine/LinkedMesh.cpp | 24 +- spine-cpp/spine-cpp/src/spine/MathUtil.cpp | 25 +- .../spine-cpp/src/spine/MeshAttachment.cpp | 24 +- .../spine-cpp/src/spine/PathAttachment.cpp | 25 +- .../spine-cpp/src/spine/PathConstraint.cpp | 24 +- .../src/spine/PathConstraintData.cpp | 24 +- .../src/spine/PathConstraintMixTimeline.cpp | 24 +- .../spine/PathConstraintPositionTimeline.cpp | 24 +- .../spine/PathConstraintSpacingTimeline.cpp | 24 +- .../spine-cpp/src/spine/PointAttachment.cpp | 24 +- spine-cpp/spine-cpp/src/spine/RTTI.cpp | 24 +- .../spine-cpp/src/spine/RegionAttachment.cpp | 24 +- .../spine-cpp/src/spine/RotateTimeline.cpp | 24 +- .../spine-cpp/src/spine/ScaleTimeline.cpp | 25 +- .../spine-cpp/src/spine/ShearTimeline.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Skeleton.cpp | 24 +- .../spine-cpp/src/spine/SkeletonBinary.cpp | 30 +- .../spine-cpp/src/spine/SkeletonBounds.cpp | 24 +- .../spine-cpp/src/spine/SkeletonClipping.cpp | 24 +- .../spine-cpp/src/spine/SkeletonData.cpp | 24 +- .../spine-cpp/src/spine/SkeletonJson.cpp | 29 +- spine-cpp/spine-cpp/src/spine/Skin.cpp | 25 +- spine-cpp/spine-cpp/src/spine/Slot.cpp | 25 +- spine-cpp/spine-cpp/src/spine/SlotData.cpp | 24 +- spine-cpp/spine-cpp/src/spine/SpineObject.cpp | 25 +- .../spine-cpp/src/spine/TextureLoader.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Timeline.cpp | 24 +- .../src/spine/TransformConstraint.cpp | 25 +- .../src/spine/TransformConstraintData.cpp | 24 +- .../src/spine/TransformConstraintTimeline.cpp | 24 +- .../spine-cpp/src/spine/TranslateTimeline.cpp | 24 +- .../spine-cpp/src/spine/Triangulator.cpp | 25 +- .../spine-cpp/src/spine/TwoColorTimeline.cpp | 24 +- spine-cpp/spine-cpp/src/spine/Updatable.cpp | 24 +- .../spine-cpp/src/spine/VertexAttachment.cpp | 24 +- .../spine-cpp/src/spine/VertexEffect.cpp | 24 +- spine-csharp/src/Animation.cs | 24 +- spine-csharp/src/AnimationState.cs | 24 +- spine-csharp/src/AnimationStateData.cs | 24 +- spine-csharp/src/Atlas.cs | 24 +- .../src/Attachments/AtlasAttachmentLoader.cs | 24 +- spine-csharp/src/Attachments/Attachment.cs | 24 +- .../src/Attachments/AttachmentLoader.cs | 24 +- .../src/Attachments/AttachmentType.cs | 24 +- .../src/Attachments/BoundingBoxAttachment.cs | 24 +- .../src/Attachments/ClippingAttachment.cs | 24 +- .../src/Attachments/MeshAttachment.cs | 24 +- .../src/Attachments/PathAttachment.cs | 24 +- .../src/Attachments/PointAttachment.cs | 24 +- .../src/Attachments/RegionAttachment.cs | 24 +- .../src/Attachments/VertexAttachment.cs | 24 +- spine-csharp/src/BlendMode.cs | 24 +- spine-csharp/src/Bone.cs | 24 +- spine-csharp/src/BoneData.cs | 24 +- .../src/Collections/OrderedDictionary.cs | 25 +- spine-csharp/src/ConstraintData.cs | 24 +- spine-csharp/src/Event.cs | 24 +- spine-csharp/src/EventData.cs | 24 +- spine-csharp/src/IUpdatable.cs | 24 +- spine-csharp/src/IkConstraint.cs | 59 +- spine-csharp/src/IkConstraintData.cs | 24 +- spine-csharp/src/Json.cs | 24 +- spine-csharp/src/MathUtils.cs | 24 +- spine-csharp/src/PathConstraint.cs | 24 +- spine-csharp/src/PathConstraintData.cs | 24 +- spine-csharp/src/Skeleton.cs | 24 +- spine-csharp/src/SkeletonBinary.cs | 26 +- spine-csharp/src/SkeletonBounds.cs | 24 +- spine-csharp/src/SkeletonClipping.cs | 24 +- spine-csharp/src/SkeletonData.cs | 24 +- spine-csharp/src/SkeletonJson.cs | 26 +- spine-csharp/src/Skin.cs | 24 +- spine-csharp/src/Slot.cs | 26 +- spine-csharp/src/SlotData.cs | 24 +- spine-csharp/src/TransformConstraint.cs | 24 +- spine-csharp/src/TransformConstraintData.cs | 24 +- spine-csharp/src/Triangulator.cs | 24 +- .../spine/AnimationStateTests.java | 24 +- .../spine/AttachmentTimelineTests.java | 24 +- .../esotericsoftware/spine/BonePlotting.java | 24 +- .../esotericsoftware/spine/Box2DExample.java | 24 +- .../spine/EventTimelineTests.java | 24 +- .../com/esotericsoftware/spine/IKTest.java | 29 + .../com/esotericsoftware/spine/MixTest.java | 24 +- .../esotericsoftware/spine/NormalMapTest.java | 24 +- .../esotericsoftware/spine/SimpleTest1.java | 24 +- .../esotericsoftware/spine/SimpleTest2.java | 24 +- .../esotericsoftware/spine/SimpleTest3.java | 24 +- .../esotericsoftware/spine/SimpleTest4.java | 24 +- .../spine/SkeletonAttachmentTest.java | 24 +- .../spine/SkinBonesMixAndMatchTest.java | 28 + .../esotericsoftware/spine/TestHarness.java | 24 +- .../spine/VertexEffectTest.java | 24 +- .../com/esotericsoftware/spine/Animation.java | 24 +- .../spine/AnimationState.java | 24 +- .../spine/AnimationStateData.java | 24 +- .../com/esotericsoftware/spine/BlendMode.java | 24 +- .../src/com/esotericsoftware/spine/Bone.java | 24 +- .../com/esotericsoftware/spine/BoneData.java | 24 +- .../spine/ConstraintData.java | 28 + .../src/com/esotericsoftware/spine/Event.java | 24 +- .../com/esotericsoftware/spine/EventData.java | 24 +- .../esotericsoftware/spine/IkConstraint.java | 24 +- .../spine/IkConstraintData.java | 24 +- .../spine/PathConstraint.java | 24 +- .../spine/PathConstraintData.java | 24 +- .../com/esotericsoftware/spine/Skeleton.java | 24 +- .../spine/SkeletonBinary.java | 28 +- .../spine/SkeletonBounds.java | 24 +- .../esotericsoftware/spine/SkeletonData.java | 24 +- .../esotericsoftware/spine/SkeletonJson.java | 26 +- .../spine/SkeletonRenderer.java | 24 +- .../spine/SkeletonRendererDebug.java | 24 +- .../src/com/esotericsoftware/spine/Skin.java | 24 +- .../src/com/esotericsoftware/spine/Slot.java | 24 +- .../com/esotericsoftware/spine/SlotData.java | 24 +- .../spine/TransformConstraint.java | 24 +- .../spine/TransformConstraintData.java | 24 +- .../com/esotericsoftware/spine/Updatable.java | 24 +- .../attachments/AtlasAttachmentLoader.java | 24 +- .../spine/attachments/Attachment.java | 24 +- .../spine/attachments/AttachmentLoader.java | 24 +- .../spine/attachments/AttachmentType.java | 24 +- .../attachments/BoundingBoxAttachment.java | 24 +- .../spine/attachments/ClippingAttachment.java | 24 +- .../spine/attachments/MeshAttachment.java | 24 +- .../spine/attachments/PathAttachment.java | 24 +- .../spine/attachments/PointAttachment.java | 24 +- .../spine/attachments/RegionAttachment.java | 24 +- .../spine/attachments/SkeletonAttachment.java | 24 +- .../spine/attachments/VertexAttachment.java | 24 +- .../spine/utils/SkeletonActor.java | 24 +- .../spine/utils/SkeletonActorPool.java | 24 +- .../spine/utils/SkeletonClipping.java | 24 +- .../spine/utils/SkeletonDataLoader.java | 24 +- .../spine/utils/SkeletonDrawable.java | 24 +- .../spine/utils/SkeletonPool.java | 24 +- .../spine/utils/SpineUtils.java | 24 +- .../spine/utils/Triangulator.java | 24 +- .../spine/utils/TwoColorPolygonBatch.java | 24 +- .../spine/vertexeffects/JitterEffect.java | 24 +- .../spine/vertexeffects/SwirlEffect.java | 24 +- .../esotericsoftware/spine/JsonRollback.java | 24 +- .../spine/SkeletonViewer.java | 24 +- spine-love/main.lua | 24 +- spine-love/spine-love/spine.lua | 24 +- spine-lua/Animation.lua | 24 +- spine-lua/AnimationState.lua | 24 +- spine-lua/AnimationStateData.lua | 24 +- spine-lua/Atlas.lua | 24 +- spine-lua/AtlasAttachmentLoader.lua | 24 +- spine-lua/AttachmentLoader.lua | 24 +- spine-lua/AttachmentType.lua | 24 +- spine-lua/BlendMode.lua | 24 +- spine-lua/Bone.lua | 24 +- spine-lua/BoneData.lua | 24 +- spine-lua/BoundingBoxAttachment.lua | 24 +- spine-lua/Color.lua | 24 +- spine-lua/Event.lua | 24 +- spine-lua/EventData.lua | 24 +- spine-lua/IkConstraint.lua | 72 +- spine-lua/IkConstraintData.lua | 24 +- spine-lua/Interpolation.lua | 24 +- spine-lua/MeshAttachment.lua | 24 +- spine-lua/PathConstraint.lua | 24 +- spine-lua/PathConstraintData.lua | 24 +- spine-lua/RegionAttachment.lua | 24 +- spine-lua/Skeleton.lua | 24 +- spine-lua/SkeletonBounds.lua | 24 +- spine-lua/SkeletonClipping.lua | 24 +- spine-lua/SkeletonData.lua | 24 +- spine-lua/SkeletonJson.lua | 27 +- spine-lua/Skin.lua | 24 +- spine-lua/Slot.lua | 24 +- spine-lua/SlotData.lua | 24 +- spine-lua/TextureAtlas.lua | 24 +- spine-lua/TextureAtlasRegion.lua | 24 +- spine-lua/TextureFilter.lua | 24 +- spine-lua/TextureRegion.lua | 24 +- spine-lua/TextureWrap.lua | 24 +- spine-lua/TransformConstraint.lua | 24 +- spine-lua/TransformConstraintData.lua | 24 +- spine-lua/TransformMode.lua | 24 +- spine-lua/Triangulator.lua | 24 +- spine-lua/attachments/Attachment.lua | 24 +- spine-lua/attachments/AttachmentType.lua | 24 +- .../attachments/BoundingBoxAttachment.lua | 24 +- spine-lua/attachments/ClippingAttachment.lua | 24 +- spine-lua/attachments/MeshAttachment.lua | 24 +- spine-lua/attachments/PathAttachment.lua | 24 +- spine-lua/attachments/PointAttachment.lua | 24 +- spine-lua/attachments/RegionAttachment.lua | 24 +- spine-lua/attachments/VertexAttachment.lua | 24 +- spine-lua/utils.lua | 24 +- spine-lua/vertexeffects/JitterEffect.lua | 24 +- spine-lua/vertexeffects/SwirlEffect.lua | 24 +- spine-monogame/example/ExampleGame.cs | 24 +- spine-monogame/example/ExampleProgram.cs | 24 +- .../example/Properties/AssemblyInfo.cs | 24 +- spine-sfml/c/example/main.cpp | 24 +- spine-sfml/c/src/spine/spine-sfml.cpp | 24 +- spine-sfml/c/src/spine/spine-sfml.h | 24 +- spine-sfml/cpp/example/main.cpp | 24 +- spine-sfml/cpp/src/spine/spine-sfml.cpp | 24 +- spine-sfml/cpp/src/spine/spine-sfml.h | 24 +- .../src/spine/examples/CoinExample.as | 24 +- .../src/spine/examples/GoblinsExample.as | 24 +- .../src/spine/examples/Main.as | 24 +- .../src/spine/examples/MixAndMatchExample.as | 24 +- .../src/spine/examples/OwlExample.as | 24 +- .../src/spine/examples/RaptorExample.as | 24 +- .../src/spine/examples/Shape.as | 24 +- .../src/spine/examples/SpineboyExample.as | 24 +- .../src/spine/examples/StretchymanExample.as | 24 +- .../src/spine/examples/TankExample.as | 24 +- .../src/spine/examples/TwoColorExample.as | 24 +- .../src/spine/examples/VineExample.as | 24 +- .../spine-starling/lib/spine-starling.swc | Bin 134513 -> 134714 bytes .../src/spine/starling/SkeletonAnimation.as | 24 +- .../src/spine/starling/SkeletonMesh.as | 24 +- .../src/spine/starling/SkeletonSprite.as | 24 +- .../starling/StarlingAtlasAttachmentLoader.as | 24 +- .../spine/starling/StarlingTextureLoader.as | 24 +- .../src/spine/starling/TwoColorEffect.as | 24 +- .../src/spine/starling/TwoColorMeshStyle.as | 24 +- spine-ts/build/spine-threejs.d.ts | 2590 +-- spine-ts/build/spine-threejs.js | 16831 ++++++++-------- spine-ts/build/spine-threejs.js.map | 2 +- spine-ts/canvas/src/AssetManager.ts | 24 +- spine-ts/canvas/src/CanvasTexture.ts | 24 +- spine-ts/canvas/src/SkeletonRenderer.ts | 24 +- spine-ts/core/src/Animation.ts | 24 +- spine-ts/core/src/AnimationState.ts | 24 +- spine-ts/core/src/AnimationStateData.ts | 24 +- spine-ts/core/src/AssetManager.ts | 24 +- spine-ts/core/src/AtlasAttachmentLoader.ts | 24 +- spine-ts/core/src/BlendMode.ts | 24 +- spine-ts/core/src/Bone.ts | 24 +- spine-ts/core/src/BoneData.ts | 24 +- spine-ts/core/src/ConstraintData.ts | 24 +- spine-ts/core/src/Event.ts | 24 +- spine-ts/core/src/EventData.ts | 24 +- spine-ts/core/src/IkConstraint.ts | 56 +- spine-ts/core/src/IkConstraintData.ts | 24 +- spine-ts/core/src/PathConstraint.ts | 24 +- spine-ts/core/src/PathConstraintData.ts | 24 +- spine-ts/core/src/SharedAssetManager.ts | 24 +- spine-ts/core/src/Skeleton.ts | 24 +- spine-ts/core/src/SkeletonBinary.ts | 28 +- spine-ts/core/src/SkeletonBounds.ts | 24 +- spine-ts/core/src/SkeletonClipping.ts | 24 +- spine-ts/core/src/SkeletonData.ts | 24 +- spine-ts/core/src/SkeletonJson.ts | 26 +- spine-ts/core/src/Skin.ts | 24 +- spine-ts/core/src/Slot.ts | 24 +- spine-ts/core/src/SlotData.ts | 24 +- spine-ts/core/src/Texture.ts | 24 +- spine-ts/core/src/TextureAtlas.ts | 24 +- spine-ts/core/src/TransformConstraint.ts | 24 +- spine-ts/core/src/TransformConstraintData.ts | 24 +- spine-ts/core/src/Triangulator.ts | 24 +- spine-ts/core/src/Updatable.ts | 24 +- spine-ts/core/src/Utils.ts | 24 +- spine-ts/core/src/VertexEffect.ts | 24 +- spine-ts/core/src/attachments/Attachment.ts | 24 +- .../core/src/attachments/AttachmentLoader.ts | 24 +- .../core/src/attachments/AttachmentType.ts | 24 +- .../src/attachments/BoundingBoxAttachment.ts | 24 +- .../src/attachments/ClippingAttachment.ts | 24 +- .../core/src/attachments/MeshAttachment.ts | 24 +- .../core/src/attachments/PathAttachment.ts | 24 +- .../core/src/attachments/PointAttachment.ts | 24 +- .../core/src/attachments/RegionAttachment.ts | 24 +- spine-ts/core/src/polyfills.ts | 24 +- .../core/src/vertexeffects/JitterEffect.ts | 24 +- .../core/src/vertexeffects/SwirlEffect.ts | 24 +- spine-ts/player/src/Player.ts | 24 +- spine-ts/player/src/PlayerEditor.ts | 24 +- spine-ts/threejs/src/AssetManager.ts | 24 +- spine-ts/threejs/src/MeshBatcher.ts | 24 +- spine-ts/threejs/src/SkeletonMesh.ts | 24 +- spine-ts/threejs/src/ThreeJsTexture.ts | 24 +- spine-ts/webgl/src/AssetManager.ts | 24 +- spine-ts/webgl/src/Camera.ts | 24 +- spine-ts/webgl/src/GLTexture.ts | 24 +- spine-ts/webgl/src/Input.ts | 24 +- spine-ts/webgl/src/LoadingScreen.ts | 24 +- spine-ts/webgl/src/Matrix4.ts | 24 +- spine-ts/webgl/src/Mesh.ts | 24 +- spine-ts/webgl/src/PolygonBatcher.ts | 24 +- spine-ts/webgl/src/SceneRenderer.ts | 24 +- spine-ts/webgl/src/Shader.ts | 24 +- spine-ts/webgl/src/ShapeRenderer.ts | 24 +- spine-ts/webgl/src/SkeletonDebugRenderer.ts | 24 +- spine-ts/webgl/src/SkeletonRenderer.ts | 24 +- spine-ts/webgl/src/Vector3.ts | 24 +- spine-ts/webgl/src/WebGL.ts | 24 +- .../Private/SpineAtlasImportFactory.cpp | 24 +- .../Private/SpineEditorPlugin.cpp | 24 +- .../Private/SpineEditorPluginPrivatePCH.h | 24 +- .../Private/SpineSkeletonImportFactory.cpp | 24 +- .../Public/SpineAtlasImportFactory.h | 24 +- .../Public/SpineEditorPlugin.h | 24 +- .../Public/SpineSkeletonImportFactory.h | 24 +- .../SpinePlugin/Private/SSpineWidget.cpp | 26 +- .../SpinePlugin/Private/SpineAtlasAsset.cpp | 24 +- .../Private/SpineBoneDriverComponent.cpp | 24 +- .../Private/SpineBoneFollowerComponent.cpp | 24 +- .../SpinePlugin/Private/SpinePlugin.cpp | 24 +- .../Private/SpinePluginPrivatePCH.h | 24 +- .../SpineSkeletonAnimationComponent.cpp | 24 +- .../Private/SpineSkeletonComponent.cpp | 24 +- .../Private/SpineSkeletonDataAsset.cpp | 24 +- .../SpineSkeletonRendererComponent.cpp | 24 +- .../SpinePlugin/Private/SpineWidget.cpp | 26 +- .../Source/SpinePlugin/Public/SSpineWidget.h | 24 +- .../SpinePlugin/Public/SpineAtlasAsset.h | 24 +- .../Public/SpineBoneDriverComponent.h | 24 +- .../Public/SpineBoneFollowerComponent.h | 24 +- .../Source/SpinePlugin/Public/SpinePlugin.h | 24 +- .../Public/SpineSkeletonAnimationComponent.h | 24 +- .../Public/SpineSkeletonComponent.h | 24 +- .../Public/SpineSkeletonDataAsset.h | 24 +- .../Public/SpineSkeletonRendererComponent.h | 24 +- .../Source/SpinePlugin/Public/SpineWidget.h | 26 +- spine-ue4/Source/SpineUE4/SpineUE4.Build.cs | 24 +- .../SpineAnimationTesterTool.cs | 24 +- .../Spine Examples/Scripts/AttackSpineboy.cs | 24 +- .../Scripts/DataAssetsFromExportsExample.cs | 24 +- .../Scripts/DraggableTransform.cs | 24 +- .../Scripts/FootSoldierExample.cs | 24 +- .../BasicPlatformerController.cs | 24 +- .../ConstrainedCamera.cs | 24 +- .../Scripts/Getting Started Scripts/Raptor.cs | 24 +- .../SpineBeginnerTwo.cs | 24 +- .../SpineBlinkPlayer.cs | 24 +- .../SpineboyBeginnerInput.cs | 24 +- .../SpineboyBeginnerModel.cs | 24 +- .../SpineboyBeginnerView.cs | 24 +- .../SpineboyTargetController.cs | 24 +- .../TransitionDictionaryExample.cs | 24 +- .../Assets/Spine Examples/Scripts/Goblins.cs | 24 +- .../Scripts/HandleEventWithAudioExample.cs | 24 +- .../Scripts/HeroEffectsHandlerExample.cs | 24 +- .../Spine Examples/Scripts/HurtFlashEffect.cs | 24 +- .../Scripts/MaterialPropertyBlockExample.cs | 24 +- .../Scripts/MaterialReplacementExample.cs | 24 +- .../DummyMecanimControllerExample.cs | 24 +- .../MecanimToAnimationHandleExample.cs | 24 +- .../SkeletonAnimationHandleExample.cs | 24 +- .../AnimationMatchModifierAsset.cs | 24 +- .../EquipAssetExample.cs | 24 +- .../EquipButtonExample.cs | 24 +- .../EquipSystemExample.cs | 24 +- .../EquipsVisualsComponentExample.cs | 24 +- .../Spine Examples/Scripts/MixAndMatch.cs | 24 +- .../Scripts/MixAndMatchGraphic.cs | 24 +- .../Spine Examples/Scripts/RaggedySpineboy.cs | 24 +- .../Scripts/ReloadSceneOnKeyDown.cs | 24 +- .../Assets/Spine Examples/Scripts/Rotator.cs | 24 +- .../Sample Components/BoneLocalOverride.cs | 24 +- .../Scripts/Sample Components/CombinedSkin.cs | 24 +- .../Sample Components/Ghost/SkeletonGhost.cs | 24 +- .../Ghost/SkeletonGhostRenderer.cs | 24 +- .../Legacy/AtlasRegionAttacher.cs | 24 +- .../Sample Components/Legacy/CustomSkin.cs | 28 +- .../Legacy/SpriteAttacher.cs | 24 +- .../OutlineSkeletonGraphic.cs | 26 +- .../JitterEffectExample.cs | 24 +- .../TwoByTwoTransformEffectExample.cs | 24 +- .../SetRigidbodySolverIterations.cs | 26 +- .../SkeletonAnimationFixedTimestep.cs | 24 +- .../SkeletonAnimationMulti.cs | 24 +- .../SkeletonColorInitialize.cs | 24 +- .../SkeletonGraphicMirror.cs | 24 +- .../SkeletonGraphicPlayAnimationAtEvent.cs | 31 +- .../Editor/SkeletonRagdoll2DInspector.cs | 24 +- .../Editor/SkeletonRagdollInspector.cs | 24 +- .../SkeletonRagdoll.cs | 24 +- .../SkeletonRagdoll2D.cs | 24 +- .../SkeletonUtilityEyeConstraint.cs | 24 +- .../SkeletonUtilityGroundConstraint.cs | 24 +- .../SkeletonUtilityKinematicShadow.cs | 24 +- .../SlotTintBlackFollower.cs | 24 +- .../SpineEventUnityHandler.cs | 24 +- .../Scripts/SpawnFromSkeletonDataExample.cs | 24 +- .../Scripts/SpawnSkeletonGraphicExample.cs | 24 +- .../Spine Examples/Scripts/SpineGauge.cs | 24 +- .../Assets/Spine Examples/Scripts/Spineboy.cs | 24 +- .../Scripts/SpineboyBodyTilt.cs | 24 +- .../Scripts/SpineboyFacialExpression.cs | 24 +- .../Scripts/SpineboyFootplanter.cs | 24 +- .../Spine Examples/Scripts/SpineboyFreeze.cs | 24 +- .../Spine Examples/Scripts/SpineboyPole.cs | 24 +- .../AnimationReferenceAssetEditor.cs | 24 +- .../Asset Types/SkeletonDataAssetInspector.cs | 24 +- .../Asset Types/SpineAtlasAssetInspector.cs | 24 +- .../BoneFollowerGraphicInspector.cs | 24 +- .../Components/BoneFollowerInspector.cs | 24 +- .../BoundingBoxFollowerInspector.cs | 24 +- .../Components/PointFollowerInspector.cs | 24 +- .../Components/SkeletonAnimationInspector.cs | 24 +- .../Components/SkeletonGraphicInspector.cs | 24 +- .../Components/SkeletonMecanimInspector.cs | 24 +- ...keletonRendererCustomMaterialsInspector.cs | 24 +- .../Components/SkeletonRendererInspector.cs | 24 +- .../SkeletonUtilityBoneInspector.cs | 24 +- .../Components/SkeletonUtilityInspector.cs | 24 +- .../Spine/Editor/spine-unity/Editor/Menus.cs | 24 +- .../Shaders/SpineShaderWithOutlineGUI.cs | 24 +- .../Editor/Shaders/SpineSpriteShaderGUI.cs | 24 +- .../Editor/SpineAttributeDrawers.cs | 24 +- .../AssetDatabaseAvailabilityDetector.cs | 24 +- .../Editor/Utility/AssetUtility.cs | 24 +- .../Editor/Utility/BuildSettings.cs | 24 +- .../Editor/Utility/DataReloadHandler.cs | 24 +- .../spine-unity/Editor/Utility/Icons.cs | 24 +- .../Editor/Utility/Instantiation.cs | 24 +- .../spine-unity/Editor/Utility/Preferences.cs | 24 +- .../Editor/Utility/SpineEditorUtilities.cs | 24 +- .../Editor/Utility/SpineHandles.cs | 24 +- .../Editor/Utility/SpineInspectorUtility.cs | 24 +- .../Editor/Utility/SpineMaskUtilities.cs | 24 +- .../Editor/Windows/SkeletonBaker.cs | 24 +- .../Editor/Windows/SkeletonBakingWindow.cs | 24 +- .../Editor/Windows/SkeletonDebugWindow.cs | 24 +- .../Editor/Windows/SpinePreferences.cs | 24 +- .../Editor/SkeletonPartsRendererInspector.cs | 24 +- .../SkeletonRenderSeparatorInspector.cs | 24 +- .../Editor/SlotBlendModesEditor.cs | 24 +- .../Asset Types/AnimationReferenceAsset.cs | 24 +- .../spine-unity/Asset Types/AtlasAssetBase.cs | 24 +- .../Asset Types/EventDataReferenceAsset.cs | 24 +- .../Asset Types/RegionlessAttachmentLoader.cs | 24 +- .../Asset Types/SkeletonDataAsset.cs | 24 +- .../Asset Types/SkeletonDataCompatibility.cs | 24 +- .../Asset Types/SkeletonDataModifierAsset.cs | 24 +- .../Asset Types/SpineAtlasAsset.cs | 24 +- .../Components/Following/BoneFollower.cs | 24 +- .../Following/BoneFollowerGraphic.cs | 24 +- .../Following/BoundingBoxFollower.cs | 24 +- .../Components/Following/PointFollower.cs | 24 +- .../Components/SkeletonAnimation.cs | 24 +- .../spine-unity/Components/SkeletonGraphic.cs | 24 +- .../spine-unity/Components/SkeletonMecanim.cs | 24 +- .../SkeletonPartsRenderer.cs | 24 +- .../SkeletonRenderSeparator.cs | 24 +- .../Components/SkeletonRenderer.cs | 24 +- .../SkeletonRendererCustomMaterials.cs | 24 +- .../ActivateBasedOnFlipDirection.cs | 26 +- .../FollowLocationRigidbody.cs | 26 +- .../FollowLocationRigidbody2D.cs | 26 +- .../FollowSkeletonUtilityRootRotation.cs | 26 +- .../SkeletonUtility/SkeletonUtility.cs | 24 +- .../SkeletonUtility/SkeletonUtilityBone.cs | 24 +- .../SkeletonUtilityConstraint.cs | 24 +- .../SlotBlendModes/SlotBlendModes.cs | 24 +- .../Runtime/spine-unity/ISkeletonAnimation.cs | 24 +- .../Mesh Generation/DoubleBuffered.cs | 24 +- .../Mesh Generation/MeshGenerator.cs | 24 +- .../Mesh Generation/MeshRendererBuffers.cs | 24 +- .../SkeletonRendererInstruction.cs | 24 +- .../spine-unity/Mesh Generation/SpineMesh.cs | 24 +- .../TK2D/SpriteCollectionAttachmentLoader.cs | 24 +- .../BlendModeMaterialsAsset.cs | 24 +- .../Runtime/spine-unity/SpineAttributes.cs | 24 +- .../spine-unity/Utility/AtlasUtilities.cs | 24 +- .../Utility/AttachmentCloneExtensions.cs | 24 +- .../Utility/AttachmentRegionExtensions.cs | 24 +- .../spine-unity/Utility/MaterialChecks.cs | 24 +- .../spine-unity/Utility/SkeletonExtensions.cs | 24 +- .../spine-unity/Utility/SkinUtilities.cs | 24 +- .../WaitForSpineAnimation.cs | 24 +- .../WaitForSpineAnimationComplete.cs | 24 +- .../WaitForSpineAnimationEnd.cs | 24 +- .../YieldInstructions/WaitForSpineEvent.cs | 24 +- .../WaitForSpineTrackEntryEnd.cs | 24 +- spine-xna/example/src/ExampleGame.cs | 24 +- spine-xna/src/MeshBatcher.cs | 24 +- spine-xna/src/ShapeRenderer.cs | 24 +- spine-xna/src/SkeletonDebugRenderer.cs | 24 +- spine-xna/src/SkeletonRenderer.cs | 24 +- spine-xna/src/Util.cs | 24 +- spine-xna/src/VertexEffect.cs | 24 +- spine-xna/src/XnaTextureLoader.cs | 24 +- 819 files changed, 19880 insertions(+), 19483 deletions(-) diff --git a/spine-as3/spine-as3-example/src/spine/examples/Main.as b/spine-as3/spine-as3-example/src/spine/examples/Main.as index 689bb6beb..c2eaf9af9 100644 --- a/spine-as3/spine-as3-example/src/spine/examples/Main.as +++ b/spine-as3/spine-as3-example/src/spine/examples/Main.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-as3/spine-as3/lib/spine-as3.swc b/spine-as3/spine-as3/lib/spine-as3.swc index 7ab431b6111a63cb4fa2197bcd3b1215965bcf04..0b35f87eebbd44f8425dc56103d4e49c2de827f2 100644 GIT binary patch delta 67247 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%0AMQBvgOFpjT3;`_ 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%0D?}8*(L_?--sU#NIfrfBg<#5_n1CC1v2A5-(Z2 zJycEf4OqMQcqOs8Q2`oRA;}|oJEa0qB9QN#BNkVK4zlRr_Av{8 zeI|*DVJ&X+icDL5(st*n^X{1s>w4Q=XfDpwnYNI{{kU+-1E%{D*2V&bMQj;f*e7vvw<9AHp!s9YUkPX zM?>7@{7qB`Nj^g<7T{{LVfT@P-FksskAiEUihu}(12(`04)&HGmv`$km=T-tGGY

    bMWvin>}E2Y)(8p*r^K}^s_Kg2@D>K?4eiyi|n$&17_cY_#rl$DIXs@ z11L;TAL7C()4WuAbPCN+u8y!Mn_|hf`$Y8ud>*DRkLY;jKT?+5^JoKUq%5PuYP(PF zqAo&;<;oJr0frCv)Q9zy^SC5IIP{RuH6!(Lf0kq8?j!Jf`T#B$;rHmlep!m)G0^AT zOZZvw{{Ak!XO6m}ITz)~K;&m!E9vRP=Axw_R#UXxK#^O4sd^O#=C~yr+4c`=*Tc7 z@OtfIy~?P@fZu@X39aZwD|LZlT|X1P5oZb6B~ z(Z8USl>;mirLWQZekAON^Q7=R-1}ChQv+TuL!=U+3-~D zDs;@Tvbsn80lH`@^RIqHM>?@ZN&dsc;o>Nviibw)Llu%yMFCR-_0q@|N)hHMe}W%} zY0adW4JNetO1)I6k5uZTkZufqs12Ith~&9LG$S(2r<3tRH`7MNBxMihj0^-tTJCdi z*C$%;^NpE$sBGM8)C=X~`asLQmUvc?TJ9Gh(GU#tiGaYg3e!pfDqo;)$}}3a)2s~b z1=CY5%Bk&Y1H%6 zbTg)%-$c=;ahAoR!ca(f54!g>biIk>2&pKSzp;zbx>CgAUif%LY%^yE{Sc0m*FgDG z+}V~tg*SuIt&}weg_V_+7mU>s0uYqZDqnu3q&ttxluhgrdhACj*e#WRe?*TlXrKMy zlcSh$-+y>icYYvAT+DWe8CYXNLdY%QBnpEeLN(0XgBoJvU?MSYEC{#u(KgsV#X?(u zWH^8O_?Q`NAa$L9;|JKpOp??P3|9CsIfbTSu})gBPWW~b`8D!8S)R-&8~EAFR;Tu3 z{Jr7J#Bc(Ht3p?mt{Po+f4UlUHQ@@cc{GzqVkO{1eMi(MT$Vn3du1#FUp0??8^0fZ z-)BEPW|8OMOWj1oc|_W;hu}-IkpIEyW6(SFyn%vdXz|iQ|&=mZp;FpBoe;oWO@JmqVRN&=c zBL79~l`%dqqs1I=UY;U1pX`$4R>gdcZjIa(a_i(yz>J;3nTRF#7IYXtqcAs4QNSDz z7-lJ!L{Vfmxz8$l3kHOlu%69P7|e1B9%i#qc#N5QxKIqE(+1}}JUzL;U>>m1J!URg zIJK4FX@|mw_n6JYe@18`F0s-9%+@2cR?s9^Vzczb2%D!=v!Z}`k^93vb!sZe%}WRw zJ|OKN%d#?j`3iieMBRaoHdZ$F=vzQcA#)dcnnqw7Vj4nmHgv-T#tJmZ?)9IYa7tR> zvlC8K3+znS>{Nh$5{0inb8>2;TYTD?QGe1I>M1cprBME_e|r}C?-V`@6(Gu+X81S} zGtCEzm}v$dW~Lc@$eHH*+(IHv7ma!v%1n#F!P26OJLKkFJVkER@A_%c#gpXL{jQ&e zkL7j!blE)F_3hrSZ};i?p*~$d^jTd$+^6e@ySjdFheIkh3SR=KSm-Eeu6XuY17W65 zw}ot28ngK*e+_SKW&RH78g%D#%5yMJBN5$yh@AF}O;v{FA3pKS0e;-)vFcG4?{pAc z)#5!JWC+}l$nPNWKo{Bb`bgaQF3{4jW-LVDd%&kkAyEzFXNAmY{5Z?P@BR>%1xeD4 zuq1Dx$+uAZh)D7Fk?3SLxUh>6k!ykn`xvvqW5LT?f6OHE(IDZ^Pz!<#pwWQFI*%cc z2eWzLawkyPV@B;f@`!`QijEu-MUc4?tPB>*Y*C*-mtsvTFUj9lu-s^+o@+tlaD}w$ zi-;EZcCtcN)xvFf5N?p$k#H${kg0wI1Z{gCDge2)S_d$tL|dqBR+d})yE8NO6b8i@ zT765fe-tIi!8qB4QJi9E@6BOpd?4Oti36w_>e%Yo zwvA3Yw!ggR-us^Cp8JmRjj`7syK2?1Fl)`FS~ab^8!(atdSfCcU0|e*#Q-zG0>@?! zhzlLc!J;W{7J>s5A4FXPXkBhKliT~>AzQnBEpUTTg7 zm!VU<@VEdX=FQjLH`-f@hoXbi>ruMv#A0$^@%95r(&Nu2mHiA{{%nGJ(arit#cX=6 zy5Dv!O`B4!TV;S3PNcKp)j|VL&q@7D9|`mB6w4-kK2*V^J%%Yk{JN9OIPq^m3DzAk zHRnjk9SqBTwAl@^noNALlUfVE%)oS5@`4iO2?*hEdC{+3Da?hYd~U?o;lpzBw**Ur$<^8ALf5KW?lwW>uZpH{%j8RS(Aq z<86jHqu{rRqh0EB>F}ixq?ljH3qE>Kyt1wP$QS3{G*gYHJpLj1ES>5kn9$rZ@Lc%+ezM%Z< zGQ%M`Z-1oAT>#tCq(3TkMQ*!3=Q-$fMXUB^a;RPc{$P0SIyBgvPpHhd(;>IBQuD4V z#e#8#hPSI|GEGah4d1URf*q=4s&}A0j0XhE*I#;R|B+@Cp-%TaAY1d9Ri8yId_Xf& zeTiT~8n#SBj#P0gGab#Y(n43kQxAR}OU5_-7) znhs?L94!; z5e1e&kouG0H+<0=iGUzEVSOYLE<9L2*oa4fcd7ojoP&pi%;iuXI2reLZ>_%N@+ zw`}*Yb^cT8A2HPCQDS5eq1!Bzp4;uAc{exHm9Q~>gn`6KGU%;S!0FRk>h+%?KiZFO z1&I{RwNoXxNDvFA1;0%X8P7!>Ar>sa;~QkB;_NRcxlx$*k;5QPvDL)~#BAriTZu2A(Pw9G}H`#86q*&s_AZpniqg~E^_bA3_k9}SKR z(W6QoQe=4|$dJOZ15)ukos7Vb%OI&Jjn~e~XFcQ+xb=ctXgj@=B8KzVOAqAK^%8}q zix~x2_*kz-x(0y3_7iE+`Kg0FC?5ia1i#A9@sFvQ4tu6ys_Z7do)X4$&+iBHK-!(X zX&Ts>O!b}#DjJ_7iWaxC!AO7h2E3WK%rz0xQ9j{(C4+^81PVo~AzQfTBq3|{8%}5S z7*2Xa9mm3A1KPy)HAfs8XBhtg81P@dx92G5OJ>bsZ-q{n=|qvlkVNHa#VMHibqyeN z5K%J|P&1F3%5OQYAL-Uhoy$86ni*L4pXLUTV;AE?OZ8yUzv&g~h~jZ_q2OpO*p<7f zrB~5t6xhx(0<|-%Y`Vfj4){^ds32q09Lj0-hC?Fh3JjY`91RhH!rexpl!r6*ral63yvw_v@CMGBs{#dfTQO^2q{ zMoj%kt_-rZbrzX-jomV`Hmi`>!9E5qHI8+4HiUjq=HAy96}V{yiPS$794GRw@bexw z-|{qDqJDut_OqH6K6j0^R>5mrY;;mdjhosF$vbW1Y_k)j&zv}ANS9Lls-sfg3 zagsoG)q#OHO(r5~{bG2E+O0O>-S{U(bfbFC&TREp*z{n7C}(j3$U7?LPvn5D{&HIE zOh52@liXXt8lS$W!SQ-bsMhAndY4})f7k3*18O$Gj;rhv1P(Y##FGlTXzF3+T4UqH zM%dNYS`$;p#KYB%s|psFksZ4I&(s^uvV}`N1dLeDFK}$#b5Vb7h2<0LutS$LfYp#0e(eJtOy)EcD_WK zPjd1oe}a@ph`=tjh<{oy3c`dLi#stj z_ccB7z>WT_43B!4Ca6`kq{7M^{wJq_Sg998T;F`YB&maX%554ME{g{1UX=NO#)tsWcb;@Y2(854u)CyYwAd;yl(@-=dX)frqhsqzd8gF%{jjBE=YF%ZAPZfNF|9Z7 zLGY_epwD7?XaPBY)%54HsOal+c>`dzB)RaKhDn@8j7EX5u13K_D$M*wn+^lBtGDvz zTL^*JHREo^?>S)wqQ6=uryv`az2n@NbPW?=MBP&%M4;HzlK(XS84NzHLLt`qdxth5 zoc52HJjTZeJzkQDmhBn1a;0T|Xz5r3Bx`{+B3bwWGCvQF+$a0o!+PTARSzI+NYIT` zMsQJOY-);Kfy)H9y~@C@-*F>m$xBOwieH0J&C>ZMbQfBXI72ELxw;ZKxwv3o&WPlEYvALm4=+ae28o`sEKSY+xX z-{|#E7`v%0%9tvd&Qxc~VM<@WH5U;W0S@u;{kJ}1pK zmE4D8mzOh8JmQ+%1a5-+lN!T? zZg_dFra%~nO-RgPN-w&>_{T51kP{7s76`ZE&WtM+bOF~3k%7)0EM$(xFF*tL_sxicF)edsNLo)b_gjf#{+HHvqkEU@&3GcBv)k7Vq_Wz>ZgGVx$_elDzmMaWEF z4e2|Uz2I;Q<(D08qJPhZ@d0p^_BZ`niq2{(C)2kFZD2RBTVhs__G&68RvJE*nNh}` z^)g~u66+1QdbApbPl-fV3DT_(dja2GHmd{g^R;`Q0 z{f1mPVJ|X=SjCNM6B}zWG=`B>w=XUbMTwqrkoL{(5}ckQGtaTtUjpg7t4)87Tx+7! zdT>+3G<&+6+QBQAv#N$kB_*>=#aXdkdikd95^D<+utqfTb?eg1v0b(K%TSd)@c^oq z;JWS97~iqdbnc_jVT+LoRESoFb?hC6l}R4)ozl^>gO1tK zzEZQMOc6qO$Z&DusW6>V%r`%L2DgLvr9CqgeO1>z4e|WRc~)W(^M&U|T=mU#!Cl-p z$z5U$;EnbWgLrx|dZD~wf?g84`+U4IOXvfj-Y+@s7B=Q~3l2((H<0u>NT_;!V{={S z!5VvD&aewV-!P0qykK|;Nx(DjrPUuJAi(x-Fz@f9K;+lhG`iQW*x+R!n0qE>7IwuR z$A+eWpCY*fUr4E*Yb2i+v*hgTNKKWd&C!2V0Xq$Xv0&Nm!!;_~pLc#|;__3Ej_I!1 zuXh@JXBrS8w0ZQFfV=;yG*rTa_jc`5*wob2$7^A1BXH`PFNY~-rL7*~_Wt=^+LO!_ z1?U{cti*j8AP*gUF>WROLrR4%?Mfo!9bBd(422~w-?nyJ8D_pB>r`BWU%BTQ{oKR5 zZTlT(731sv*`0&Pgo}XPTh;_eZUfgMm!req5Jt!I4vqF`3hrr&=Ebwq`1nUd()YpU z#pX>>7kwaZWD4rHQ^QSP&o__0ZKc(iW?)m32WReDj%bZ*Bz4cw$>oZvc+d;v_sY$K zMr9Skc0lck15nr}8jou4;Eb9cmFZmcG|%U*$(PRG?z`WcB1y==7gUYF0NtOOiHfjG z7Z<9Vu`?5Dul@q^hImaP5BL#XjcRjS-#t#V_-r`Kcs^>^j(IRDV1rThH6luj%biKYst zU~w(h5H8LWh^Qzzzk-MJgLEMnya7VF<6-N#kElohM1P5fmmey+4JU|FzG>$ENZ6u2q&nNaUGE@w(RiMG6_RQqIs6z-yn zeKypMSQhY$pUca-EX$2p7nT(6kksDl%HEU9-W$rQGENlK{N_SZB&yPZv}_9;Y6e^! zp292(P;*@lx{m3KgmbI;Mf#H#7!znTAaSj7oiIDRYRzID&<}c}vm&O$jAja+6lm5J z_@_+9U6rsFbv>gF6_WbABFaf-QG^FhfN9T3cSgFLR#pn4YIW4;3<7DTdW_f?ZpjK2 zqOx6xU}3!dB}O<3+L8v~?r;UvXl^cQH1TjaX+rVUh;6<>;{(pzx? ziE(bk?mRz?f952g_`nrOB${imYKnxY!rUQ-#=1cd-SWO3PBf;ljky1lk z2(dE|m9t-VSU^i`R8LUfeu=J{6dC7#om77O+0^FbAfl_It`ik%n^a+?bG)ik7jr7V zn3^`{G1Y0r7yfVqbZ8E0-Q+9HlKLQb@WhjY_#jWS6%kB(%=UG}kuH@=?|l7I9+wZ1 zB8PtY_r>CXXy2tqZ|Zl_dicqVPB|~UF!y=uHR$2X-^{5z<0vDd(LZL9H}tM>c>$L2OUVG zqU{Py-@5?$GNGPXWvpYkiKA0!3f^wLxZh`Jn2N$SV|JIkULT@oh#N-2Gp)mb28d@v z@gr}SuKxUK;Ch8p0vfvLJF?ZgnriWxX}lh{DPx~gl)Pc|FokVE$k9zwV~R$B`$T-? zeB}uplU$&PMsBT^^6x;ixWSY%ktVD7&OmWHop$=E-%Xwc9)8ds9hqKghyKuxC+k|a zO9Fr8DfA~;$n=eLDmS$&yV|t<9BQA7Bm#*Qf%r6JK+A_JHDmUzmE8&(r=yITcgRqj zcLu|EOeUe*h*#W-6`L;DCiG?`Cs-r!*X{WCqDO-#;Ym`Yt3|B82&fOgpMxg3Z z(1G0O9p%AEqKkJ~aLSuiQn-`P);j3e>QEVcvk0k1QA|AWZ zBl#y^99FCS$N=ltpEO3yjZ_M_CpSE5{;Tthz>Mo7g{MRsBTn)uVI8Hk1S^HJD4IBg zmB=7-P;%uX9cKyc99um#w__^N7`Q@{lSyu?Z{zj)%~BVbTd(mAl%gIcjB+elq&T>U z$Dt%8Pu$nfzr8#PvEVD7ZBeg$ViM5VWn?f@s$x!!3(WdrwvfL}IN+Be@Ph5sWBNFN z#k@{26>u%Q(%zWu`z+8Kq@G_6SQ7P#$SFpIVy?d|itO!)aV^*`NnT2# z5YV=6Q4{0fKA(S>?jqoc5wL_SX&tf;D%70Fr})SYyd33WeZ?gWZAHx^)TUU;_!TeE z${j8NMoT$xh1AR7iJ6+1aJVcluoK%3v|xM*jEXpy-X~9dqvqZcx0LA33fL;-t7WAO zE)dOz_xh!(?~1o*3LEx4wgf^egbEx4f#BGmWuoH=9ZL6G0O4F`CmZ77r_)sMccKkC zEB4f23%{^~elcYJWDFFZOXXN0^;8m?ku3U_=t||s-7A)s$)Ji@7b^Pk-gDIz;Hsz8 zu46BLV2MgxfxY+B)_E(rG*Rx0(g-2t1IjQV*#pXmL(+@Xe$((9O>5G=;8)L8TqxDQ z1PH__RR=e=1=-=lzPa)L@$1lnZJR;U^MeFuQ2O$~B40Nto9Y(E1`(Lc%!tDk^tE4>ME7xfa)u90|e!?X&wi2O$Il8tgm?6yBFK%s?5* z6p6C~v{dXso8&C{xV#CvV`Xg|YKsGvm^MtyB*w9A_pVVjH+MP+At&DG!$dvqJ7FnqTvPj-jHaAt7DlS%-vo$kz%G4k0(I$iY?d8 zDTX2JFQLB+;o+SMV1jW?Y7*JQ9~7ZhlwSh>9LDEo z?#R1R|Kdrt2s^N}akF0s<9aWfxbCM=){+c);n)EcR>tQK0{~F_h01~y!tKmLhzhx5 zd;lex?Ag4Sp;g{#;jqyZWYEscCNg%6;MqA9jT`4CE8gY8Dfy~D@awaUfo>bqA+mSeJ7mY!4 z<|nIE3kCj^$yWql+Q9UJRO6l}sZy9Eve#yDo%ay<%pm6R9)_>)u-I9MmFyDp@xZwn z==HLC`OJ2CY7y7ymgLpa`D^n9rTa()@H@@Xt4&@6)`@?5m=fk ze~NAd;u@T>z7|^9{qZX>O@| z+5Gyy)?&o<7~EPN^Qd_d3yG>rz(*0(+H`<+&SOxlMa8pZfJn}SCesCzYswr$vi8Fa zyD8|2VpjyTyrcA8m3Yk9BrGi|N5}|TN-N}}#jk=>NEg1bT zw;|NZ9;Hu&;wk5)2jNF7AZKU|M1yJbliW9%fM#En4h`R4*hfLTrg4maC}DJbZrA7Kn!8{+t!rUj zB+p$IRD$*Z+hz3psEv5UwIdg+%CWP?3#vtG6AVhuE@0vpW}{XlTjuCg(v|XqW{UD$ zx)AHKpozQGC@2JXl(`0>;G{2p+ZkVb4@+{~;)P|B>kcGaDQ8Hk-NFZ2&=4_;eGtI= zj#Ar*1Yg!s^ovoGkb%QCzGKT;-KdLX@yTMTH}18tn}_$8@^*P-5eK8PRg_JQEvd5h zj0fn6G^0-PNkB18H6!t?a{f#prm(?6tw%UTg2YR(7b*sw+P`>2Doge0?|Ecaw$-ds zP{0M@bGY2;i_4&rzS7EK&zUgaa zy3@GPcXZrMj-D${rJm+vP-=2#A@zN0T9(4v2M5k>H~Wv0m5Pgo-zEBco_>Bzu};%k zih4ToXOSQOr=Od{5B^B6qci(;Q0dWEhSxna4%-u!#H+!$xgTIajw()uD;0Ij_(Th( zUOiGcM{{NQ+(QV&xwrBzduol&N?(X#Xabrc-$D}qs_-fkmv4hK;G2u43x<{D*#TUR zAKf$Iz}g>2cU{vRed$YyJ;A}R@Fzu{#?dc^fA7!rGCh@%!+%)et~D={#|fJDRCy4+ zPk%h_#U&A+$9;SNDtRpEzn zdN^+R_uzCRA~<`{ce{!5ABlQ4`q+2hvrtC&_UxWML|tBH(%90TSL^h4QxH@$NVEjg zkvwu{dTrOAQd7>Mc45`IT>5}6VwfNN;3z}IKNn``P?n_tu5EUNW~HDPw)c67`uUwL z`V`154j;0zPIu)gx+eURX?|P7z@rSRW%a1D_^yVWEsq}Y*K*tq7#7Z7xChPV`%O-W zf)204z{+Xkz7m|51-Ur{^B8~KIE85H>-ClCPjh$H))4Fuq=Lu6R+)1DzogKw(Sw^TNX8`Om|=SoX>AAmXj%_ z28%P)W?SJOi%qt9ll*tTAmcINcI2)YHK>84Fx=6S3U>v7(}gXD3mbnVH!6!ggnku! z&T!MO9yFG-qRvqF=%#GgSo%M@hwvQ@eT?6RY9hF=v0&xShLxw=+J0=FznvI!=qZr@ zE}tonRfoB+5POk&xc3zLrWIZ>@OH8-$oBh1#(n>o=o~$)r+rL?{O67Syr!duJ76t< zHmDI7QEapkNN)yN_soEJ4sP`rJ~X7|K)qfusGN(JZ>$mnPzf|K3``J)BD$fSrYTc` zDz$t&xkMpS4hN|CT#*`fSET)dztnw8t2V-vh^}^iKFvXD0y^$_c8!e80*@Y-1Ce#! zS?dviuLXON7bDxt&$nK?LMp$nn1lp8Y$@LVo=%Aaa|%L1n#KQpT) z8rQw+;Fevc*7@1=_~u;P6E$pFp>52X)|n&g8`fthX6>uyU538JPAm@Uoz{mA=g;`N4HI5VxG0iwkg#?!?jVrLbntvx6xMO zQMWM=sOetAxm=FC5S9zE5SGWbB&oZ=4X&}O@!dk@mtyiP4rMN`=45_V`vE1~#Kwph zOn0EC^{W$uK0}Hsvt2_uB_ds8xta3JiI)Sx!C$?F$W?K>BKpQ`jNP4!_W_Mo4FRLi zvV+98^%F>!J><+<#iy_m=`Ytv_Mz;nDsa4Wz`u@#7we{tyEEzfa_>NOrN-Hax+W@E z+&f;}(dQwYxo-cvoHzaFj}~t7ZaVK|FDavQipIoqE2eU~=_L1}1@29?SFvN?QI2#t z+|`*RIVUB5;G(-es)(4tGTBBbe+Xe|8~qQ?&K`?^m*w}~h3pC&D7W)dJtUI6AA?_2 zle7;ofORSY=}Op11L`bD6~5|Ix~+dvD{m+^^TT>w%-Oxtg2p<~r}b6Hvw|^r0`2OW z%jqD*aCKM;f=i3GmPo2b0|i(qe&iRb*|hWUlhKtayK3V}HvUSGc1^6FCDs0s_s9t4 zn>;*Asjji@G)dE@u)7@l0FK&msJ#^1LE2l=WKZ4fY< z<2-?V4ZL0q6kKA=3d7ugN;w)e7Hls`Wbcp?Txt$uY|KOqg`rH?Go+HrzRdaLuo&o8 zA_JK;`!>^%XVTuc+LD8V5Bobh3nqHpiWv3Ge1H0L{{H3d^072F#vB2fsS5h#$;K3> z#LA?M@W^2_^r|ixinbp97CuU|8v%&q+v=@U7L0G(zf!F6@_q5&ZZgy}q3hxjE^QBY+sNK8&;1&c zrpZ8^Vud%0m9^PmIs4-t%BCBTg(DjZV{HlyXn8m|+Ri3pTa<93uMUb)eVm_u4G2=1 z^&t0^R$fh5i5WKG@x`tE#g!j^0NY|(k6+v8f~kMC67y)n1I=jV(f22ssHc4obnp!> zG=R1xj)3%*vGALMGhn*I{pkKXmpDwww}j661BPh2wWXzvHGR>Uj(Uj`Vj5?Z!7M>1 zVt7^2AI2~BtqGb|!l&ClCp)bP`oIn16bqv{p(KVCDCR4^6B&&*iw^jeESx4=JHnOh zE9M)HXuL#g1enEfz2+r8UMav`!M8KEQ_lT+m(TehmQcTurs4Y#fDJfORv zXb=t<$1>wiUr}u>3vqw$*AtzS@~hCqksQa|{Hg>bhynDmp{UyY41`nXv7M+UNV%*t zW!k7s3thcv5}U;18WQ$6s5~T+BN35Fh!Qb$=OKISC>Jst4wwV+^>5h9GEF>#QejYp z3yZg4xqy2;X%ipIeTHw6hUCzG8o&c7eT~+$u&&klb7D%-QW!pv{e=O-nC)pPwhdvc z%Ca_LD~qbOmU*by-*_?wMBE8GVR!vREmic9A%Jr?RRJzzmD`6#Ik1#ID4qq0 z&6yhGv&Zt6ooTt`)$gta-{lLm0=4+dLsQ+zujur{o2FWS^up9j1h4o~TZ`9Xdi=rq zy=B@g+|>_t6;AYMf1&z;%N%B4F8Tqrsu%hqLccq@9u3R=VeH$N{roPGOFAhCi&R_k zI+blr6yij!PAg6Ln@#QYC=%#;EJFBmo%L=8;y8@^CIuipvNJRXdu*$|F80TVotQz= zL^28|>*p`3N^{OELapAy8B-c=wwQY;soN2jw4Y>UjFYA4+dpWDtk{F_%kluQQL*W0 zbuiI06#f2RWe~u~-+qoj9;xlnWP&FPljJI7*A-icQ}ON38-G;!FBb$I@#PBD z=I-5-8ns8K1dld;oDSsCEsk>?3Yn`gzb;vk0*)@$v5qQXV_8eSLfEKRC5fBL4klx~=H|3rn*zgS z_!=59&EMoglZd5YrACk}CfO85q{>qzJlZeD8x@lQD^9H#B9o^blWx1NPN+tCgH^6f zEjfk>EBd7v5E>2i2LBlu0SPJAke-C7EgaKAVPPC9|8+ZwcBFV5#%Mh-@5_lYvfwHB zAO)nIiOwu}ow>LP=8!pDAp17yF^-AOGWxI4v0}^`21I|kYm(R&p%8zhvN$8r>~c61 z_H*Ktk87A50tNO1lu=b%!qjg>>w}kdPZN$W&QlNl1K`fU8v*BZVf}onZ>YPvGHJ=H z5g1#HW8L80D4QP|ah|%O#l!n9(%*bPKaRDL))xJ0r!he8&UL4;>kJOK@`RJ#_t$yW zruZn__!5ws(g%x8k&>Osmi^MjYV`_E3%lj{4lmEwK@?wgU*-MO46~TqXzCR~o<*)Z zXq_S@NR7V*EHpoeCieZ#!*J2FXKh*Gyw!S483k01eT*b|YgQ7>-GyMe3V?l+7O=J2 zluL#*b4o?(TMyuoF-HpyKyl^1g2zyj&b!KDp2W)&WKR}Gi<)b=GIDd^ zZe8ty2`V-fk21@S%%lD-LjNVYdWRDY#$tGYMc$AF=+ou9B4+S4Fa2%Yn;y;tkF4>%N4-=TgL)h~J=6I@16sY)M47_U3fA&dQBL)>PTPhnC z;MmBMx+(I{L6j5t6y%kfgpz;Ef`2K3s$ud?`^$0_)xd%k*0k$7V&{zVT;UmuLrgO$ zq?#-UoK2j`nLeP}L;3ysb-x7d&*e>ARz4Q~LB=mSF2)Tn{{zY~*X3chch_mV826{*sAe}qry!S(r> zt{SJ63zNQUn4isol@m<*ID%A}xW& z`CuI8MgU>Z^zvj>))O-4Qe)!P@2~g z_O}Wl9*6VnIIG&Qz|N4pb2rS%$gsSVjyJhMI1(8%5NF8F$9B!ak|NuaWEd009VC5k zK$PU~FEM^CgpZi!FcW-+kJ-XEu{iIXHX6F)*V7%q$Z=<#tA70YFc1J#p(Mp;JWOUx}@BEQg_c3M3e`{@gZr2@&MFbG*x+Ns-S zOsZq^;PxD!FnK7+xSjKdhqxtTZJ6n0fezRLMFSD)M@(Idce^ExOdSfHN@kBtZ`&8M zHW44=juG7lT>UWqVz1Cwg8pQ%H)V#fH$d_`Bd#Ef(74BPexTGzhNzE~ox6qS5t||s zky`^qf7xooz)q}uhAeY~@4FN5Ti2oUjq6+b6AJgr3Qs8CEj-cCtxNFa-2t=&uzmKv zNve0R{=ul{u{CbVI14K!hMWi|fJ z{S-t6X$`-i^~Ou|{+zj)4_OZN*GC&q#U(aP&di6&HZ1X_cKY~}WioNxeY`hk7#0hbHrSNC4E)l*&D#o!)gZFa)DA3@3IRUY40qxq)? zk|c0O#uJwrBYj>OGec2b>)n=VMB!YY>hF0^XcW5$6JQMNXpUu(^%33K%0#7d7*ZN< z%vuXWoKH`}nGp*Mj<{a%Z#GAE4Zq!1sp~v#*(4r(bfdW1K;Bf|4WIX$T!&3tX}}o$ z7J@ha*0A4qnGLW4kaV`bwLo3Lo+wf8p~>+V-)-ScM>^8kOU=+HE9j5Q93kC~V;aNn zt6)U&2Nlp0{Z^FzMzdS}e?pbG6`AeUd9QWqa}W_n2LH}CnP^6`ez|`46-i5>mT2hQ zwD$T-Y3^5bG0!#M%(-b(TK}_grKO+6uGA3xH6iI`GaJZ>UYV2TaHhp# zf^n<@=4ogY zT$$h?UwLx4@=9jom-kEhxBcq?Ocmkjh%t-=j+NDR*|W}bwbO8c>R-;>lFqgPmAS4A}Sx$g(B0)fvpJvT(h?oEDH? z!UJ~ECM>bgrVH0a<&2LkJqUTR=D|E|I^?#pDsEpYihKajX&w`GBL~%FFy*dEoKjfk z{InBAn?u<+L#b9Z8&nAYdH(yA72l~!yD=40j*lW+fMuqD0ShxH zHnv_#uFhbc|L|7pvK(b1yU%--P!stp_KS{qLV8vh+n*;b@;Z@SGkzQ}=A1uMO3uY3 zbYnkGV^j-G4+}3vDCM9C+)1}Ga#Gd8lxf$sKXkloWHyRF$j3Tm_TtBUs@dNOm-6#= zkkU*#zF=LhZ~_K*an;P|O49z9IX0r-p23 z?i-F7kOA2;yvI4hWvDL+7U0?x?mAvz=`amLiq1P;s9Ow$1U>wp9@EP4EOv}F^v=yJ zXut_Wim1A%FffsMO;zBZAfVR3SrC5TYyo|I32JvS8<(HhOk-TUO{*~B99zKjv%4pxiQBsyOY=uQ8e_PX5A z!Am?BDd%ZQ5KUb;H38{9aiN!Qj_io04H^gMI%ra5XgtWM1CaBY{bKCAu` zV|uJ)MXH82x2ocLaLVJ7<4$$L$^GM!4}4N%#1dig&_gNq=wJLHdJ|E@I8BmJQ~QTx zVO62E z5yslq-B=`2ewSc@*K`$=t$6xp%Zg=O9n~edz@i7SV>_F}CTZ-etu;!iWT6s=sc?fN za_;v5?jI>Ssj5I7(eH<5kRr~?n&*VMBW2#$y|R<@I4i#e@y*Rj?S2rH&D3EA^EC3J zRI$NN(ZM{VGSN;Cc%E9(2wPgMtUv(S0qtHWePr8lm$($rlgm9Lw#$EO_nULEwGla? zb*~Azf1ARf+>gPx^f;ry$ARL|jQmBQcs~%4bLt3!HT9;A|Kg8`z^0>dND*EM;CW-m z@(*L1?T+Pu0%fuLa`Q$ioeu}t8`Br9>r+>2kriPb)1ph$B0~$QX{3!2QxdiI^ z$5ycTG}Pev3>^ax5d5ra=_n5{_L8=>ce$^|OivuRMIUx$2;BaiY4$WLxjKu zyTEEg1cs1QleBQCHwY`B9=k1sS;xeUq3PWBWKVnzkntNsBw1<)S*jPBoO-`%ZUm)a zKl%hIVto*qj}&H|+xO@=%yWY2m z@r$PQ;fY~;hFKRg0_@-WH4qdyac#;BTGe*aU*Z{dt`6%TDoSZS&p(1LQlRSL#ym;| zrPumBGwosrPh3%cr$7Fs0H{ge_#C5GRUC8^6T%<-!#siX{W6*M!l(@;a{MM@0m@lEgCWM_LIT6-D@88HH5S}B~w0^q0y?U#8sfNl*&2c-fIGxxz!au^Y z+-VMnI)dH}4}Uq9n3m?;A%3jnrbP9REdQ<-D5monH^OZ1U~)LKZ_E5#{!`?TPm#+4 zjd`}mv;LhZ@rLgC+!?AO*sEyd{E+nWBbO3vGVo6wj4@XSFgZU-U>RPxx$;(Q4HDHu z(4OCM7+;5vcw(>~VnwCw7-1jQ4LGrOchY9lUs{m8d_fB}S6Coz*54po%weg!SFG`M zu$%z-&qN4;V%kIpSyAF5(`dr*HtNMzn@L4t`7`t@dt80F>m;q)Dg``PWg5CZ{hyk< zL8j1M$9Tx!r$DqJ|4(1)UfBiR{SDrB#@tvae`9T;JPT@CBp8ECkYmM~kZ z{|0c#1e14aPta@DM=yN#6zbMyppObh3+$_!%YFK8aBW(ME-EITlrce^F`=Xp$aAUm zF(qgA49fogKA6II6LoS&H+7;_ZPa?5=}wGa(!F3{#!RV+2r2bw4n{$T6uew-Jb!kfLKkdhK6jf_%VHmyxm*bY^CUN_a6<;3J3>{fOYIuS@jI=;P-X z*)dmb0%}WhNbO{Ni=A~vCk1=Yr>{s3xwZLQ;~3LJmWSCA_9yCwG2c9w86o>SUtJ-U z`H1vrjozG+?eB!aHsC9EB9;LG|KfO`$AsYL!z$!-O$1`ok6SPqXqG@bQFLu=6`Oe^ zk-Aj;FgNOJQ{jy25if2=hLVF;@KsgYl!F7r9w1nw{|=6zV5Q{}NmC`gRdSuHOgeY! zg@^}cxm)-uzxpZiz^;o09n=|^e==2xdRUGvC{e|a-M7rUwBD}i9@#37VCh>ypP-wV z)G;h!n@Mrr7*M5OG8t%CT*8gNT|>VhkGb57%2R9>A)oHP>pxRCbp(RMow;mTFV`uo5Yws*HBeeY-;9Dx; zr?EUMfPf1{w2$jfRQTf+h6TUSvj)j^v(?^nOV|Zz;frC9m~Ni3ug;gRP+WN8;zE(d zd3uj%vwz};5_84pc{bnMRCB^3KFIJ2;cGqso`Z*rjh*AOBPu(H6dFKQ-|$}a{}59`0W<%(V{;GykOvO;-{PR1 zSpZqHA|zl0@Sj9cXaL*)L(GK%03hKxxwu$axY$@(xc{ZSc>)1Y0uBlg0dRvVH315s z-^c*G|9}IHBLI*<6)*rFka9V|y!jFZPzU~R>o`FyH~{A6b##Cn!yAS{Y#7_t){3qwX;s8P<0#yB%c`V!<%xtX8pet1XIf#i30MmR%1WU7flj7gWLBhb#VV@QSpn#&1 z00f}vBtTNL@;AUB03_TDpaD%we&(M8E8q*rr~`lo3a|mNH%EE^B%q-H4yK7&AOI4; zws{%^-~@nbBml6W=|TV_XgUs{0|EyEw*LoJ*5ZcVSuB5AB$X|E40dW2&v1Z>S0L#B~l#Bhpl7k);#rWyw|MBqOVE;0v z**^`S_3y*re~UCDWC2|Nk)Zz@NH`q;1wv&4;52^@7xw?F=#!7$%vb>E`)9a6r#^Df zv-ALIRSc<`%IK6)l(BKP)7(eY{7zQdAvZgPX4$M~X{DCQapB>PJe?=Hgrk!Jy2jye~NS>BI$7nt6C{Wdk zlZ;Y`umhHkK!3S8pIRW0RY#?bSAS?pX(GM7bBmjrqrxXAH delta 66858 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 z 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 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; var sx : Number = bone.ascaleX; var sy : Number = bone.ascaleY; - if (stretch) { + if (compress || stretch) { + switch (bone.data.transformMode) { + case TransformMode.noScale: + case TransformMode.noScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } var b : Number = bone.data.length * sx, dd : Number = Math.sqrt(tx * tx + ty * ty); if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { var s : Number = (dd / b - 1) * alpha + 1; sx *= s; if (uniform) sy *= s; - } + } } bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); } diff --git a/spine-as3/spine-as3/src/spine/IkConstraintData.as b/spine-as3/spine-as3/src/spine/IkConstraintData.as index 104c955d1..dd5fb03cd 100644 --- a/spine-as3/spine-as3/src/spine/IkConstraintData.as +++ b/spine-as3/spine-as3/src/spine/IkConstraintData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Interpolation.as b/spine-as3/spine-as3/src/spine/Interpolation.as index 2208cd1d5..49798ef3c 100644 --- a/spine-as3/spine-as3/src/spine/Interpolation.as +++ b/spine-as3/spine-as3/src/spine/Interpolation.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/MathUtils.as b/spine-as3/spine-as3/src/spine/MathUtils.as index c2ca6c3fa..4da40b06c 100644 --- a/spine-as3/spine-as3/src/spine/MathUtils.as +++ b/spine-as3/spine-as3/src/spine/MathUtils.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/PathConstraint.as b/spine-as3/spine-as3/src/spine/PathConstraint.as index 61d4fdbac..91908bd8a 100644 --- a/spine-as3/spine-as3/src/spine/PathConstraint.as +++ b/spine-as3/spine-as3/src/spine/PathConstraint.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/PathConstraintData.as b/spine-as3/spine-as3/src/spine/PathConstraintData.as index f7bc6f89a..69801ced9 100644 --- a/spine-as3/spine-as3/src/spine/PathConstraintData.as +++ b/spine-as3/spine-as3/src/spine/PathConstraintData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Polygon.as b/spine-as3/spine-as3/src/spine/Polygon.as index f3282d29a..a363b1f9a 100644 --- a/spine-as3/spine-as3/src/spine/Polygon.as +++ b/spine-as3/spine-as3/src/spine/Polygon.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Pool.as b/spine-as3/spine-as3/src/spine/Pool.as index 9ac9e8a16..f965007cc 100644 --- a/spine-as3/spine-as3/src/spine/Pool.as +++ b/spine-as3/spine-as3/src/spine/Pool.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Poolable.as b/spine-as3/spine-as3/src/spine/Poolable.as index 0bb22718b..cb50569d7 100644 --- a/spine-as3/spine-as3/src/spine/Poolable.as +++ b/spine-as3/spine-as3/src/spine/Poolable.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/PositionMode.as b/spine-as3/spine-as3/src/spine/PositionMode.as index 76c9e62cb..1eb910a21 100644 --- a/spine-as3/spine-as3/src/spine/PositionMode.as +++ b/spine-as3/spine-as3/src/spine/PositionMode.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/RotateMode.as b/spine-as3/spine-as3/src/spine/RotateMode.as index 3865b7f93..e2692e7a7 100644 --- a/spine-as3/spine-as3/src/spine/RotateMode.as +++ b/spine-as3/spine-as3/src/spine/RotateMode.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Skeleton.as b/spine-as3/spine-as3/src/spine/Skeleton.as index e64d94fad..e8e0165a5 100644 --- a/spine-as3/spine-as3/src/spine/Skeleton.as +++ b/spine-as3/spine-as3/src/spine/Skeleton.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { @@ -108,9 +108,9 @@ package spine { for (i = 0, n = bones.length; i < n; i++) { bone = bones[i]; bone._sorted = bone.data.skinRequired; - bone.active = !bone._sorted; + bone.active = !bone._sorted; } - + if (skin != null) { var skinBones : Vector. = skin.bones; for (i = 0, n = this.skin.bones.length; i < n; i++) { @@ -159,8 +159,8 @@ package spine { for (i = 0, n = bones.length; i < n; i++) sortBone(bones[i]); } - - static function contains(list : Vector., element : ConstraintData) : Boolean { + + private static function contains(list : Vector., element : ConstraintData) : Boolean { for (var i : Number = 0; i < list.length; i++) if (list[i] == element) return true; return false; @@ -169,7 +169,7 @@ package spine { private function sortIkConstraint(constraint : IkConstraint) : void { constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); if (!constraint.active) return; - + var target : Bone = constraint.target; sortBone(target); @@ -191,7 +191,7 @@ package spine { private function sortPathConstraint(constraint : PathConstraint) : void { constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); if (!constraint.active) return; - + var slot : Slot = constraint.target; var slotIndex : Number = slot.data.index; var slotBone : Bone = slot.bone; @@ -222,7 +222,7 @@ package spine { private function sortTransformConstraint(constraint : TransformConstraint) : void { constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); if (!constraint.active) return; - + sortBone(constraint.target); var constrained : Vector. = constraint.bones; @@ -323,9 +323,9 @@ package spine { for each (var ikConstraint : IkConstraint in ikConstraints) { ikConstraint.mix = ikConstraint._data.mix; ikConstraint.softness = ikConstraint._data.softness; - ikConstraint.bendDirection = ikConstraint._data.bendDirection; + ikConstraint.bendDirection = ikConstraint._data.bendDirection; ikConstraint.compress = ikConstraint._data.compress; - ikConstraint.stretch = ikConstraint._data.stretch; + ikConstraint.stretch = ikConstraint._data.stretch; } for each (var transformConstraint : TransformConstraint in transformConstraints) { diff --git a/spine-as3/spine-as3/src/spine/SkeletonBinary.as b/spine-as3/spine-as3/src/spine/SkeletonBinary.as index 0e48c01eb..e3cdf30d6 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonBinary.as +++ b/spine-as3/spine-as3/src/spine/SkeletonBinary.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { @@ -64,7 +64,7 @@ package spine { public var attachmentLoader : AttachmentLoader; public var scale : Number = 1; private var linkedMeshes : Vector. = new Vector.(); - + private static const BONE_ROTATE : int = 0; private static const BONE_TRANSLATE : int = 1; private static const BONE_SCALE : int = 2; @@ -84,13 +84,13 @@ package spine { public function SkeletonBinary(attachmentLoader : AttachmentLoader = null) { this.attachmentLoader = attachmentLoader; - } + } /** @param object A String or ByteArray. */ public function readSkeletonData(object : *) : SkeletonData { if (object == null) throw new ArgumentError("object cannot be null."); if (!(object is ByteArray)) throw new ArgumentError("Object must be a ByteArray"); - + var scale : Number = this.scale; var skeletonData : SkeletonData = new SkeletonData(); @@ -100,6 +100,8 @@ package spine { skeletonData.hash = input.readString(); skeletonData.version = input.readString(); + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = input.readFloat(); skeletonData.y = input.readFloat(); skeletonData.width = input.readFloat(); @@ -133,7 +135,7 @@ package spine { boneData.scaleY = input.readFloat(); boneData.shearX = input.readFloat(); boneData.shearY = input.readFloat(); - boneData.length = input.readFloat() * scale; + boneData.length = input.readFloat() * scale; boneData.transformMode = TransformMode.values[input.readInt(true)]; boneData.skinRequired = input.readBoolean(); if (nonessential) boneData.color.setFromRgba8888(input.readInt32()); @@ -275,7 +277,7 @@ package spine { skeletonData.animations.push(readAnimation(input, input.readString(), skeletonData)); return skeletonData; } - + private function readSkin (input: BinaryInput, skeletonData: SkeletonData, defaultSkin: Boolean, nonessential: Boolean): Skin { var skin : Skin = null; var i : int = 0; @@ -300,7 +302,7 @@ package spine { skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); for (i = 0, n = input.readInt(true); i < n; i++) skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); - + slotCount = input.readInt(true); } @@ -314,12 +316,12 @@ package spine { } return skin; } - + private function readAttachment(input: BinaryInput, skeletonData: SkeletonData, skin: Skin, slotIndex: Number, attachmentName: String, nonessential: Boolean): Attachment { var scale : Number = this.scale; var i : int = 0; var n : int = 0; - + var vertexCount : int; var vertices : Vertices; var path: String; @@ -386,7 +388,7 @@ package spine { var triangles : Vector. = readUnsignedShortArray(input); vertices = readVertices(input, vertexCount); var hullLength : int = input.readInt(true); - var edges : Vector. = null; + var edges : Vector. = null; if (nonessential) { edges = readShortArray(input); width = input.readFloat(); @@ -417,7 +419,7 @@ package spine { color = input.readInt32(); var skinName : String = input.readStringRef(); var parent : String = input.readStringRef(); - var inheritDeform : Boolean = input.readBoolean(); + var inheritDeform : Boolean = input.readBoolean(); if (nonessential) { width = input.readFloat(); height = input.readFloat(); @@ -489,7 +491,7 @@ package spine { } return null; } - + private function readVertices (input: BinaryInput, vertexCount: int): Vertices { var verticesLength : int = vertexCount << 1; var vertices : Vertices = new Vertices(); @@ -517,7 +519,7 @@ package spine { private function readFloatArray (input: BinaryInput, n: Number, scale: Number): Vector. { var i : int = 0; - var array : Vector. = new Vector.(); + var array : Vector. = new Vector.(); array.length = n; if (scale == 1) { for (i = 0; i < n; i++) @@ -537,7 +539,7 @@ package spine { array[i] = input.readShort(); return array; } - + private function readUnsignedShortArray (input: BinaryInput): Vector. { var n : int = input.readInt(true); var array : Vector. = new Vector.(); @@ -546,7 +548,7 @@ package spine { array[i] = input.readShort(); return array; } - + private function readAnimation (input: BinaryInput, name: String, skeletonData: SkeletonData): Animation { var timelines : Vector. = new Vector.(); var scale : Number = this.scale; @@ -756,7 +758,7 @@ package spine { deform = new Vector.(); deform.length = deformLength; } else - deform = vertices; + deform = vertices; } else { var v : int, vn: int; deform = new Vector.(); @@ -858,7 +860,7 @@ package spine { public function setCurve (timeline: CurveTimeline, frameIndex: Number, cx1: Number, cy1: Number, cx2: Number, cy2: Number) : void { timeline.setCurve(frameIndex, cx1, cy1, cx2, cy2); } - + } } diff --git a/spine-as3/spine-as3/src/spine/SkeletonBounds.as b/spine-as3/spine-as3/src/spine/SkeletonBounds.as index bda67db3a..09643e504 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonBounds.as +++ b/spine-as3/spine-as3/src/spine/SkeletonBounds.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SkeletonClipping.as b/spine-as3/spine-as3/src/spine/SkeletonClipping.as index 0d0be9ebb..1407c2008 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonClipping.as +++ b/spine-as3/spine-as3/src/spine/SkeletonClipping.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SkeletonData.as b/spine-as3/spine-as3/src/spine/SkeletonData.as index cc9269738..a1f4236b5 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonData.as +++ b/spine-as3/spine-as3/src/spine/SkeletonData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SkeletonJson.as b/spine-as3/spine-as3/src/spine/SkeletonJson.as index da5f62486..3c0aad8be 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonJson.as +++ b/spine-as3/spine-as3/src/spine/SkeletonJson.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { @@ -68,7 +68,7 @@ package spine { public function SkeletonJson(attachmentLoader : AttachmentLoader = null) { this.attachmentLoader = attachmentLoader; } - + private function getFloatValue(object : Object, key: String, defaultValue : Number) : Number {; var hasKey : Boolean = object.hasOwnProperty(key); return hasKey ? Number(object[key]) : defaultValue; @@ -96,6 +96,8 @@ package spine { if (skeletonMap) { skeletonData.hash = skeletonMap["hash"]; skeletonData.version = skeletonMap["spine"]; + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = skeletonMap["x"] || 0; skeletonData.y = skeletonMap["y"] || 0; skeletonData.width = skeletonMap["width"] || 0; @@ -142,7 +144,7 @@ package spine { var dark : String = slotMap["dark"]; if (dark) { - slotData.darkColor = new Color(toColor(dark, 0), toColor(dark, 1), toColor(dark, 2), 0); + slotData.darkColor = new Color(toColor(dark, 0), toColor(dark, 1), toColor(dark, 2), 0); } slotData.attachmentName = slotMap["attachment"]; @@ -238,12 +240,12 @@ package spine { } // Skins. - var skins : Object = root["skins"]; + var skins : Object = root["skins"]; for (var i : Number = 0; i < skins.length; i++) { var ii : Number; var skinMap : Object = skins[i]; var skin : Skin = new Skin(skinMap["name"]); - + if (skinMap["bones"]) { for (ii = 0; ii < skinMap["bones"].length; ii++) { var boneData : BoneData = skeletonData.findBone(skinMap["bones"][ii]); @@ -251,7 +253,7 @@ package spine { skin.bones.push(boneData); } } - + if (skinMap["ik"]) { for (ii = 0; ii < skinMap["ik"].length; ii++) { var constraint : ConstraintData = skeletonData.findIkConstraint(skinMap["ik"][ii]); @@ -259,15 +261,15 @@ package spine { skin.constraints.push(constraint); } } - - if (skinMap["transform"]) { + + if (skinMap["transform"]) { for (ii = 0; ii < skinMap["transform"].length; ii++) { var constraint : ConstraintData = skeletonData.findTransformConstraint(skinMap["transform"][ii]); if (constraint == null) throw new Error("Skin transform constraint not found: " + skinMap["transform"][ii]); skin.constraints.push(constraint); } } - + if (skinMap["path"]) { for (ii = 0; ii < skinMap["path"].length; ii++) { var constraint : ConstraintData = skeletonData.findPathConstraint(skinMap["path"][ii]); @@ -275,7 +277,7 @@ package spine { skin.constraints.push(constraint); } } - + for (slotName in skinMap.attachments) { var slot : SlotData = skeletonData.findSlot(slotName); var slotEntry : Object = skinMap.attachments[slotName]; @@ -417,9 +419,9 @@ package spine { if (slot == null) throw new Error("Clipping end slot not found: " + end); clip.endSlot = slot; } - + vertexCount = int(map["vertexCount"]); - readVertices(map, clip, vertexCount << 1); + readVertices(map, clip, vertexCount << 1); color = map["color"]; if (color) { clip.color.setFrom(toColor(color, 0), toColor(color, 1), toColor(color, 2), toColor(color, 3)); @@ -792,7 +794,7 @@ package spine { static private function toColor(hexString : String, colorIndex : int) : Number { if (hexString.length != 8 && hexString.length != 6) throw new ArgumentError("Color hexidecimal length must be 6 or 8, received: " + hexString); - return parseInt(hexString.substring(colorIndex * 2, colorIndex * 2 + 2), 16) / 255; + return parseInt(hexString.substring(colorIndex * 2, colorIndex * 2 + 2), 16) / 255; } static private function getFloatArray(map : Object, name : String, scale : Number) : Vector. { diff --git a/spine-as3/spine-as3/src/spine/Skin.as b/spine-as3/spine-as3/src/spine/Skin.as index 5ffe897c9..49151e181 100644 --- a/spine-as3/spine-as3/src/spine/Skin.as +++ b/spine-as3/spine-as3/src/spine/Skin.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SkinEntry.as b/spine-as3/spine-as3/src/spine/SkinEntry.as index 17c64b987..e02eeba64 100644 --- a/spine-as3/spine-as3/src/spine/SkinEntry.as +++ b/spine-as3/spine-as3/src/spine/SkinEntry.as @@ -1,3 +1,32 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + package spine { import spine.attachments.Attachment; @@ -12,4 +41,4 @@ package spine { this.attachment = attachment; } } -} \ No newline at end of file +} diff --git a/spine-as3/spine-as3/src/spine/Slot.as b/spine-as3/spine-as3/src/spine/Slot.as index 4ea1e3160..9af450503 100644 --- a/spine-as3/spine-as3/src/spine/Slot.as +++ b/spine-as3/spine-as3/src/spine/Slot.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SlotData.as b/spine-as3/spine-as3/src/spine/SlotData.as index 328f9dc47..4b2919930 100644 --- a/spine-as3/spine-as3/src/spine/SlotData.as +++ b/spine-as3/spine-as3/src/spine/SlotData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/SpacingMode.as b/spine-as3/spine-as3/src/spine/SpacingMode.as index 3d6b02d4d..bedea0c44 100644 --- a/spine-as3/spine-as3/src/spine/SpacingMode.as +++ b/spine-as3/spine-as3/src/spine/SpacingMode.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/TransformConstraint.as b/spine-as3/spine-as3/src/spine/TransformConstraint.as index fb71f550d..97174d764 100644 --- a/spine-as3/spine-as3/src/spine/TransformConstraint.as +++ b/spine-as3/spine-as3/src/spine/TransformConstraint.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/TransformConstraintData.as b/spine-as3/spine-as3/src/spine/TransformConstraintData.as index c5618192e..1a3990454 100644 --- a/spine-as3/spine-as3/src/spine/TransformConstraintData.as +++ b/spine-as3/spine-as3/src/spine/TransformConstraintData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/TransformMode.as b/spine-as3/spine-as3/src/spine/TransformMode.as index d701a8219..6d947afd0 100644 --- a/spine-as3/spine-as3/src/spine/TransformMode.as +++ b/spine-as3/spine-as3/src/spine/TransformMode.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Triangulator.as b/spine-as3/spine-as3/src/spine/Triangulator.as index d9da27398..042b07369 100644 --- a/spine-as3/spine-as3/src/spine/Triangulator.as +++ b/spine-as3/spine-as3/src/spine/Triangulator.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Updatable.as b/spine-as3/spine-as3/src/spine/Updatable.as index f18d415f5..480dd9d2b 100644 --- a/spine-as3/spine-as3/src/spine/Updatable.as +++ b/spine-as3/spine-as3/src/spine/Updatable.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/Vertex.as b/spine-as3/spine-as3/src/spine/Vertex.as index c6cabb7da..57e32fb9d 100644 --- a/spine-as3/spine-as3/src/spine/Vertex.as +++ b/spine-as3/spine-as3/src/spine/Vertex.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/VertexEffect.as b/spine-as3/spine-as3/src/spine/VertexEffect.as index 01f0e0891..d3c8fc397 100644 --- a/spine-as3/spine-as3/src/spine/VertexEffect.as +++ b/spine-as3/spine-as3/src/spine/VertexEffect.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine { diff --git a/spine-as3/spine-as3/src/spine/animation/Animation.as b/spine-as3/spine-as3/src/spine/animation/Animation.as index f09070b1b..3482ef8f5 100644 --- a/spine-as3/spine-as3/src/spine/animation/Animation.as +++ b/spine-as3/spine-as3/src/spine/animation/Animation.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/AnimationState.as b/spine-as3/spine-as3/src/spine/animation/AnimationState.as index b344bf17d..3153b3f9b 100644 --- a/spine-as3/spine-as3/src/spine/animation/AnimationState.as +++ b/spine-as3/spine-as3/src/spine/animation/AnimationState.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/AnimationStateData.as b/spine-as3/spine-as3/src/spine/animation/AnimationStateData.as index 97c350620..c3aea476c 100644 --- a/spine-as3/spine-as3/src/spine/animation/AnimationStateData.as +++ b/spine-as3/spine-as3/src/spine/animation/AnimationStateData.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as b/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as index 2297ea892..ba2a7422a 100644 --- a/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/AttachmentTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as b/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as index 4ecf8a9f6..230997a1d 100644 --- a/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ColorTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as b/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as index e48872b66..01c8cf5e9 100644 --- a/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/CurveTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as index ee1153871..e02ed03a6 100644 --- a/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/DeformTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as b/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as index 32fbf6c5a..c59aae3f8 100644 --- a/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/DrawOrderTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/EventQueue.as b/spine-as3/spine-as3/src/spine/animation/EventQueue.as index e57a1cc8a..4764336c6 100644 --- a/spine-as3/spine-as3/src/spine/animation/EventQueue.as +++ b/spine-as3/spine-as3/src/spine/animation/EventQueue.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/EventTimeline.as b/spine-as3/spine-as3/src/spine/animation/EventTimeline.as index 3d55ad777..87eaafcaa 100644 --- a/spine-as3/spine-as3/src/spine/animation/EventTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/EventTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/EventType.as b/spine-as3/spine-as3/src/spine/animation/EventType.as index 3fd1b386d..1cd67c9b2 100644 --- a/spine-as3/spine-as3/src/spine/animation/EventType.as +++ b/spine-as3/spine-as3/src/spine/animation/EventType.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as b/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as index 34609a801..50abd367c 100644 --- a/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/IkConstraintTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/Listeners.as b/spine-as3/spine-as3/src/spine/animation/Listeners.as index 3ac9584c9..ceffc4964 100644 --- a/spine-as3/spine-as3/src/spine/animation/Listeners.as +++ b/spine-as3/spine-as3/src/spine/animation/Listeners.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/MixBlend.as b/spine-as3/spine-as3/src/spine/animation/MixBlend.as index 243eaf0ca..a818c437c 100644 --- a/spine-as3/spine-as3/src/spine/animation/MixBlend.as +++ b/spine-as3/spine-as3/src/spine/animation/MixBlend.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/MixDirection.as b/spine-as3/spine-as3/src/spine/animation/MixDirection.as index 71d1d8995..cf2b0ef6d 100644 --- a/spine-as3/spine-as3/src/spine/animation/MixDirection.as +++ b/spine-as3/spine-as3/src/spine/animation/MixDirection.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as index c71ef83da..96f2025cc 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintMixTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as index 19d4765cb..478da9d38 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintPositionTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as b/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as index 0910ed66e..860000f4b 100644 --- a/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/PathConstraintSpacingTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as b/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as index a0a0749ff..1b13a01c3 100644 --- a/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/RotateTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as b/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as index 8a6dd6379..69bd638f8 100644 --- a/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ScaleTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as b/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as index a9600112c..4cb0339f3 100644 --- a/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/ShearTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/Timeline.as b/spine-as3/spine-as3/src/spine/animation/Timeline.as index 355a1ffcb..75cb52efd 100644 --- a/spine-as3/spine-as3/src/spine/animation/Timeline.as +++ b/spine-as3/spine-as3/src/spine/animation/Timeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/TimelineType.as b/spine-as3/spine-as3/src/spine/animation/TimelineType.as index a21c01b09..441929065 100644 --- a/spine-as3/spine-as3/src/spine/animation/TimelineType.as +++ b/spine-as3/spine-as3/src/spine/animation/TimelineType.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/TrackEntry.as b/spine-as3/spine-as3/src/spine/animation/TrackEntry.as index 8d03e88c5..e4495772f 100644 --- a/spine-as3/spine-as3/src/spine/animation/TrackEntry.as +++ b/spine-as3/spine-as3/src/spine/animation/TrackEntry.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as b/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as index 82291ff23..7a56f158d 100644 --- a/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/TransformConstraintTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as b/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as index 8da316c85..b8f363376 100644 --- a/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/TranslateTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/animation/TwoColorTimeline.as b/spine-as3/spine-as3/src/spine/animation/TwoColorTimeline.as index 90d120390..44efd9e46 100644 --- a/spine-as3/spine-as3/src/spine/animation/TwoColorTimeline.as +++ b/spine-as3/spine-as3/src/spine/animation/TwoColorTimeline.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.animation { diff --git a/spine-as3/spine-as3/src/spine/atlas/Atlas.as b/spine-as3/spine-as3/src/spine/atlas/Atlas.as index 23ed93ac7..f4142ba69 100644 --- a/spine-as3/spine-as3/src/spine/atlas/Atlas.as +++ b/spine-as3/spine-as3/src/spine/atlas/Atlas.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/AtlasPage.as b/spine-as3/spine-as3/src/spine/atlas/AtlasPage.as index 3043bcae7..52c0e0c28 100644 --- a/spine-as3/spine-as3/src/spine/atlas/AtlasPage.as +++ b/spine-as3/spine-as3/src/spine/atlas/AtlasPage.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/AtlasRegion.as b/spine-as3/spine-as3/src/spine/atlas/AtlasRegion.as index ce0173900..331358709 100644 --- a/spine-as3/spine-as3/src/spine/atlas/AtlasRegion.as +++ b/spine-as3/spine-as3/src/spine/atlas/AtlasRegion.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/Format.as b/spine-as3/spine-as3/src/spine/atlas/Format.as index e62783b29..05a742682 100644 --- a/spine-as3/spine-as3/src/spine/atlas/Format.as +++ b/spine-as3/spine-as3/src/spine/atlas/Format.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/TextureFilter.as b/spine-as3/spine-as3/src/spine/atlas/TextureFilter.as index 227becdc4..8e07f7366 100644 --- a/spine-as3/spine-as3/src/spine/atlas/TextureFilter.as +++ b/spine-as3/spine-as3/src/spine/atlas/TextureFilter.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/TextureLoader.as b/spine-as3/spine-as3/src/spine/atlas/TextureLoader.as index ab01e156f..a6c65a980 100644 --- a/spine-as3/spine-as3/src/spine/atlas/TextureLoader.as +++ b/spine-as3/spine-as3/src/spine/atlas/TextureLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/atlas/TextureWrap.as b/spine-as3/spine-as3/src/spine/atlas/TextureWrap.as index 3f6a3ee54..3dfe73f17 100644 --- a/spine-as3/spine-as3/src/spine/atlas/TextureWrap.as +++ b/spine-as3/spine-as3/src/spine/atlas/TextureWrap.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.atlas { diff --git a/spine-as3/spine-as3/src/spine/attachments/AtlasAttachmentLoader.as b/spine-as3/spine-as3/src/spine/attachments/AtlasAttachmentLoader.as index 1eb2632a8..9c522cf65 100644 --- a/spine-as3/spine-as3/src/spine/attachments/AtlasAttachmentLoader.as +++ b/spine-as3/spine-as3/src/spine/attachments/AtlasAttachmentLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/Attachment.as b/spine-as3/spine-as3/src/spine/attachments/Attachment.as index 7ebe78d13..3e3cb5ca9 100644 --- a/spine-as3/spine-as3/src/spine/attachments/Attachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/Attachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/AttachmentLoader.as b/spine-as3/spine-as3/src/spine/attachments/AttachmentLoader.as index 141384c3e..d470f0f29 100644 --- a/spine-as3/spine-as3/src/spine/attachments/AttachmentLoader.as +++ b/spine-as3/spine-as3/src/spine/attachments/AttachmentLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/AttachmentType.as b/spine-as3/spine-as3/src/spine/attachments/AttachmentType.as index c3bb84ffe..b1131a7de 100644 --- a/spine-as3/spine-as3/src/spine/attachments/AttachmentType.as +++ b/spine-as3/spine-as3/src/spine/attachments/AttachmentType.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/BoundingBoxAttachment.as b/spine-as3/spine-as3/src/spine/attachments/BoundingBoxAttachment.as index ea78d8f57..561b3a22f 100644 --- a/spine-as3/spine-as3/src/spine/attachments/BoundingBoxAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/BoundingBoxAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/ClippingAttachment.as b/spine-as3/spine-as3/src/spine/attachments/ClippingAttachment.as index d9e448000..c94fa5d48 100644 --- a/spine-as3/spine-as3/src/spine/attachments/ClippingAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/ClippingAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/MeshAttachment.as b/spine-as3/spine-as3/src/spine/attachments/MeshAttachment.as index b2d09a08e..5f5f1c737 100644 --- a/spine-as3/spine-as3/src/spine/attachments/MeshAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/MeshAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/PathAttachment.as b/spine-as3/spine-as3/src/spine/attachments/PathAttachment.as index 5166894e0..530da2e23 100644 --- a/spine-as3/spine-as3/src/spine/attachments/PathAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/PathAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/PointAttachment.as b/spine-as3/spine-as3/src/spine/attachments/PointAttachment.as index 413696f33..e14ecc6a0 100644 --- a/spine-as3/spine-as3/src/spine/attachments/PointAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/PointAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/RegionAttachment.as b/spine-as3/spine-as3/src/spine/attachments/RegionAttachment.as index 90f1b63da..909adad59 100644 --- a/spine-as3/spine-as3/src/spine/attachments/RegionAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/RegionAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as b/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as index add8ee622..89ad45d27 100644 --- a/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as +++ b/spine-as3/spine-as3/src/spine/attachments/VertexAttachment.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.attachments { diff --git a/spine-as3/spine-as3/src/spine/flash/FlashTextureLoader.as b/spine-as3/spine-as3/src/spine/flash/FlashTextureLoader.as index cedf2f97a..e7376927d 100644 --- a/spine-as3/spine-as3/src/spine/flash/FlashTextureLoader.as +++ b/spine-as3/spine-as3/src/spine/flash/FlashTextureLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.flash { diff --git a/spine-as3/spine-as3/src/spine/flash/SkeletonAnimation.as b/spine-as3/spine-as3/src/spine/flash/SkeletonAnimation.as index c5834e0f1..1cae1c2a4 100644 --- a/spine-as3/spine-as3/src/spine/flash/SkeletonAnimation.as +++ b/spine-as3/spine-as3/src/spine/flash/SkeletonAnimation.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.flash { diff --git a/spine-as3/spine-as3/src/spine/flash/SkeletonSprite.as b/spine-as3/spine-as3/src/spine/flash/SkeletonSprite.as index 830dc590c..d076834ab 100644 --- a/spine-as3/spine-as3/src/spine/flash/SkeletonSprite.as +++ b/spine-as3/spine-as3/src/spine/flash/SkeletonSprite.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.flash { diff --git a/spine-as3/spine-as3/src/spine/interpolation/Pow.as b/spine-as3/spine-as3/src/spine/interpolation/Pow.as index 503092eb2..45db88fb2 100644 --- a/spine-as3/spine-as3/src/spine/interpolation/Pow.as +++ b/spine-as3/spine-as3/src/spine/interpolation/Pow.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.interpolation { diff --git a/spine-as3/spine-as3/src/spine/interpolation/PowOut.as b/spine-as3/spine-as3/src/spine/interpolation/PowOut.as index decc25c4e..0107c3280 100644 --- a/spine-as3/spine-as3/src/spine/interpolation/PowOut.as +++ b/spine-as3/spine-as3/src/spine/interpolation/PowOut.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.interpolation { diff --git a/spine-as3/spine-as3/src/spine/vertexeffects/JitterEffect.as b/spine-as3/spine-as3/src/spine/vertexeffects/JitterEffect.as index 7e5f7340c..836034751 100644 --- a/spine-as3/spine-as3/src/spine/vertexeffects/JitterEffect.as +++ b/spine-as3/spine-as3/src/spine/vertexeffects/JitterEffect.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.vertexeffects { diff --git a/spine-as3/spine-as3/src/spine/vertexeffects/SwirlEffect.as b/spine-as3/spine-as3/src/spine/vertexeffects/SwirlEffect.as index 366153126..7d6fd4663 100644 --- a/spine-as3/spine-as3/src/spine/vertexeffects/SwirlEffect.as +++ b/spine-as3/spine-as3/src/spine/vertexeffects/SwirlEffect.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.vertexeffects { diff --git a/spine-c/spine-c/include/spine/Animation.h b/spine-c/spine-c/include/spine/Animation.h index 850b96dcd..6bdaedd68 100644 --- a/spine-c/spine-c/include/spine/Animation.h +++ b/spine-c/spine-c/include/spine/Animation.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ANIMATION_H_ diff --git a/spine-c/spine-c/include/spine/AnimationState.h b/spine-c/spine-c/include/spine/AnimationState.h index 865b55a2b..c83c28b83 100644 --- a/spine-c/spine-c/include/spine/AnimationState.h +++ b/spine-c/spine-c/include/spine/AnimationState.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ANIMATIONSTATE_H_ diff --git a/spine-c/spine-c/include/spine/AnimationStateData.h b/spine-c/spine-c/include/spine/AnimationStateData.h index b3e04aa88..bd11b09a6 100644 --- a/spine-c/spine-c/include/spine/AnimationStateData.h +++ b/spine-c/spine-c/include/spine/AnimationStateData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ANIMATIONSTATEDATA_H_ diff --git a/spine-c/spine-c/include/spine/Array.h b/spine-c/spine-c/include/spine/Array.h index 3b873b590..1d1cb171b 100644 --- a/spine-c/spine-c/include/spine/Array.h +++ b/spine-c/spine-c/include/spine/Array.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ARRAY_H diff --git a/spine-c/spine-c/include/spine/Atlas.h b/spine-c/spine-c/include/spine/Atlas.h index 2d0d98221..4cafcd28a 100644 --- a/spine-c/spine-c/include/spine/Atlas.h +++ b/spine-c/spine-c/include/spine/Atlas.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ATLAS_H_ diff --git a/spine-c/spine-c/include/spine/AtlasAttachmentLoader.h b/spine-c/spine-c/include/spine/AtlasAttachmentLoader.h index 1ae10e13b..a68111407 100644 --- a/spine-c/spine-c/include/spine/AtlasAttachmentLoader.h +++ b/spine-c/spine-c/include/spine/AtlasAttachmentLoader.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ATLASATTACHMENTLOADER_H_ diff --git a/spine-c/spine-c/include/spine/Attachment.h b/spine-c/spine-c/include/spine/Attachment.h index 0d25742dd..1f7d943f8 100644 --- a/spine-c/spine-c/include/spine/Attachment.h +++ b/spine-c/spine-c/include/spine/Attachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/AttachmentLoader.h b/spine-c/spine-c/include/spine/AttachmentLoader.h index e9bd5dbc2..a78976042 100644 --- a/spine-c/spine-c/include/spine/AttachmentLoader.h +++ b/spine-c/spine-c/include/spine/AttachmentLoader.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ATTACHMENTLOADER_H_ diff --git a/spine-c/spine-c/include/spine/Bone.h b/spine-c/spine-c/include/spine/Bone.h index 07d331ecd..eb3e89baf 100644 --- a/spine-c/spine-c/include/spine/Bone.h +++ b/spine-c/spine-c/include/spine/Bone.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_BONE_H_ diff --git a/spine-c/spine-c/include/spine/BoneData.h b/spine-c/spine-c/include/spine/BoneData.h index 019a6fda4..33a42fcc5 100644 --- a/spine-c/spine-c/include/spine/BoneData.h +++ b/spine-c/spine-c/include/spine/BoneData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_BONEDATA_H_ diff --git a/spine-c/spine-c/include/spine/BoundingBoxAttachment.h b/spine-c/spine-c/include/spine/BoundingBoxAttachment.h index 24f9f5257..80e94160f 100644 --- a/spine-c/spine-c/include/spine/BoundingBoxAttachment.h +++ b/spine-c/spine-c/include/spine/BoundingBoxAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_BOUNDINGBOXATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/ClippingAttachment.h b/spine-c/spine-c/include/spine/ClippingAttachment.h index 7ebbaa013..7f2d782c9 100644 --- a/spine-c/spine-c/include/spine/ClippingAttachment.h +++ b/spine-c/spine-c/include/spine/ClippingAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_CLIPPINGATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/Color.h b/spine-c/spine-c/include/spine/Color.h index 54f689bb9..92be27ef2 100644 --- a/spine-c/spine-c/include/spine/Color.h +++ b/spine-c/spine-c/include/spine/Color.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_COLOR_H_ diff --git a/spine-c/spine-c/include/spine/Event.h b/spine-c/spine-c/include/spine/Event.h index 82bfd873e..75ea3c6bc 100644 --- a/spine-c/spine-c/include/spine/Event.h +++ b/spine-c/spine-c/include/spine/Event.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_EVENT_H_ diff --git a/spine-c/spine-c/include/spine/EventData.h b/spine-c/spine-c/include/spine/EventData.h index 2202d9719..099df4266 100644 --- a/spine-c/spine-c/include/spine/EventData.h +++ b/spine-c/spine-c/include/spine/EventData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_EVENTDATA_H_ diff --git a/spine-c/spine-c/include/spine/IkConstraint.h b/spine-c/spine-c/include/spine/IkConstraint.h index 0b8dcbb46..079095864 100644 --- a/spine-c/spine-c/include/spine/IkConstraint.h +++ b/spine-c/spine-c/include/spine/IkConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_IKCONSTRAINT_H_ diff --git a/spine-c/spine-c/include/spine/IkConstraintData.h b/spine-c/spine-c/include/spine/IkConstraintData.h index 6ccd92e49..361315e98 100644 --- a/spine-c/spine-c/include/spine/IkConstraintData.h +++ b/spine-c/spine-c/include/spine/IkConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_IKCONSTRAINTDATA_H_ diff --git a/spine-c/spine-c/include/spine/MeshAttachment.h b/spine-c/spine-c/include/spine/MeshAttachment.h index b9c25dd66..d7464a9e3 100644 --- a/spine-c/spine-c/include/spine/MeshAttachment.h +++ b/spine-c/spine-c/include/spine/MeshAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_MESHATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/PathAttachment.h b/spine-c/spine-c/include/spine/PathAttachment.h index 7150fb363..179c78f4a 100644 --- a/spine-c/spine-c/include/spine/PathAttachment.h +++ b/spine-c/spine-c/include/spine/PathAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_PATHATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/PathConstraint.h b/spine-c/spine-c/include/spine/PathConstraint.h index 7b3baead3..a929ce2e2 100644 --- a/spine-c/spine-c/include/spine/PathConstraint.h +++ b/spine-c/spine-c/include/spine/PathConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_PATHCONSTRAINT_H_ diff --git a/spine-c/spine-c/include/spine/PathConstraintData.h b/spine-c/spine-c/include/spine/PathConstraintData.h index 060b54ac8..2f4f96e88 100644 --- a/spine-c/spine-c/include/spine/PathConstraintData.h +++ b/spine-c/spine-c/include/spine/PathConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_PATHCONSTRAINTDATA_H_ diff --git a/spine-c/spine-c/include/spine/PointAttachment.h b/spine-c/spine-c/include/spine/PointAttachment.h index c7a847c68..6fed456dd 100644 --- a/spine-c/spine-c/include/spine/PointAttachment.h +++ b/spine-c/spine-c/include/spine/PointAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_POINTATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/RegionAttachment.h b/spine-c/spine-c/include/spine/RegionAttachment.h index 88b5e8235..f313e10cb 100644 --- a/spine-c/spine-c/include/spine/RegionAttachment.h +++ b/spine-c/spine-c/include/spine/RegionAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_REGIONATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/Skeleton.h b/spine-c/spine-c/include/spine/Skeleton.h index 24e3759c3..2dd03cb87 100644 --- a/spine-c/spine-c/include/spine/Skeleton.h +++ b/spine-c/spine-c/include/spine/Skeleton.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETON_H_ diff --git a/spine-c/spine-c/include/spine/SkeletonBinary.h b/spine-c/spine-c/include/spine/SkeletonBinary.h index 4692479fd..ca93bddbe 100644 --- a/spine-c/spine-c/include/spine/SkeletonBinary.h +++ b/spine-c/spine-c/include/spine/SkeletonBinary.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONBINARY_H_ diff --git a/spine-c/spine-c/include/spine/SkeletonBounds.h b/spine-c/spine-c/include/spine/SkeletonBounds.h index 9a1f144de..f32857d9c 100644 --- a/spine-c/spine-c/include/spine/SkeletonBounds.h +++ b/spine-c/spine-c/include/spine/SkeletonBounds.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONBOUNDS_H_ diff --git a/spine-c/spine-c/include/spine/SkeletonClipping.h b/spine-c/spine-c/include/spine/SkeletonClipping.h index 1d59c3db8..45701c4bb 100644 --- a/spine-c/spine-c/include/spine/SkeletonClipping.h +++ b/spine-c/spine-c/include/spine/SkeletonClipping.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONCLIPPING_H diff --git a/spine-c/spine-c/include/spine/SkeletonData.h b/spine-c/spine-c/include/spine/SkeletonData.h index 380aa88c1..3b7e78826 100644 --- a/spine-c/spine-c/include/spine/SkeletonData.h +++ b/spine-c/spine-c/include/spine/SkeletonData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONDATA_H_ diff --git a/spine-c/spine-c/include/spine/SkeletonJson.h b/spine-c/spine-c/include/spine/SkeletonJson.h index 41a13ab9d..f4b9dd61b 100644 --- a/spine-c/spine-c/include/spine/SkeletonJson.h +++ b/spine-c/spine-c/include/spine/SkeletonJson.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONJSON_H_ diff --git a/spine-c/spine-c/include/spine/Skin.h b/spine-c/spine-c/include/spine/Skin.h index 73e05f9e3..dd521ccb5 100644 --- a/spine-c/spine-c/include/spine/Skin.h +++ b/spine-c/spine-c/include/spine/Skin.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKIN_H_ diff --git a/spine-c/spine-c/include/spine/Slot.h b/spine-c/spine-c/include/spine/Slot.h index 0d14733e0..a3e080c95 100644 --- a/spine-c/spine-c/include/spine/Slot.h +++ b/spine-c/spine-c/include/spine/Slot.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SLOT_H_ diff --git a/spine-c/spine-c/include/spine/SlotData.h b/spine-c/spine-c/include/spine/SlotData.h index cac369d12..69b598e15 100644 --- a/spine-c/spine-c/include/spine/SlotData.h +++ b/spine-c/spine-c/include/spine/SlotData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SLOTDATA_H_ diff --git a/spine-c/spine-c/include/spine/TransformConstraint.h b/spine-c/spine-c/include/spine/TransformConstraint.h index eb761ab00..3e572d0ad 100644 --- a/spine-c/spine-c/include/spine/TransformConstraint.h +++ b/spine-c/spine-c/include/spine/TransformConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_TRANSFORMCONSTRAINT_H_ diff --git a/spine-c/spine-c/include/spine/TransformConstraintData.h b/spine-c/spine-c/include/spine/TransformConstraintData.h index b4d572e8b..bc0f98715 100644 --- a/spine-c/spine-c/include/spine/TransformConstraintData.h +++ b/spine-c/spine-c/include/spine/TransformConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_TRANSFORMCONSTRAINTDATA_H_ diff --git a/spine-c/spine-c/include/spine/Triangulator.h b/spine-c/spine-c/include/spine/Triangulator.h index 86125e1f9..efb5dc08e 100644 --- a/spine-c/spine-c/include/spine/Triangulator.h +++ b/spine-c/spine-c/include/spine/Triangulator.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_TRIANGULATOR_H diff --git a/spine-c/spine-c/include/spine/VertexAttachment.h b/spine-c/spine-c/include/spine/VertexAttachment.h index 6ad9a9b67..82393363d 100644 --- a/spine-c/spine-c/include/spine/VertexAttachment.h +++ b/spine-c/spine-c/include/spine/VertexAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_VERTEXATTACHMENT_H_ diff --git a/spine-c/spine-c/include/spine/VertexEffect.h b/spine-c/spine-c/include/spine/VertexEffect.h index 148619676..4f094b45a 100644 --- a/spine-c/spine-c/include/spine/VertexEffect.h +++ b/spine-c/spine-c/include/spine/VertexEffect.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_VERTEXEFFECT_H_ diff --git a/spine-c/spine-c/include/spine/dll.h b/spine-c/spine-c/include/spine/dll.h index cef97153c..2fe016030 100644 --- a/spine-c/spine-c/include/spine/dll.h +++ b/spine-c/spine-c/include/spine/dll.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SHAREDLIB_H diff --git a/spine-c/spine-c/include/spine/extension.h b/spine-c/spine-c/include/spine/extension.h index 8adc932e2..67221f0b8 100644 --- a/spine-c/spine-c/include/spine/extension.h +++ b/spine-c/spine-c/include/spine/extension.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ /* diff --git a/spine-c/spine-c/include/spine/spine.h b/spine-c/spine-c/include/spine/spine.h index e0a36e16f..ed2d586a0 100644 --- a/spine-c/spine-c/include/spine/spine.h +++ b/spine-c/spine-c/include/spine/spine.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SPINE_H_ diff --git a/spine-c/spine-c/src/spine/Animation.c b/spine-c/spine-c/src/spine/Animation.c index 35a80e5ff..8a53361c4 100644 --- a/spine-c/spine-c/src/spine/Animation.c +++ b/spine-c/spine-c/src/spine/Animation.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/AnimationState.c b/spine-c/spine-c/src/spine/AnimationState.c index dfe634ed5..7fc675dde 100644 --- a/spine-c/spine-c/src/spine/AnimationState.c +++ b/spine-c/spine-c/src/spine/AnimationState.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/AnimationStateData.c b/spine-c/spine-c/src/spine/AnimationStateData.c index e352cd0ae..d1b12128f 100644 --- a/spine-c/spine-c/src/spine/AnimationStateData.c +++ b/spine-c/spine-c/src/spine/AnimationStateData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Array.c b/spine-c/spine-c/src/spine/Array.c index 5612c3f04..c9a5313e7 100644 --- a/spine-c/spine-c/src/spine/Array.c +++ b/spine-c/spine-c/src/spine/Array.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Atlas.c b/spine-c/spine-c/src/spine/Atlas.c index ddf66a2e0..1a196bf10 100644 --- a/spine-c/spine-c/src/spine/Atlas.c +++ b/spine-c/spine-c/src/spine/Atlas.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/AtlasAttachmentLoader.c b/spine-c/spine-c/src/spine/AtlasAttachmentLoader.c index 3c9664529..73488cc31 100644 --- a/spine-c/spine-c/src/spine/AtlasAttachmentLoader.c +++ b/spine-c/spine-c/src/spine/AtlasAttachmentLoader.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Attachment.c b/spine-c/spine-c/src/spine/Attachment.c index 9c3c14170..9cf5a44f6 100644 --- a/spine-c/spine-c/src/spine/Attachment.c +++ b/spine-c/spine-c/src/spine/Attachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/AttachmentLoader.c b/spine-c/spine-c/src/spine/AttachmentLoader.c index f692548d6..41bcb9afb 100644 --- a/spine-c/spine-c/src/spine/AttachmentLoader.c +++ b/spine-c/spine-c/src/spine/AttachmentLoader.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Bone.c b/spine-c/spine-c/src/spine/Bone.c index 42fdc1400..d177d9d6d 100644 --- a/spine-c/spine-c/src/spine/Bone.c +++ b/spine-c/spine-c/src/spine/Bone.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/BoneData.c b/spine-c/spine-c/src/spine/BoneData.c index e5423dcc1..8fde114e1 100644 --- a/spine-c/spine-c/src/spine/BoneData.c +++ b/spine-c/spine-c/src/spine/BoneData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/BoundingBoxAttachment.c b/spine-c/spine-c/src/spine/BoundingBoxAttachment.c index d75910626..3cafb7313 100644 --- a/spine-c/spine-c/src/spine/BoundingBoxAttachment.c +++ b/spine-c/spine-c/src/spine/BoundingBoxAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/ClippingAttachment.c b/spine-c/spine-c/src/spine/ClippingAttachment.c index f07d4a6c7..71167fa5d 100644 --- a/spine-c/spine-c/src/spine/ClippingAttachment.c +++ b/spine-c/spine-c/src/spine/ClippingAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Color.c b/spine-c/spine-c/src/spine/Color.c index 1d9d5ad74..3116d8ad9 100644 --- a/spine-c/spine-c/src/spine/Color.c +++ b/spine-c/spine-c/src/spine/Color.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Event.c b/spine-c/spine-c/src/spine/Event.c index 8ae98123b..0a76d1319 100644 --- a/spine-c/spine-c/src/spine/Event.c +++ b/spine-c/spine-c/src/spine/Event.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/EventData.c b/spine-c/spine-c/src/spine/EventData.c index 6923654cd..b6267fe89 100644 --- a/spine-c/spine-c/src/spine/EventData.c +++ b/spine-c/spine-c/src/spine/EventData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/IkConstraint.c b/spine-c/spine-c/src/spine/IkConstraint.c index d5549d7e8..a917fd775 100644 --- a/spine-c/spine-c/src/spine/IkConstraint.c +++ b/spine-c/spine-c/src/spine/IkConstraint.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include @@ -70,19 +70,47 @@ void spIkConstraint_apply(spIkConstraint *self) { void spIkConstraint_apply1 (spBone* bone, float targetX, float targetY, int /*boolean*/ compress, int /*boolean*/ stretch, int /*boolean*/ uniform, float alpha) { spBone* p = bone->parent; - float id, x, y, tx, ty, rotationIK, sx, sy, s; + float pa = p->a, pb = p->b, pc = p->c, pd = p->d; + float rotationIK = -bone->ashearX - bone->arotation; + float tx = 0, ty = 0, sx = 0, sy = 0, s = 0; 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; + + switch(bone->data->transformMode) { + case SP_TRANSFORMMODE_ONLYTRANSLATION: + tx = targetX - bone->worldX; + ty = targetY - bone->worldY; + break; + case SP_TRANSFORMMODE_NOROTATIONORREFLECTION: { + float ps; + rotationIK += ATAN2(pc, pa) * RAD_DEG; + ps = ABS(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; + } + default: { + float x = targetX - p->worldX, y = targetY - p->worldY; + float d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone->ax; + ty = (y * pa - x * pc) / d - bone->ay; + } + } + rotationIK += ATAN2(ty, tx) * RAD_DEG; + if (bone->ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; sx = bone->ascaleX; sy = bone->ascaleY; if (compress || stretch) { - float b = bone->data->length * sx, dd = SQRT(tx * tx + ty * ty); + float b, dd; + switch(bone->data->transformMode) { + case SP_TRANSFORMMODE_NOSCALE: + case SP_TRANSFORMMODE_NOSCALEORREFLECTION: + tx = targetX - bone->worldX; + ty = targetY - bone->worldY; + default: ; + } + b = bone->data->length * sx, dd = SQRT(tx * tx + ty * ty); if ((compress && dd < b) || ((stretch && dd > b) && (b > 0.0001f))) { s = (dd / b - 1) * alpha + 1; sx *= s; diff --git a/spine-c/spine-c/src/spine/IkConstraintData.c b/spine-c/spine-c/src/spine/IkConstraintData.c index d7a1e7449..d5e923ce8 100644 --- a/spine-c/spine-c/src/spine/IkConstraintData.c +++ b/spine-c/spine-c/src/spine/IkConstraintData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/MeshAttachment.c b/spine-c/spine-c/src/spine/MeshAttachment.c index ade598855..80e8ed167 100644 --- a/spine-c/spine-c/src/spine/MeshAttachment.c +++ b/spine-c/spine-c/src/spine/MeshAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/PathAttachment.c b/spine-c/spine-c/src/spine/PathAttachment.c index 85b0038f4..ca46e048c 100644 --- a/spine-c/spine-c/src/spine/PathAttachment.c +++ b/spine-c/spine-c/src/spine/PathAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/PathConstraint.c b/spine-c/spine-c/src/spine/PathConstraint.c index 51cf11616..672877973 100644 --- a/spine-c/spine-c/src/spine/PathConstraint.c +++ b/spine-c/spine-c/src/spine/PathConstraint.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/PathConstraintData.c b/spine-c/spine-c/src/spine/PathConstraintData.c index aa4346a12..551b891b3 100644 --- a/spine-c/spine-c/src/spine/PathConstraintData.c +++ b/spine-c/spine-c/src/spine/PathConstraintData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/PointAttachment.c b/spine-c/spine-c/src/spine/PointAttachment.c index e7f415b63..d702edc2a 100644 --- a/spine-c/spine-c/src/spine/PointAttachment.c +++ b/spine-c/spine-c/src/spine/PointAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/RegionAttachment.c b/spine-c/spine-c/src/spine/RegionAttachment.c index e098cee86..bf20317b5 100644 --- a/spine-c/spine-c/src/spine/RegionAttachment.c +++ b/spine-c/spine-c/src/spine/RegionAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Skeleton.c b/spine-c/spine-c/src/spine/Skeleton.c index 52ebda2fb..e074cc065 100644 --- a/spine-c/spine-c/src/spine/Skeleton.c +++ b/spine-c/spine-c/src/spine/Skeleton.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/SkeletonBinary.c b/spine-c/spine-c/src/spine/SkeletonBinary.c index a5b24c39b..e1ca3f8ee 100644 --- a/spine-c/spine-c/src/spine/SkeletonBinary.c +++ b/spine-c/spine-c/src/spine/SkeletonBinary.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include @@ -900,6 +900,12 @@ spSkeletonData* spSkeletonBinary_readSkeletonData (spSkeletonBinary* self, const FREE(skeletonData->version); skeletonData->version = 0; } + if (strcmp(skeletonData->version, "3.8.75") == 0) { + FREE(input); + spSkeletonData_dispose(skeletonData); + _spSkeletonBinary_setError(self, "Unsupported skeleton data, please export with a newer version of Spine.", ""); + return 0; + } skeletonData->x = readFloat(input); skeletonData->y = readFloat(input); diff --git a/spine-c/spine-c/src/spine/SkeletonBounds.c b/spine-c/spine-c/src/spine/SkeletonBounds.c index 8e686daf1..92ce2cf7f 100644 --- a/spine-c/spine-c/src/spine/SkeletonBounds.c +++ b/spine-c/spine-c/src/spine/SkeletonBounds.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/SkeletonClipping.c b/spine-c/spine-c/src/spine/SkeletonClipping.c index 8a1b3ab22..db1687e46 100644 --- a/spine-c/spine-c/src/spine/SkeletonClipping.c +++ b/spine-c/spine-c/src/spine/SkeletonClipping.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/SkeletonData.c b/spine-c/spine-c/src/spine/SkeletonData.c index f82d371f6..eee6eb1e2 100644 --- a/spine-c/spine-c/src/spine/SkeletonData.c +++ b/spine-c/spine-c/src/spine/SkeletonData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/SkeletonJson.c b/spine-c/spine-c/src/spine/SkeletonJson.c index b39bd3e0f..f9851390a 100644 --- a/spine-c/spine-c/src/spine/SkeletonJson.c +++ b/spine-c/spine-c/src/spine/SkeletonJson.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include @@ -607,6 +607,11 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha if (skeleton) { MALLOC_STR(skeletonData->hash, Json_getString(skeleton, "hash", 0)); MALLOC_STR(skeletonData->version, Json_getString(skeleton, "spine", 0)); + if (strcmp(skeletonData->version, "3.8.75") == 0) { + spSkeletonData_dispose(skeletonData); + _spSkeletonJson_setError(self, root, "Unsupported skeleton data, please export with a newer version of Spine.", ""); + return 0; + } skeletonData->x = Json_getFloat(skeleton, "x", 0); skeletonData->y = Json_getFloat(skeleton, "y", 0); skeletonData->width = Json_getFloat(skeleton, "width", 0); diff --git a/spine-c/spine-c/src/spine/Skin.c b/spine-c/spine-c/src/spine/Skin.c index 669b8efbf..5a68cc3b2 100644 --- a/spine-c/spine-c/src/spine/Skin.c +++ b/spine-c/spine-c/src/spine/Skin.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Slot.c b/spine-c/spine-c/src/spine/Slot.c index 9cd0ed0c4..c67f1fdcb 100644 --- a/spine-c/spine-c/src/spine/Slot.c +++ b/spine-c/spine-c/src/spine/Slot.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/SlotData.c b/spine-c/spine-c/src/spine/SlotData.c index 5e05cc66f..d23a626a9 100644 --- a/spine-c/spine-c/src/spine/SlotData.c +++ b/spine-c/spine-c/src/spine/SlotData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/TransformConstraint.c b/spine-c/spine-c/src/spine/TransformConstraint.c index c03b33b6f..4fede676b 100644 --- a/spine-c/spine-c/src/spine/TransformConstraint.c +++ b/spine-c/spine-c/src/spine/TransformConstraint.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/TransformConstraintData.c b/spine-c/spine-c/src/spine/TransformConstraintData.c index 4807679c0..d1f68f3b4 100644 --- a/spine-c/spine-c/src/spine/TransformConstraintData.c +++ b/spine-c/spine-c/src/spine/TransformConstraintData.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/Triangulator.c b/spine-c/spine-c/src/spine/Triangulator.c index ac2fa6260..e7e7c8c9c 100644 --- a/spine-c/spine-c/src/spine/Triangulator.c +++ b/spine-c/spine-c/src/spine/Triangulator.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/VertexAttachment.c b/spine-c/spine-c/src/spine/VertexAttachment.c index 48753b53e..9c8ca6b58 100644 --- a/spine-c/spine-c/src/spine/VertexAttachment.c +++ b/spine-c/spine-c/src/spine/VertexAttachment.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/VertexEffect.c b/spine-c/spine-c/src/spine/VertexEffect.c index e4c032ecd..5b299480c 100644 --- a/spine-c/spine-c/src/spine/VertexEffect.c +++ b/spine-c/spine-c/src/spine/VertexEffect.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-c/spine-c/src/spine/extension.c b/spine-c/spine-c/src/spine/extension.c index a6872e798..3cadede9b 100644 --- a/spine-c/spine-c/src/spine/extension.c +++ b/spine-c/spine-c/src/spine/extension.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2d-objc/example/CoinExample.h b/spine-cocos2d-objc/example/CoinExample.h index 61c2561d5..6e61f8329 100644 --- a/spine-cocos2d-objc/example/CoinExample.h +++ b/spine-cocos2d-objc/example/CoinExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/CoinExample.m b/spine-cocos2d-objc/example/CoinExample.m index bfd04c643..d7ab6e355 100644 --- a/spine-cocos2d-objc/example/CoinExample.m +++ b/spine-cocos2d-objc/example/CoinExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "CoinExample.h" diff --git a/spine-cocos2d-objc/example/GoblinsExample.h b/spine-cocos2d-objc/example/GoblinsExample.h index 84fc3532d..9cfe14793 100644 --- a/spine-cocos2d-objc/example/GoblinsExample.h +++ b/spine-cocos2d-objc/example/GoblinsExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/GoblinsExample.m b/spine-cocos2d-objc/example/GoblinsExample.m index 78b4b8df5..870fde415 100644 --- a/spine-cocos2d-objc/example/GoblinsExample.m +++ b/spine-cocos2d-objc/example/GoblinsExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "GoblinsExample.h" diff --git a/spine-cocos2d-objc/example/IKExample.h b/spine-cocos2d-objc/example/IKExample.h index 991d2f86d..244910a91 100644 --- a/spine-cocos2d-objc/example/IKExample.h +++ b/spine-cocos2d-objc/example/IKExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/IKExample.m b/spine-cocos2d-objc/example/IKExample.m index 3d237f774..3d257b913 100644 --- a/spine-cocos2d-objc/example/IKExample.m +++ b/spine-cocos2d-objc/example/IKExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "IKExample.h" diff --git a/spine-cocos2d-objc/example/RaptorExample.h b/spine-cocos2d-objc/example/RaptorExample.h index 79345e931..2cad73e93 100644 --- a/spine-cocos2d-objc/example/RaptorExample.h +++ b/spine-cocos2d-objc/example/RaptorExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/RaptorExample.m b/spine-cocos2d-objc/example/RaptorExample.m index 2ec9176f7..16081dca2 100644 --- a/spine-cocos2d-objc/example/RaptorExample.m +++ b/spine-cocos2d-objc/example/RaptorExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "RaptorExample.h" diff --git a/spine-cocos2d-objc/example/SpineboyExample.h b/spine-cocos2d-objc/example/SpineboyExample.h index 7299e0441..5dec4a027 100644 --- a/spine-cocos2d-objc/example/SpineboyExample.h +++ b/spine-cocos2d-objc/example/SpineboyExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/SpineboyExample.m b/spine-cocos2d-objc/example/SpineboyExample.m index 8e79300b5..0dd3e600c 100644 --- a/spine-cocos2d-objc/example/SpineboyExample.m +++ b/spine-cocos2d-objc/example/SpineboyExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "SpineboyExample.h" diff --git a/spine-cocos2d-objc/example/TankExample.h b/spine-cocos2d-objc/example/TankExample.h index 7af2bb5e0..8ca546d7b 100644 --- a/spine-cocos2d-objc/example/TankExample.h +++ b/spine-cocos2d-objc/example/TankExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "cocos2d.h" diff --git a/spine-cocos2d-objc/example/TankExample.m b/spine-cocos2d-objc/example/TankExample.m index 738c29336..ac3dafcab 100644 --- a/spine-cocos2d-objc/example/TankExample.m +++ b/spine-cocos2d-objc/example/TankExample.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import "TankExample.h" diff --git a/spine-cocos2d-objc/src/spine/GLUtils.c b/spine-cocos2d-objc/src/spine/GLUtils.c index 3eafeaf61..7badc223f 100644 --- a/spine-cocos2d-objc/src/spine/GLUtils.c +++ b/spine-cocos2d-objc/src/spine/GLUtils.c @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "GLUtils.h" diff --git a/spine-cocos2d-objc/src/spine/GLUtils.h b/spine-cocos2d-objc/src/spine/GLUtils.h index c3c62a959..21ba644a5 100644 --- a/spine-cocos2d-objc/src/spine/GLUtils.h +++ b/spine-cocos2d-objc/src/spine/GLUtils.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef GLUtils_h diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h index c294cf14a..c313ecf69 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.h +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m index f1955f9cb..1b000ca59 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonAnimation.m +++ b/spine-cocos2d-objc/src/spine/SkeletonAnimation.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2d-objc/src/spine/SkeletonRenderer.h b/spine-cocos2d-objc/src/spine/SkeletonRenderer.h index 0c670d0eb..dfd9aa9c1 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonRenderer.h +++ b/spine-cocos2d-objc/src/spine/SkeletonRenderer.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2d-objc/src/spine/SkeletonRenderer.m b/spine-cocos2d-objc/src/spine/SkeletonRenderer.m index 61e679448..24cc2b2a3 100644 --- a/spine-cocos2d-objc/src/spine/SkeletonRenderer.m +++ b/spine-cocos2d-objc/src/spine/SkeletonRenderer.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h b/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h index 37a25d408..22dc21430 100644 --- a/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h +++ b/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m b/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m index cb1f26531..94530fbdb 100644 --- a/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m +++ b/spine-cocos2d-objc/src/spine/spine-cocos2d-objc.m @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #import diff --git a/spine-cocos2dx/example/Classes/AppDelegate.cpp b/spine-cocos2dx/example/Classes/AppDelegate.cpp index b9af7c2d8..fcfcf49b0 100644 --- a/spine-cocos2dx/example/Classes/AppDelegate.cpp +++ b/spine-cocos2dx/example/Classes/AppDelegate.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "AppDelegate.h" diff --git a/spine-cocos2dx/example/Classes/AppDelegate.h b/spine-cocos2dx/example/Classes/AppDelegate.h index e289488e7..e1880f384 100644 --- a/spine-cocos2dx/example/Classes/AppDelegate.h +++ b/spine-cocos2dx/example/Classes/AppDelegate.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _APPDELEGATE_H_ diff --git a/spine-cocos2dx/example/Classes/AppMacros.h b/spine-cocos2dx/example/Classes/AppMacros.h index 2740cfffd..59fd09a49 100644 --- a/spine-cocos2dx/example/Classes/AppMacros.h +++ b/spine-cocos2dx/example/Classes/AppMacros.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _APPMACROS_H_ diff --git a/spine-cocos2dx/example/Classes/BatchingExample.cpp b/spine-cocos2dx/example/Classes/BatchingExample.cpp index 666307dec..908e12694 100644 --- a/spine-cocos2dx/example/Classes/BatchingExample.cpp +++ b/spine-cocos2dx/example/Classes/BatchingExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "BatchingExample.h" diff --git a/spine-cocos2dx/example/Classes/BatchingExample.h b/spine-cocos2dx/example/Classes/BatchingExample.h index 3a8d30344..f93f893b9 100644 --- a/spine-cocos2dx/example/Classes/BatchingExample.h +++ b/spine-cocos2dx/example/Classes/BatchingExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _BATCHINGEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/CoinExample.cpp b/spine-cocos2dx/example/Classes/CoinExample.cpp index 85154299d..86328d7dc 100644 --- a/spine-cocos2dx/example/Classes/CoinExample.cpp +++ b/spine-cocos2dx/example/Classes/CoinExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "CoinExample.h" diff --git a/spine-cocos2dx/example/Classes/CoinExample.h b/spine-cocos2dx/example/Classes/CoinExample.h index e4163ad58..2783d7af7 100644 --- a/spine-cocos2dx/example/Classes/CoinExample.h +++ b/spine-cocos2dx/example/Classes/CoinExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _COINEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/GoblinsExample.cpp b/spine-cocos2dx/example/Classes/GoblinsExample.cpp index dd9923a69..9b8e060c9 100644 --- a/spine-cocos2dx/example/Classes/GoblinsExample.cpp +++ b/spine-cocos2dx/example/Classes/GoblinsExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "GoblinsExample.h" diff --git a/spine-cocos2dx/example/Classes/GoblinsExample.h b/spine-cocos2dx/example/Classes/GoblinsExample.h index cf4c98cf5..32c5b7de0 100644 --- a/spine-cocos2dx/example/Classes/GoblinsExample.h +++ b/spine-cocos2dx/example/Classes/GoblinsExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _GOBLINSEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/IKExample.cpp b/spine-cocos2dx/example/Classes/IKExample.cpp index ccd87aa80..ee8c6febe 100644 --- a/spine-cocos2dx/example/Classes/IKExample.cpp +++ b/spine-cocos2dx/example/Classes/IKExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "IKExample.h" diff --git a/spine-cocos2dx/example/Classes/IKExample.h b/spine-cocos2dx/example/Classes/IKExample.h index 3314350f4..fd1a073b8 100644 --- a/spine-cocos2dx/example/Classes/IKExample.h +++ b/spine-cocos2dx/example/Classes/IKExample.h @@ -1,9 +1,31 @@ -// -// IKExample.hpp -// spine-cocos2d-x -// -// Created by Mario Zechner on 28.10.19. -// +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ #ifndef _IKEXAMPLE_H_ #define _IKEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/MixAndMatchExample.cpp b/spine-cocos2dx/example/Classes/MixAndMatchExample.cpp index d5486e704..a29c632f5 100644 --- a/spine-cocos2dx/example/Classes/MixAndMatchExample.cpp +++ b/spine-cocos2dx/example/Classes/MixAndMatchExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "MixAndMatchExample.h" diff --git a/spine-cocos2dx/example/Classes/MixAndMatchExample.h b/spine-cocos2dx/example/Classes/MixAndMatchExample.h index 6b9f96fa9..bb78272ea 100644 --- a/spine-cocos2dx/example/Classes/MixAndMatchExample.h +++ b/spine-cocos2dx/example/Classes/MixAndMatchExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _MIXANDMATCHEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/RaptorExample.cpp b/spine-cocos2dx/example/Classes/RaptorExample.cpp index 1da3c2c58..86050e183 100644 --- a/spine-cocos2dx/example/Classes/RaptorExample.cpp +++ b/spine-cocos2dx/example/Classes/RaptorExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "RaptorExample.h" diff --git a/spine-cocos2dx/example/Classes/RaptorExample.h b/spine-cocos2dx/example/Classes/RaptorExample.h index 3eeb30b95..dcd9890a7 100644 --- a/spine-cocos2dx/example/Classes/RaptorExample.h +++ b/spine-cocos2dx/example/Classes/RaptorExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _RAPTOREXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.cpp b/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.cpp index 4b9a8226a..0af85f297 100644 --- a/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.cpp +++ b/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SkeletonRendererSeparatorExample.h" diff --git a/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.h b/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.h index 740411fa9..d01a01f03 100644 --- a/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.h +++ b/spine-cocos2dx/example/Classes/SkeletonRendererSeparatorExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _SKELETONRENDERERSEPARATOREXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/SpineboyExample.cpp b/spine-cocos2dx/example/Classes/SpineboyExample.cpp index 23ddcbcb1..1bcd43c92 100644 --- a/spine-cocos2dx/example/Classes/SpineboyExample.cpp +++ b/spine-cocos2dx/example/Classes/SpineboyExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpineboyExample.h" diff --git a/spine-cocos2dx/example/Classes/SpineboyExample.h b/spine-cocos2dx/example/Classes/SpineboyExample.h index bc1f874a7..8107e9c1f 100644 --- a/spine-cocos2dx/example/Classes/SpineboyExample.h +++ b/spine-cocos2dx/example/Classes/SpineboyExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _SPINEBOYEXAMPLE_H_ diff --git a/spine-cocos2dx/example/Classes/TankExample.cpp b/spine-cocos2dx/example/Classes/TankExample.cpp index 9a8525fd2..137f58ced 100644 --- a/spine-cocos2dx/example/Classes/TankExample.cpp +++ b/spine-cocos2dx/example/Classes/TankExample.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "TankExample.h" diff --git a/spine-cocos2dx/example/Classes/TankExample.h b/spine-cocos2dx/example/Classes/TankExample.h index 760396a89..7a07d1ce6 100644 --- a/spine-cocos2dx/example/Classes/TankExample.h +++ b/spine-cocos2dx/example/Classes/TankExample.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef _TANKEXAMPLE_H_ diff --git a/spine-cocos2dx/src/spine/AttachmentVertices.cpp b/spine-cocos2dx/src/spine/AttachmentVertices.cpp index 0340f3a7f..a443daa0b 100644 --- a/spine-cocos2dx/src/spine/AttachmentVertices.cpp +++ b/spine-cocos2dx/src/spine/AttachmentVertices.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/AttachmentVertices.h b/spine-cocos2dx/src/spine/AttachmentVertices.h index 115924e09..146125e59 100644 --- a/spine-cocos2dx/src/spine/AttachmentVertices.h +++ b/spine-cocos2dx/src/spine/AttachmentVertices.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_ATTACHMENTVERTICES_H_ diff --git a/spine-cocos2dx/src/spine/SkeletonAnimation.cpp b/spine-cocos2dx/src/spine/SkeletonAnimation.cpp index e323f1b0f..77f55abe7 100644 --- a/spine-cocos2dx/src/spine/SkeletonAnimation.cpp +++ b/spine-cocos2dx/src/spine/SkeletonAnimation.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/SkeletonAnimation.h b/spine-cocos2dx/src/spine/SkeletonAnimation.h index b8ef735c8..218217bbb 100644 --- a/spine-cocos2dx/src/spine/SkeletonAnimation.h +++ b/spine-cocos2dx/src/spine/SkeletonAnimation.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONANIMATION_H_ diff --git a/spine-cocos2dx/src/spine/SkeletonRenderer.cpp b/spine-cocos2dx/src/spine/SkeletonRenderer.cpp index 2542c6ece..eea8163de 100644 --- a/spine-cocos2dx/src/spine/SkeletonRenderer.cpp +++ b/spine-cocos2dx/src/spine/SkeletonRenderer.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/SkeletonRenderer.h b/spine-cocos2dx/src/spine/SkeletonRenderer.h index c89660c35..0aacc2ea2 100644 --- a/spine-cocos2dx/src/spine/SkeletonRenderer.h +++ b/spine-cocos2dx/src/spine/SkeletonRenderer.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONRENDERER_H_ diff --git a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp index cb42e3d54..f09c39a62 100644 --- a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp +++ b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/spine-cocos2dx.h b/spine-cocos2dx/src/spine/spine-cocos2dx.h index 49852a337..22d4d2e1b 100644 --- a/spine-cocos2dx/src/spine/spine-cocos2dx.h +++ b/spine-cocos2dx/src/spine/spine-cocos2dx.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_COCOS2DX_H_ diff --git a/spine-cocos2dx/src/spine/v3/SkeletonBatch.cpp b/spine-cocos2dx/src/spine/v3/SkeletonBatch.cpp index ceecb4b27..e14bdbf6a 100644 --- a/spine-cocos2dx/src/spine/v3/SkeletonBatch.cpp +++ b/spine-cocos2dx/src/spine/v3/SkeletonBatch.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include @@ -153,4 +153,3 @@ cocos2d::TrianglesCommand* SkeletonBatch::nextFreeCommand() { } #endif - diff --git a/spine-cocos2dx/src/spine/v3/SkeletonBatch.h b/spine-cocos2dx/src/spine/v3/SkeletonBatch.h index 34c12f205..8dda9cf65 100644 --- a/spine-cocos2dx/src/spine/v3/SkeletonBatch.h +++ b/spine-cocos2dx/src/spine/v3/SkeletonBatch.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONBATCH_H_ diff --git a/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.cpp b/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.cpp index 1edd1eae4..6ab1c2409 100644 --- a/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.cpp +++ b/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.h b/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.h index 133e15fbb..75ea3861d 100644 --- a/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.h +++ b/spine-cocos2dx/src/spine/v3/SkeletonTwoColorBatch.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONTWOCOLORBATCH_H_ diff --git a/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp b/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp index 36e338c4b..2cdf7f017 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp +++ b/spine-cocos2dx/src/spine/v4/SkeletonBatch.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/v4/SkeletonBatch.h b/spine-cocos2dx/src/spine/v4/SkeletonBatch.h index 95e9de301..d0bae6b5b 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonBatch.h +++ b/spine-cocos2dx/src/spine/v4/SkeletonBatch.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONBATCH_H_ diff --git a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp index 3330edc9e..9dde0ccbc 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp +++ b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.h b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.h index e5003a692..9d6364b8b 100644 --- a/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.h +++ b/spine-cocos2dx/src/spine/v4/SkeletonTwoColorBatch.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SKELETONTWOCOLORBATCH_H_ diff --git a/spine-corona/README.md b/spine-corona/README.md index 476e1ab7d..89adae111 100644 --- a/spine-corona/README.md +++ b/spine-corona/README.md @@ -27,3 +27,6 @@ spine-corona does not yet support loading the binary format. 1. Run the `main.lua` file using Corona. Tap/click to switch between skeletons Alternatively, the `spine-lua` and `spine-corona/spine-corona` directories can be copied into your project. Note that the require statements use `spine-lua.Xxx`, so the spine-lua files must be in a `spine-lua` directory in your project. + +When using the `EmmyLua` plugin for IntelliJ IDEA, create a launch configuration pointing at the `Corona Simulator` executable (e.g. ` /Applications/Corona/Corona Simulator.app/Contents/MacOS/Corona Simulator` on macOS), set the working directory to `spine-corona` and set the parameters to `main.lua`. + diff --git a/spine-corona/main.lua b/spine-corona/main.lua index 12bba6ac0..beb910340 100644 --- a/spine-corona/main.lua +++ b/spine-corona/main.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- require("mobdebug").start() diff --git a/spine-corona/spine-corona/spine.lua b/spine-corona/spine-corona/spine.lua index 2a33ef44b..d5dcba1e4 100644 --- a/spine-corona/spine-corona/spine.lua +++ b/spine-corona/spine-corona/spine.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local spine = {} diff --git a/spine-cpp/spine-cpp/include/spine/Animation.h b/spine-cpp/spine-cpp/include/spine/Animation.h index eb38b7188..9e4004fcb 100644 --- a/spine-cpp/spine-cpp/include/spine/Animation.h +++ b/spine-cpp/spine-cpp/include/spine/Animation.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Animation_h diff --git a/spine-cpp/spine-cpp/include/spine/AnimationState.h b/spine-cpp/spine-cpp/include/spine/AnimationState.h index ea8090692..818d3e366 100644 --- a/spine-cpp/spine-cpp/include/spine/AnimationState.h +++ b/spine-cpp/spine-cpp/include/spine/AnimationState.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AnimationState_h diff --git a/spine-cpp/spine-cpp/include/spine/AnimationStateData.h b/spine-cpp/spine-cpp/include/spine/AnimationStateData.h index 38eaa2841..336f75ba9 100644 --- a/spine-cpp/spine-cpp/include/spine/AnimationStateData.h +++ b/spine-cpp/spine-cpp/include/spine/AnimationStateData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AnimationStateData_h diff --git a/spine-cpp/spine-cpp/include/spine/Atlas.h b/spine-cpp/spine-cpp/include/spine/Atlas.h index 15b140bc4..257942d69 100644 --- a/spine-cpp/spine-cpp/include/spine/Atlas.h +++ b/spine-cpp/spine-cpp/include/spine/Atlas.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Atlas_h diff --git a/spine-cpp/spine-cpp/include/spine/AtlasAttachmentLoader.h b/spine-cpp/spine-cpp/include/spine/AtlasAttachmentLoader.h index 950803b5a..0db41cd1a 100644 --- a/spine-cpp/spine-cpp/include/spine/AtlasAttachmentLoader.h +++ b/spine-cpp/spine-cpp/include/spine/AtlasAttachmentLoader.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AtlasAttachmentLoader_h diff --git a/spine-cpp/spine-cpp/include/spine/Attachment.h b/spine-cpp/spine-cpp/include/spine/Attachment.h index 643c78486..5b1c4c185 100644 --- a/spine-cpp/spine-cpp/include/spine/Attachment.h +++ b/spine-cpp/spine-cpp/include/spine/Attachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Attachment_h diff --git a/spine-cpp/spine-cpp/include/spine/AttachmentLoader.h b/spine-cpp/spine-cpp/include/spine/AttachmentLoader.h index 2c99e338c..6201e927a 100644 --- a/spine-cpp/spine-cpp/include/spine/AttachmentLoader.h +++ b/spine-cpp/spine-cpp/include/spine/AttachmentLoader.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AttachmentLoader_h diff --git a/spine-cpp/spine-cpp/include/spine/AttachmentTimeline.h b/spine-cpp/spine-cpp/include/spine/AttachmentTimeline.h index 7c315ec26..c8a022a33 100644 --- a/spine-cpp/spine-cpp/include/spine/AttachmentTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/AttachmentTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AttachmentTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/AttachmentType.h b/spine-cpp/spine-cpp/include/spine/AttachmentType.h index 4ec4ea2e7..bb62f9f50 100644 --- a/spine-cpp/spine-cpp/include/spine/AttachmentType.h +++ b/spine-cpp/spine-cpp/include/spine/AttachmentType.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_AttachmentType_h diff --git a/spine-cpp/spine-cpp/include/spine/BlendMode.h b/spine-cpp/spine-cpp/include/spine/BlendMode.h index 30540f0ab..eca09cf8e 100644 --- a/spine-cpp/spine-cpp/include/spine/BlendMode.h +++ b/spine-cpp/spine-cpp/include/spine/BlendMode.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_BlendMode_h diff --git a/spine-cpp/spine-cpp/include/spine/Bone.h b/spine-cpp/spine-cpp/include/spine/Bone.h index 5dedc9242..148c6c5c6 100644 --- a/spine-cpp/spine-cpp/include/spine/Bone.h +++ b/spine-cpp/spine-cpp/include/spine/Bone.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Bone_h diff --git a/spine-cpp/spine-cpp/include/spine/BoneData.h b/spine-cpp/spine-cpp/include/spine/BoneData.h index b800cec3f..bd997f651 100644 --- a/spine-cpp/spine-cpp/include/spine/BoneData.h +++ b/spine-cpp/spine-cpp/include/spine/BoneData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_BoneData_h diff --git a/spine-cpp/spine-cpp/include/spine/BoundingBoxAttachment.h b/spine-cpp/spine-cpp/include/spine/BoundingBoxAttachment.h index a65a99585..7118c7024 100644 --- a/spine-cpp/spine-cpp/include/spine/BoundingBoxAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/BoundingBoxAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_BoundingBoxAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/ClippingAttachment.h b/spine-cpp/spine-cpp/include/spine/ClippingAttachment.h index c7490b228..21834cb4a 100644 --- a/spine-cpp/spine-cpp/include/spine/ClippingAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/ClippingAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_ClippingAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/Color.h b/spine-cpp/spine-cpp/include/spine/Color.h index b53a79418..1f288f7a8 100644 --- a/spine-cpp/spine-cpp/include/spine/Color.h +++ b/spine-cpp/spine-cpp/include/spine/Color.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_COLOR_H diff --git a/spine-cpp/spine-cpp/include/spine/ColorTimeline.h b/spine-cpp/spine-cpp/include/spine/ColorTimeline.h index 9feb721d0..3d3540060 100644 --- a/spine-cpp/spine-cpp/include/spine/ColorTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/ColorTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_ColorTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/ConstraintData.h b/spine-cpp/spine-cpp/include/spine/ConstraintData.h index 6ceda85ee..1f928a96b 100644 --- a/spine-cpp/spine-cpp/include/spine/ConstraintData.h +++ b/spine-cpp/spine-cpp/include/spine/ConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Constraint_h diff --git a/spine-cpp/spine-cpp/include/spine/ContainerUtil.h b/spine-cpp/spine-cpp/include/spine/ContainerUtil.h index 0b6cde7f1..af0a2bc2a 100644 --- a/spine-cpp/spine-cpp/include/spine/ContainerUtil.h +++ b/spine-cpp/spine-cpp/include/spine/ContainerUtil.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_ContainerUtil_h diff --git a/spine-cpp/spine-cpp/include/spine/CurveTimeline.h b/spine-cpp/spine-cpp/include/spine/CurveTimeline.h index 5ac886942..9d739d4bb 100644 --- a/spine-cpp/spine-cpp/include/spine/CurveTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/CurveTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_CurveTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Debug.h b/spine-cpp/spine-cpp/include/spine/Debug.h index 04768a31b..61c3d3bb6 100644 --- a/spine-cpp/spine-cpp/include/spine/Debug.h +++ b/spine-cpp/spine-cpp/include/spine/Debug.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_DEBUG_H diff --git a/spine-cpp/spine-cpp/include/spine/DeformTimeline.h b/spine-cpp/spine-cpp/include/spine/DeformTimeline.h index 99305fbb5..05632c301 100644 --- a/spine-cpp/spine-cpp/include/spine/DeformTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/DeformTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_DeformTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/DrawOrderTimeline.h b/spine-cpp/spine-cpp/include/spine/DrawOrderTimeline.h index ae508456a..867e94e97 100644 --- a/spine-cpp/spine-cpp/include/spine/DrawOrderTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/DrawOrderTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_DrawOrderTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Event.h b/spine-cpp/spine-cpp/include/spine/Event.h index 75c3763f3..23d082e4a 100644 --- a/spine-cpp/spine-cpp/include/spine/Event.h +++ b/spine-cpp/spine-cpp/include/spine/Event.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Event_h diff --git a/spine-cpp/spine-cpp/include/spine/EventData.h b/spine-cpp/spine-cpp/include/spine/EventData.h index 44ea65757..9140f54b9 100644 --- a/spine-cpp/spine-cpp/include/spine/EventData.h +++ b/spine-cpp/spine-cpp/include/spine/EventData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_EventData_h diff --git a/spine-cpp/spine-cpp/include/spine/EventTimeline.h b/spine-cpp/spine-cpp/include/spine/EventTimeline.h index 1611a4d69..6d39a7467 100644 --- a/spine-cpp/spine-cpp/include/spine/EventTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/EventTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_EventTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Extension.h b/spine-cpp/spine-cpp/include/spine/Extension.h index c9eb16f5e..a64b0a61a 100644 --- a/spine-cpp/spine-cpp/include/spine/Extension.h +++ b/spine-cpp/spine-cpp/include/spine/Extension.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Extension_h diff --git a/spine-cpp/spine-cpp/include/spine/HasRendererObject.h b/spine-cpp/spine-cpp/include/spine/HasRendererObject.h index a99964d2b..73162dadc 100644 --- a/spine-cpp/spine-cpp/include/spine/HasRendererObject.h +++ b/spine-cpp/spine-cpp/include/spine/HasRendererObject.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_HasRendererObject_h diff --git a/spine-cpp/spine-cpp/include/spine/HashMap.h b/spine-cpp/spine-cpp/include/spine/HashMap.h index 3ec2f5d24..9a1a1ecdc 100755 --- a/spine-cpp/spine-cpp/include/spine/HashMap.h +++ b/spine-cpp/spine-cpp/include/spine/HashMap.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_HashMap_h diff --git a/spine-cpp/spine-cpp/include/spine/IkConstraint.h b/spine-cpp/spine-cpp/include/spine/IkConstraint.h index f2a935c9e..bef483241 100644 --- a/spine-cpp/spine-cpp/include/spine/IkConstraint.h +++ b/spine-cpp/spine-cpp/include/spine/IkConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_IkConstraint_h diff --git a/spine-cpp/spine-cpp/include/spine/IkConstraintData.h b/spine-cpp/spine-cpp/include/spine/IkConstraintData.h index 85fa0f05f..cbf7cd87a 100644 --- a/spine-cpp/spine-cpp/include/spine/IkConstraintData.h +++ b/spine-cpp/spine-cpp/include/spine/IkConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_IkConstraintData_h diff --git a/spine-cpp/spine-cpp/include/spine/IkConstraintTimeline.h b/spine-cpp/spine-cpp/include/spine/IkConstraintTimeline.h index 68fcd3ded..c710b78c7 100644 --- a/spine-cpp/spine-cpp/include/spine/IkConstraintTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/IkConstraintTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_IkConstraintTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Json.h b/spine-cpp/spine-cpp/include/spine/Json.h index b62fee215..de676bf3b 100644 --- a/spine-cpp/spine-cpp/include/spine/Json.h +++ b/spine-cpp/spine-cpp/include/spine/Json.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Json_h diff --git a/spine-cpp/spine-cpp/include/spine/LinkedMesh.h b/spine-cpp/spine-cpp/include/spine/LinkedMesh.h index 175e38f74..10e7003aa 100644 --- a/spine-cpp/spine-cpp/include/spine/LinkedMesh.h +++ b/spine-cpp/spine-cpp/include/spine/LinkedMesh.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_LinkedMesh_h diff --git a/spine-cpp/spine-cpp/include/spine/MathUtil.h b/spine-cpp/spine-cpp/include/spine/MathUtil.h index 2d8b4cf42..7d85c7d1c 100644 --- a/spine-cpp/spine-cpp/include/spine/MathUtil.h +++ b/spine-cpp/spine-cpp/include/spine/MathUtil.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_MathUtil_h diff --git a/spine-cpp/spine-cpp/include/spine/MeshAttachment.h b/spine-cpp/spine-cpp/include/spine/MeshAttachment.h index 8c65a86c3..dece05f94 100644 --- a/spine-cpp/spine-cpp/include/spine/MeshAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/MeshAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_MeshAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/MixBlend.h b/spine-cpp/spine-cpp/include/spine/MixBlend.h index 41c22826b..5e709aefd 100644 --- a/spine-cpp/spine-cpp/include/spine/MixBlend.h +++ b/spine-cpp/spine-cpp/include/spine/MixBlend.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_MixPose_h diff --git a/spine-cpp/spine-cpp/include/spine/MixDirection.h b/spine-cpp/spine-cpp/include/spine/MixDirection.h index 0aae33ece..1a618324d 100644 --- a/spine-cpp/spine-cpp/include/spine/MixDirection.h +++ b/spine-cpp/spine-cpp/include/spine/MixDirection.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_MixDirection_h diff --git a/spine-cpp/spine-cpp/include/spine/PathAttachment.h b/spine-cpp/spine-cpp/include/spine/PathAttachment.h index 4771d09cd..fd054b4e0 100644 --- a/spine-cpp/spine-cpp/include/spine/PathAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/PathAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/PathConstraint.h b/spine-cpp/spine-cpp/include/spine/PathConstraint.h index 6967dec57..470d89997 100644 --- a/spine-cpp/spine-cpp/include/spine/PathConstraint.h +++ b/spine-cpp/spine-cpp/include/spine/PathConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathConstraint_h diff --git a/spine-cpp/spine-cpp/include/spine/PathConstraintData.h b/spine-cpp/spine-cpp/include/spine/PathConstraintData.h index 12720f41c..97f8b84cc 100644 --- a/spine-cpp/spine-cpp/include/spine/PathConstraintData.h +++ b/spine-cpp/spine-cpp/include/spine/PathConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathConstraintData_h diff --git a/spine-cpp/spine-cpp/include/spine/PathConstraintMixTimeline.h b/spine-cpp/spine-cpp/include/spine/PathConstraintMixTimeline.h index 03a6dade1..9537ff06b 100644 --- a/spine-cpp/spine-cpp/include/spine/PathConstraintMixTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/PathConstraintMixTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathConstraintMixTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/PathConstraintPositionTimeline.h b/spine-cpp/spine-cpp/include/spine/PathConstraintPositionTimeline.h index e00400e0c..3c11bf19b 100644 --- a/spine-cpp/spine-cpp/include/spine/PathConstraintPositionTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/PathConstraintPositionTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathConstraintPositionTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/PathConstraintSpacingTimeline.h b/spine-cpp/spine-cpp/include/spine/PathConstraintSpacingTimeline.h index 1191b2a10..d3e9bd979 100644 --- a/spine-cpp/spine-cpp/include/spine/PathConstraintSpacingTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/PathConstraintSpacingTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PathConstraintSpacingTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/PointAttachment.h b/spine-cpp/spine-cpp/include/spine/PointAttachment.h index 4cc06814f..7860a9961 100644 --- a/spine-cpp/spine-cpp/include/spine/PointAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/PointAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PointAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/Pool.h b/spine-cpp/spine-cpp/include/spine/Pool.h index 2bc5849a3..54e220c95 100644 --- a/spine-cpp/spine-cpp/include/spine/Pool.h +++ b/spine-cpp/spine-cpp/include/spine/Pool.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Pool_h diff --git a/spine-cpp/spine-cpp/include/spine/PositionMode.h b/spine-cpp/spine-cpp/include/spine/PositionMode.h index b9951aa42..0c9157bec 100644 --- a/spine-cpp/spine-cpp/include/spine/PositionMode.h +++ b/spine-cpp/spine-cpp/include/spine/PositionMode.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_PositionMode_h diff --git a/spine-cpp/spine-cpp/include/spine/RTTI.h b/spine-cpp/spine-cpp/include/spine/RTTI.h index 9324eccf6..7f12e542b 100644 --- a/spine-cpp/spine-cpp/include/spine/RTTI.h +++ b/spine-cpp/spine-cpp/include/spine/RTTI.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_RTTI_h diff --git a/spine-cpp/spine-cpp/include/spine/RegionAttachment.h b/spine-cpp/spine-cpp/include/spine/RegionAttachment.h index 5cff392f9..fe8720706 100644 --- a/spine-cpp/spine-cpp/include/spine/RegionAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/RegionAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_RegionAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/RotateMode.h b/spine-cpp/spine-cpp/include/spine/RotateMode.h index d680811c5..42f3355c1 100644 --- a/spine-cpp/spine-cpp/include/spine/RotateMode.h +++ b/spine-cpp/spine-cpp/include/spine/RotateMode.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_RotateMode_h diff --git a/spine-cpp/spine-cpp/include/spine/RotateTimeline.h b/spine-cpp/spine-cpp/include/spine/RotateTimeline.h index 858e01b6d..0c6f89b31 100644 --- a/spine-cpp/spine-cpp/include/spine/RotateTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/RotateTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_RotateTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/ScaleTimeline.h b/spine-cpp/spine-cpp/include/spine/ScaleTimeline.h index 8ce462085..984b9d72c 100644 --- a/spine-cpp/spine-cpp/include/spine/ScaleTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/ScaleTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_ScaleTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/ShearTimeline.h b/spine-cpp/spine-cpp/include/spine/ShearTimeline.h index 69373d18e..4f6f12f7e 100644 --- a/spine-cpp/spine-cpp/include/spine/ShearTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/ShearTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_ShearTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Skeleton.h b/spine-cpp/spine-cpp/include/spine/Skeleton.h index cd4908692..27a3d8393 100644 --- a/spine-cpp/spine-cpp/include/spine/Skeleton.h +++ b/spine-cpp/spine-cpp/include/spine/Skeleton.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Skeleton_h diff --git a/spine-cpp/spine-cpp/include/spine/SkeletonBinary.h b/spine-cpp/spine-cpp/include/spine/SkeletonBinary.h index cc827e683..88af8bd77 100644 --- a/spine-cpp/spine-cpp/include/spine/SkeletonBinary.h +++ b/spine-cpp/spine-cpp/include/spine/SkeletonBinary.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SkeletonBinary_h diff --git a/spine-cpp/spine-cpp/include/spine/SkeletonBounds.h b/spine-cpp/spine-cpp/include/spine/SkeletonBounds.h index 7dd50b08f..c4955e685 100644 --- a/spine-cpp/spine-cpp/include/spine/SkeletonBounds.h +++ b/spine-cpp/spine-cpp/include/spine/SkeletonBounds.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SkeletonBounds_h diff --git a/spine-cpp/spine-cpp/include/spine/SkeletonClipping.h b/spine-cpp/spine-cpp/include/spine/SkeletonClipping.h index 05f661217..ae8bddb7c 100644 --- a/spine-cpp/spine-cpp/include/spine/SkeletonClipping.h +++ b/spine-cpp/spine-cpp/include/spine/SkeletonClipping.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SkeletonClipping_h diff --git a/spine-cpp/spine-cpp/include/spine/SkeletonData.h b/spine-cpp/spine-cpp/include/spine/SkeletonData.h index 3b4cfdbad..90e629b12 100644 --- a/spine-cpp/spine-cpp/include/spine/SkeletonData.h +++ b/spine-cpp/spine-cpp/include/spine/SkeletonData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SkeletonData_h diff --git a/spine-cpp/spine-cpp/include/spine/SkeletonJson.h b/spine-cpp/spine-cpp/include/spine/SkeletonJson.h index 06b6a0bf7..b719855a4 100644 --- a/spine-cpp/spine-cpp/include/spine/SkeletonJson.h +++ b/spine-cpp/spine-cpp/include/spine/SkeletonJson.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SkeletonJson_h diff --git a/spine-cpp/spine-cpp/include/spine/Skin.h b/spine-cpp/spine-cpp/include/spine/Skin.h index 8abc9ee9b..18dadba7e 100644 --- a/spine-cpp/spine-cpp/include/spine/Skin.h +++ b/spine-cpp/spine-cpp/include/spine/Skin.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Skin_h diff --git a/spine-cpp/spine-cpp/include/spine/Slot.h b/spine-cpp/spine-cpp/include/spine/Slot.h index d4c2bc64e..0f2f5144f 100644 --- a/spine-cpp/spine-cpp/include/spine/Slot.h +++ b/spine-cpp/spine-cpp/include/spine/Slot.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Slot_h diff --git a/spine-cpp/spine-cpp/include/spine/SlotData.h b/spine-cpp/spine-cpp/include/spine/SlotData.h index e8abac61f..24919be57 100644 --- a/spine-cpp/spine-cpp/include/spine/SlotData.h +++ b/spine-cpp/spine-cpp/include/spine/SlotData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SlotData_h diff --git a/spine-cpp/spine-cpp/include/spine/SpacingMode.h b/spine-cpp/spine-cpp/include/spine/SpacingMode.h index 61ec06dde..c76d6dbfa 100644 --- a/spine-cpp/spine-cpp/include/spine/SpacingMode.h +++ b/spine-cpp/spine-cpp/include/spine/SpacingMode.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_SpacingMode_h diff --git a/spine-cpp/spine-cpp/include/spine/SpineObject.h b/spine-cpp/spine-cpp/include/spine/SpineObject.h index 7cd64f17b..896a8aeb4 100644 --- a/spine-cpp/spine-cpp/include/spine/SpineObject.h +++ b/spine-cpp/spine-cpp/include/spine/SpineObject.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Object_h diff --git a/spine-cpp/spine-cpp/include/spine/SpineString.h b/spine-cpp/spine-cpp/include/spine/SpineString.h index fa91c12ef..06479fcc6 100644 --- a/spine-cpp/spine-cpp/include/spine/SpineString.h +++ b/spine-cpp/spine-cpp/include/spine/SpineString.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_STRING_H diff --git a/spine-cpp/spine-cpp/include/spine/TextureLoader.h b/spine-cpp/spine-cpp/include/spine/TextureLoader.h index 5494cde5b..fa305a328 100644 --- a/spine-cpp/spine-cpp/include/spine/TextureLoader.h +++ b/spine-cpp/spine-cpp/include/spine/TextureLoader.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TextureLoader_h diff --git a/spine-cpp/spine-cpp/include/spine/Timeline.h b/spine-cpp/spine-cpp/include/spine/Timeline.h index 8be7b5ebe..cc98353e5 100644 --- a/spine-cpp/spine-cpp/include/spine/Timeline.h +++ b/spine-cpp/spine-cpp/include/spine/Timeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Timeline_h diff --git a/spine-cpp/spine-cpp/include/spine/TimelineType.h b/spine-cpp/spine-cpp/include/spine/TimelineType.h index 2626b5ae4..b1f07811e 100644 --- a/spine-cpp/spine-cpp/include/spine/TimelineType.h +++ b/spine-cpp/spine-cpp/include/spine/TimelineType.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TimelineType_h diff --git a/spine-cpp/spine-cpp/include/spine/TransformConstraint.h b/spine-cpp/spine-cpp/include/spine/TransformConstraint.h index fdcdbcfbb..e271e5cfb 100644 --- a/spine-cpp/spine-cpp/include/spine/TransformConstraint.h +++ b/spine-cpp/spine-cpp/include/spine/TransformConstraint.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TransformConstraint_h diff --git a/spine-cpp/spine-cpp/include/spine/TransformConstraintData.h b/spine-cpp/spine-cpp/include/spine/TransformConstraintData.h index d6f2698bc..783eaacc1 100644 --- a/spine-cpp/spine-cpp/include/spine/TransformConstraintData.h +++ b/spine-cpp/spine-cpp/include/spine/TransformConstraintData.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TransformConstraintData_h diff --git a/spine-cpp/spine-cpp/include/spine/TransformConstraintTimeline.h b/spine-cpp/spine-cpp/include/spine/TransformConstraintTimeline.h index df6c2545d..317323822 100644 --- a/spine-cpp/spine-cpp/include/spine/TransformConstraintTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/TransformConstraintTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TransformConstraintTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/TransformMode.h b/spine-cpp/spine-cpp/include/spine/TransformMode.h index b0e2cef69..c4da701d7 100644 --- a/spine-cpp/spine-cpp/include/spine/TransformMode.h +++ b/spine-cpp/spine-cpp/include/spine/TransformMode.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TransformMode_h diff --git a/spine-cpp/spine-cpp/include/spine/TranslateTimeline.h b/spine-cpp/spine-cpp/include/spine/TranslateTimeline.h index 150ffb45a..88f1dfb5b 100644 --- a/spine-cpp/spine-cpp/include/spine/TranslateTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/TranslateTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TranslateTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Triangulator.h b/spine-cpp/spine-cpp/include/spine/Triangulator.h index 291e1beb5..6a6d881cd 100644 --- a/spine-cpp/spine-cpp/include/spine/Triangulator.h +++ b/spine-cpp/spine-cpp/include/spine/Triangulator.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Triangulator_h diff --git a/spine-cpp/spine-cpp/include/spine/TwoColorTimeline.h b/spine-cpp/spine-cpp/include/spine/TwoColorTimeline.h index b0e428a04..6cc110418 100644 --- a/spine-cpp/spine-cpp/include/spine/TwoColorTimeline.h +++ b/spine-cpp/spine-cpp/include/spine/TwoColorTimeline.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_TwoColorTimeline_h diff --git a/spine-cpp/spine-cpp/include/spine/Updatable.h b/spine-cpp/spine-cpp/include/spine/Updatable.h index 12046a252..51f8cec40 100644 --- a/spine-cpp/spine-cpp/include/spine/Updatable.h +++ b/spine-cpp/spine-cpp/include/spine/Updatable.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Updatable_h diff --git a/spine-cpp/spine-cpp/include/spine/Vector.h b/spine-cpp/spine-cpp/include/spine/Vector.h index 4ef0082f7..4d263725c 100644 --- a/spine-cpp/spine-cpp/include/spine/Vector.h +++ b/spine-cpp/spine-cpp/include/spine/Vector.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Vector_h diff --git a/spine-cpp/spine-cpp/include/spine/VertexAttachment.h b/spine-cpp/spine-cpp/include/spine/VertexAttachment.h index 94d84f615..5cf8f0065 100644 --- a/spine-cpp/spine-cpp/include/spine/VertexAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/VertexAttachment.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_VertexAttachment_h diff --git a/spine-cpp/spine-cpp/include/spine/VertexEffect.h b/spine-cpp/spine-cpp/include/spine/VertexEffect.h index b7e4cc5fc..dbe7ae58f 100644 --- a/spine-cpp/spine-cpp/include/spine/VertexEffect.h +++ b/spine-cpp/spine-cpp/include/spine/VertexEffect.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_VertexEffect_h diff --git a/spine-cpp/spine-cpp/include/spine/Vertices.h b/spine-cpp/spine-cpp/include/spine/Vertices.h index 1f7878abf..fa2b0f5de 100644 --- a/spine-cpp/spine-cpp/include/spine/Vertices.h +++ b/spine-cpp/spine-cpp/include/spine/Vertices.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef Spine_Vertices_h diff --git a/spine-cpp/spine-cpp/include/spine/dll.h b/spine-cpp/spine-cpp/include/spine/dll.h index cef97153c..2fe016030 100644 --- a/spine-cpp/spine-cpp/include/spine/dll.h +++ b/spine-cpp/spine-cpp/include/spine/dll.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SHAREDLIB_H diff --git a/spine-cpp/spine-cpp/include/spine/spine.h b/spine-cpp/spine-cpp/include/spine/spine.h index 9cf23855f..39d989bef 100644 --- a/spine-cpp/spine-cpp/include/spine/spine.h +++ b/spine-cpp/spine-cpp/include/spine/spine.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SPINE_H_ diff --git a/spine-cpp/spine-cpp/src/spine/Animation.cpp b/spine-cpp/spine-cpp/src/spine/Animation.cpp index 81776644f..bc4156cce 100644 --- a/spine-cpp/spine-cpp/src/spine/Animation.cpp +++ b/spine-cpp/spine-cpp/src/spine/Animation.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/AnimationState.cpp b/spine-cpp/spine-cpp/src/spine/AnimationState.cpp index 17166778f..26bb86471 100644 --- a/spine-cpp/spine-cpp/src/spine/AnimationState.cpp +++ b/spine-cpp/spine-cpp/src/spine/AnimationState.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp b/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp index bb1d29e22..afd1d2bee 100644 --- a/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp +++ b/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Atlas.cpp b/spine-cpp/spine-cpp/src/spine/Atlas.cpp index a01012a01..bd5484b6f 100644 --- a/spine-cpp/spine-cpp/src/spine/Atlas.cpp +++ b/spine-cpp/spine-cpp/src/spine/Atlas.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/AtlasAttachmentLoader.cpp b/spine-cpp/spine-cpp/src/spine/AtlasAttachmentLoader.cpp index b0ca2d9be..92e4d16d4 100644 --- a/spine-cpp/spine-cpp/src/spine/AtlasAttachmentLoader.cpp +++ b/spine-cpp/spine-cpp/src/spine/AtlasAttachmentLoader.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Attachment.cpp b/spine-cpp/spine-cpp/src/spine/Attachment.cpp index eef1e5020..fd83f2f8f 100644 --- a/spine-cpp/spine-cpp/src/spine/Attachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/Attachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/AttachmentLoader.cpp b/spine-cpp/spine-cpp/src/spine/AttachmentLoader.cpp index ae5c4a79f..5875f7e6c 100644 --- a/spine-cpp/spine-cpp/src/spine/AttachmentLoader.cpp +++ b/spine-cpp/spine-cpp/src/spine/AttachmentLoader.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/AttachmentTimeline.cpp b/spine-cpp/spine-cpp/src/spine/AttachmentTimeline.cpp index b6e03be72..e71e4e18f 100644 --- a/spine-cpp/spine-cpp/src/spine/AttachmentTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/AttachmentTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Bone.cpp b/spine-cpp/spine-cpp/src/spine/Bone.cpp index d103f718b..305cba173 100644 --- a/spine-cpp/spine-cpp/src/spine/Bone.cpp +++ b/spine-cpp/spine-cpp/src/spine/Bone.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/BoneData.cpp b/spine-cpp/spine-cpp/src/spine/BoneData.cpp index 621fb2cd4..36a322163 100644 --- a/spine-cpp/spine-cpp/src/spine/BoneData.cpp +++ b/spine-cpp/spine-cpp/src/spine/BoneData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/BoundingBoxAttachment.cpp b/spine-cpp/spine-cpp/src/spine/BoundingBoxAttachment.cpp index 04ec03f32..918493a7e 100644 --- a/spine-cpp/spine-cpp/src/spine/BoundingBoxAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/BoundingBoxAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/ClippingAttachment.cpp b/spine-cpp/spine-cpp/src/spine/ClippingAttachment.cpp index e79ccf7f0..b1a54619d 100644 --- a/spine-cpp/spine-cpp/src/spine/ClippingAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/ClippingAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/ColorTimeline.cpp b/spine-cpp/spine-cpp/src/spine/ColorTimeline.cpp index 950855fb4..b01bd29fd 100644 --- a/spine-cpp/spine-cpp/src/spine/ColorTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/ColorTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/ConstraintData.cpp b/spine-cpp/spine-cpp/src/spine/ConstraintData.cpp index 937f5f5b0..9e4e313ee 100644 --- a/spine-cpp/spine-cpp/src/spine/ConstraintData.cpp +++ b/spine-cpp/spine-cpp/src/spine/ConstraintData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/CurveTimeline.cpp b/spine-cpp/spine-cpp/src/spine/CurveTimeline.cpp index c10f247f4..92e9a08d5 100644 --- a/spine-cpp/spine-cpp/src/spine/CurveTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/CurveTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/DeformTimeline.cpp b/spine-cpp/spine-cpp/src/spine/DeformTimeline.cpp index a45ae45fe..bdec6e440 100644 --- a/spine-cpp/spine-cpp/src/spine/DeformTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/DeformTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/DrawOrderTimeline.cpp b/spine-cpp/spine-cpp/src/spine/DrawOrderTimeline.cpp index 9f6c705dd..9f4028891 100644 --- a/spine-cpp/spine-cpp/src/spine/DrawOrderTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/DrawOrderTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/Event.cpp b/spine-cpp/spine-cpp/src/spine/Event.cpp index c92573e83..4f1c1e87a 100644 --- a/spine-cpp/spine-cpp/src/spine/Event.cpp +++ b/spine-cpp/spine-cpp/src/spine/Event.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/EventData.cpp b/spine-cpp/spine-cpp/src/spine/EventData.cpp index f0a137b98..6c03797bb 100644 --- a/spine-cpp/spine-cpp/src/spine/EventData.cpp +++ b/spine-cpp/spine-cpp/src/spine/EventData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/EventTimeline.cpp b/spine-cpp/spine-cpp/src/spine/EventTimeline.cpp index a24a87e91..f05552375 100644 --- a/spine-cpp/spine-cpp/src/spine/EventTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/EventTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Extension.cpp b/spine-cpp/spine-cpp/src/spine/Extension.cpp index 8a34efa82..e19f2738e 100644 --- a/spine-cpp/spine-cpp/src/spine/Extension.cpp +++ b/spine-cpp/spine-cpp/src/spine/Extension.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/IkConstraint.cpp b/spine-cpp/spine-cpp/src/spine/IkConstraint.cpp index 2e9d565ae..e6ba21ddc 100644 --- a/spine-cpp/spine-cpp/src/spine/IkConstraint.cpp +++ b/spine-cpp/spine-cpp/src/spine/IkConstraint.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 @@ -45,19 +45,42 @@ RTTI_IMPL(IkConstraint, Updatable) void IkConstraint::apply(Bone &bone, float targetX, float targetY, bool compress, bool stretch, bool uniform, float alpha) { Bone *p = bone.getParent(); - float id, x, y, tx, ty, rotationIK; - if (!bone._appliedValid) bone.updateAppliedTransform(); - 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 = MathUtil::atan2(ty, tx) * MathUtil::Rad_Deg - bone._ashearX - bone._arotation; + float pa = p->_a, pb = p->_b, pc = p->_c, pd = p->_d; + float rotationIK = -bone._ashearX - bone._arotation; + float tx = 0, ty = 0; + if (!bone._appliedValid) bone.updateAppliedTransform(); + + switch(bone._data.getTransformMode()) { + case TransformMode_OnlyTranslation: + tx = targetX - bone._worldX; + ty = targetY - bone._worldY; + break; + case TransformMode_NoRotationOrReflection: { + rotationIK += MathUtil::atan2(pc, pa) * MathUtil::Rad_Deg; + float ps = MathUtil::abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; + } + default: + float x = targetX - p->_worldX, y = targetY - p->_worldY; + float d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone._ax; + ty = (y * pa - x * pc) / d - bone._ay; + } + rotationIK += MathUtil::atan2(ty, tx) * MathUtil::Rad_Deg; if (bone._ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; float sx = bone._ascaleX; float sy = bone._ascaleY; if (compress || stretch) { + switch(bone._data.getTransformMode()) { + case TransformMode_NoScale: + case TransformMode_NoScaleOrReflection: + tx = targetX - bone._worldX; + ty = targetY - bone._worldY; + default: ; + } float b = bone._data.getLength() * sx, dd = MathUtil::sqrt(tx * tx + ty * ty); if (((compress && dd < b) || (stretch && dd > b)) && (b > 0.0001f)) { float s = (dd / b - 1) * alpha + 1; @@ -331,4 +354,3 @@ float IkConstraint::getSoftness() { void IkConstraint::setSoftness(float inValue) { _softness = inValue; } - diff --git a/spine-cpp/spine-cpp/src/spine/IkConstraintData.cpp b/spine-cpp/spine-cpp/src/spine/IkConstraintData.cpp index cf4329a48..f13fe5f69 100644 --- a/spine-cpp/spine-cpp/src/spine/IkConstraintData.cpp +++ b/spine-cpp/spine-cpp/src/spine/IkConstraintData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 @@ -108,4 +108,3 @@ float IkConstraintData::getSoftness() { void IkConstraintData::setSoftness(float inValue) { _softness = inValue; } - diff --git a/spine-cpp/spine-cpp/src/spine/IkConstraintTimeline.cpp b/spine-cpp/spine-cpp/src/spine/IkConstraintTimeline.cpp index 911a91d1a..f0e817a5d 100644 --- a/spine-cpp/spine-cpp/src/spine/IkConstraintTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/IkConstraintTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/LinkedMesh.cpp b/spine-cpp/spine-cpp/src/spine/LinkedMesh.cpp index f84549e38..cfc082a14 100644 --- a/spine-cpp/spine-cpp/src/spine/LinkedMesh.cpp +++ b/spine-cpp/spine-cpp/src/spine/LinkedMesh.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/MathUtil.cpp b/spine-cpp/spine-cpp/src/spine/MathUtil.cpp index bef2c557e..4601f7179 100644 --- a/spine-cpp/spine-cpp/src/spine/MathUtil.cpp +++ b/spine-cpp/spine-cpp/src/spine/MathUtil.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/MeshAttachment.cpp b/spine-cpp/spine-cpp/src/spine/MeshAttachment.cpp index bca5bd9cc..4bb4338ab 100644 --- a/spine-cpp/spine-cpp/src/spine/MeshAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/MeshAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PathAttachment.cpp b/spine-cpp/spine-cpp/src/spine/PathAttachment.cpp index fa837f469..ff74a4fb3 100644 --- a/spine-cpp/spine-cpp/src/spine/PathAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/PathConstraint.cpp b/spine-cpp/spine-cpp/src/spine/PathConstraint.cpp index bc5fc6138..b28f80fed 100644 --- a/spine-cpp/spine-cpp/src/spine/PathConstraint.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathConstraint.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PathConstraintData.cpp b/spine-cpp/spine-cpp/src/spine/PathConstraintData.cpp index ea9362748..55f69dbf3 100644 --- a/spine-cpp/spine-cpp/src/spine/PathConstraintData.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathConstraintData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PathConstraintMixTimeline.cpp b/spine-cpp/spine-cpp/src/spine/PathConstraintMixTimeline.cpp index a8b8bdf05..5d4404e58 100644 --- a/spine-cpp/spine-cpp/src/spine/PathConstraintMixTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathConstraintMixTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PathConstraintPositionTimeline.cpp b/spine-cpp/spine-cpp/src/spine/PathConstraintPositionTimeline.cpp index d832df696..f470e4f0b 100644 --- a/spine-cpp/spine-cpp/src/spine/PathConstraintPositionTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathConstraintPositionTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PathConstraintSpacingTimeline.cpp b/spine-cpp/spine-cpp/src/spine/PathConstraintSpacingTimeline.cpp index 0e0135dad..b84f46b12 100644 --- a/spine-cpp/spine-cpp/src/spine/PathConstraintSpacingTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/PathConstraintSpacingTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/PointAttachment.cpp b/spine-cpp/spine-cpp/src/spine/PointAttachment.cpp index d3fed1772..8c5ceb981 100644 --- a/spine-cpp/spine-cpp/src/spine/PointAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/PointAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/RTTI.cpp b/spine-cpp/spine-cpp/src/spine/RTTI.cpp index 6a8f5bec3..4b915445e 100644 --- a/spine-cpp/spine-cpp/src/spine/RTTI.cpp +++ b/spine-cpp/spine-cpp/src/spine/RTTI.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/RegionAttachment.cpp b/spine-cpp/spine-cpp/src/spine/RegionAttachment.cpp index 8a4106928..461a5a9f0 100644 --- a/spine-cpp/spine-cpp/src/spine/RegionAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/RegionAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/RotateTimeline.cpp b/spine-cpp/spine-cpp/src/spine/RotateTimeline.cpp index f0616b104..037363917 100644 --- a/spine-cpp/spine-cpp/src/spine/RotateTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/RotateTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp b/spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp index cd88d1288..f00e0320c 100644 --- a/spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/ShearTimeline.cpp b/spine-cpp/spine-cpp/src/spine/ShearTimeline.cpp index 6ab4723ee..046d057ad 100644 --- a/spine-cpp/spine-cpp/src/spine/ShearTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/ShearTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp index 3307b1f1a..f9927daad 100644 --- a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp +++ b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp index dbf530134..fd266ee1b 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 @@ -128,6 +128,12 @@ SkeletonData *SkeletonBinary::readSkeletonData(const unsigned char *binary, cons char *skeletonData_version = readString(input); skeletonData->_version.own(skeletonData_version); + if ("3.8.75" == skeletonData->_version) { + delete input; + delete skeletonData; + setError("Unsupported skeleton data, please export with a newer version of Spine.", ""); + return NULL; + } skeletonData->_x = readFloat(input); skeletonData->_y = readFloat(input); diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonBounds.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonBounds.cpp index 680ced005..cfa3c9960 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonBounds.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonBounds.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp index f9363b143..fa5bb4867 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonClipping.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonData.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonData.cpp index 07ffe3fc9..a23ab043b 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonData.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp index 5cc9b76a6..18be34c90 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonJson.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 @@ -133,6 +133,11 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) { if (skeleton) { skeletonData->_hash = Json::getString(skeleton, "hash", 0); skeletonData->_version = Json::getString(skeleton, "spine", 0); + if ("3.8.75" == skeletonData->_version) { + delete skeletonData; + setError(root, "Unsupported skeleton data, please export with a newer version of Spine.", ""); + return NULL; + } skeletonData->_x = Json::getFloat(skeleton, "x", 0); skeletonData->_y = Json::getFloat(skeleton, "y", 0); skeletonData->_width = Json::getFloat(skeleton, "width", 0); diff --git a/spine-cpp/spine-cpp/src/spine/Skin.cpp b/spine-cpp/spine-cpp/src/spine/Skin.cpp index 17cdc6222..caf02258e 100644 --- a/spine-cpp/spine-cpp/src/spine/Skin.cpp +++ b/spine-cpp/spine-cpp/src/spine/Skin.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/Slot.cpp b/spine-cpp/spine-cpp/src/spine/Slot.cpp index 40c450010..0cc8f23e6 100644 --- a/spine-cpp/spine-cpp/src/spine/Slot.cpp +++ b/spine-cpp/spine-cpp/src/spine/Slot.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/SlotData.cpp b/spine-cpp/spine-cpp/src/spine/SlotData.cpp index 940f95804..4f61894e8 100644 --- a/spine-cpp/spine-cpp/src/spine/SlotData.cpp +++ b/spine-cpp/spine-cpp/src/spine/SlotData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/SpineObject.cpp b/spine-cpp/spine-cpp/src/spine/SpineObject.cpp index 98e8dc6f8..34308f432 100644 --- a/spine-cpp/spine-cpp/src/spine/SpineObject.cpp +++ b/spine-cpp/spine-cpp/src/spine/SpineObject.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/TextureLoader.cpp b/spine-cpp/spine-cpp/src/spine/TextureLoader.cpp index f9ff51c82..4cffb3209 100644 --- a/spine-cpp/spine-cpp/src/spine/TextureLoader.cpp +++ b/spine-cpp/spine-cpp/src/spine/TextureLoader.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Timeline.cpp b/spine-cpp/spine-cpp/src/spine/Timeline.cpp index e9029ef49..23bf723ef 100644 --- a/spine-cpp/spine-cpp/src/spine/Timeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/Timeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/TransformConstraint.cpp b/spine-cpp/spine-cpp/src/spine/TransformConstraint.cpp index 69a2a3d9e..c2ac1b5ab 100644 --- a/spine-cpp/spine-cpp/src/spine/TransformConstraint.cpp +++ b/spine-cpp/spine-cpp/src/spine/TransformConstraint.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 @@ -353,4 +353,3 @@ bool TransformConstraint::isActive() { void TransformConstraint::setActive(bool inValue) { _active = inValue; } - diff --git a/spine-cpp/spine-cpp/src/spine/TransformConstraintData.cpp b/spine-cpp/spine-cpp/src/spine/TransformConstraintData.cpp index 127aa7369..52cf4540d 100644 --- a/spine-cpp/spine-cpp/src/spine/TransformConstraintData.cpp +++ b/spine-cpp/spine-cpp/src/spine/TransformConstraintData.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/TransformConstraintTimeline.cpp b/spine-cpp/spine-cpp/src/spine/TransformConstraintTimeline.cpp index 5d00fc6d6..2da77e8b4 100644 --- a/spine-cpp/spine-cpp/src/spine/TransformConstraintTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/TransformConstraintTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/TranslateTimeline.cpp b/spine-cpp/spine-cpp/src/spine/TranslateTimeline.cpp index ae92e6d23..09f9b065f 100644 --- a/spine-cpp/spine-cpp/src/spine/TranslateTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/TranslateTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Triangulator.cpp b/spine-cpp/spine-cpp/src/spine/Triangulator.cpp index 5c124a95e..3c5602531 100644 --- a/spine-cpp/spine-cpp/src/spine/Triangulator.cpp +++ b/spine-cpp/spine-cpp/src/spine/Triangulator.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + #ifdef SPINE_UE4 #include "SpinePluginPrivatePCH.h" #endif diff --git a/spine-cpp/spine-cpp/src/spine/TwoColorTimeline.cpp b/spine-cpp/spine-cpp/src/spine/TwoColorTimeline.cpp index 6b3d61717..89d34d85e 100644 --- a/spine-cpp/spine-cpp/src/spine/TwoColorTimeline.cpp +++ b/spine-cpp/spine-cpp/src/spine/TwoColorTimeline.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/Updatable.cpp b/spine-cpp/spine-cpp/src/spine/Updatable.cpp index abdb02b44..419347335 100644 --- a/spine-cpp/spine-cpp/src/spine/Updatable.cpp +++ b/spine-cpp/spine-cpp/src/spine/Updatable.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/VertexAttachment.cpp b/spine-cpp/spine-cpp/src/spine/VertexAttachment.cpp index a2d702c84..9ff2cdaf7 100644 --- a/spine-cpp/spine-cpp/src/spine/VertexAttachment.cpp +++ b/spine-cpp/spine-cpp/src/spine/VertexAttachment.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-cpp/spine-cpp/src/spine/VertexEffect.cpp b/spine-cpp/spine-cpp/src/spine/VertexEffect.cpp index ccff77079..68e22e68a 100644 --- a/spine-cpp/spine-cpp/src/spine/VertexEffect.cpp +++ b/spine-cpp/spine-cpp/src/spine/VertexEffect.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifdef SPINE_UE4 diff --git a/spine-csharp/src/Animation.cs b/spine-csharp/src/Animation.cs index dd420b5ba..a7efa5904 100644 --- a/spine-csharp/src/Animation.cs +++ b/spine-csharp/src/Animation.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index 4752aaa5b..0ddfecbb8 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/AnimationStateData.cs b/spine-csharp/src/AnimationStateData.cs index f8fcb9d95..6cda146fa 100644 --- a/spine-csharp/src/AnimationStateData.cs +++ b/spine-csharp/src/AnimationStateData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Atlas.cs b/spine-csharp/src/Atlas.cs index c73ba99ae..3ef27c5d1 100644 --- a/spine-csharp/src/Atlas.cs +++ b/spine-csharp/src/Atlas.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if (UNITY_5 || UNITY_5_3_OR_NEWER || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1) diff --git a/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs b/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs index 4b0541189..52b405988 100644 --- a/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs +++ b/spine-csharp/src/Attachments/AtlasAttachmentLoader.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/Attachment.cs b/spine-csharp/src/Attachments/Attachment.cs index 328a8bf25..80918bc69 100644 --- a/spine-csharp/src/Attachments/Attachment.cs +++ b/spine-csharp/src/Attachments/Attachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/AttachmentLoader.cs b/spine-csharp/src/Attachments/AttachmentLoader.cs index 2f2eb9cdd..962376b66 100644 --- a/spine-csharp/src/Attachments/AttachmentLoader.cs +++ b/spine-csharp/src/Attachments/AttachmentLoader.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine { diff --git a/spine-csharp/src/Attachments/AttachmentType.cs b/spine-csharp/src/Attachments/AttachmentType.cs index b9c2cd6c7..09000e52f 100644 --- a/spine-csharp/src/Attachments/AttachmentType.cs +++ b/spine-csharp/src/Attachments/AttachmentType.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine { diff --git a/spine-csharp/src/Attachments/BoundingBoxAttachment.cs b/spine-csharp/src/Attachments/BoundingBoxAttachment.cs index eb69e7d27..f9b736922 100644 --- a/spine-csharp/src/Attachments/BoundingBoxAttachment.cs +++ b/spine-csharp/src/Attachments/BoundingBoxAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/ClippingAttachment.cs b/spine-csharp/src/Attachments/ClippingAttachment.cs index 2d64e53e2..b0aa8db61 100644 --- a/spine-csharp/src/Attachments/ClippingAttachment.cs +++ b/spine-csharp/src/Attachments/ClippingAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/MeshAttachment.cs b/spine-csharp/src/Attachments/MeshAttachment.cs index 1b9b8cfbf..fad2ee1de 100644 --- a/spine-csharp/src/Attachments/MeshAttachment.cs +++ b/spine-csharp/src/Attachments/MeshAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/PathAttachment.cs b/spine-csharp/src/Attachments/PathAttachment.cs index 20765871b..375379d5e 100644 --- a/spine-csharp/src/Attachments/PathAttachment.cs +++ b/spine-csharp/src/Attachments/PathAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/PointAttachment.cs b/spine-csharp/src/Attachments/PointAttachment.cs index 87997e93c..be4668ec6 100644 --- a/spine-csharp/src/Attachments/PointAttachment.cs +++ b/spine-csharp/src/Attachments/PointAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine { diff --git a/spine-csharp/src/Attachments/RegionAttachment.cs b/spine-csharp/src/Attachments/RegionAttachment.cs index 5b2658f40..460f9b8f3 100644 --- a/spine-csharp/src/Attachments/RegionAttachment.cs +++ b/spine-csharp/src/Attachments/RegionAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Attachments/VertexAttachment.cs b/spine-csharp/src/Attachments/VertexAttachment.cs index 5bbfcb9ad..2c534def1 100644 --- a/spine-csharp/src/Attachments/VertexAttachment.cs +++ b/spine-csharp/src/Attachments/VertexAttachment.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/BlendMode.cs b/spine-csharp/src/BlendMode.cs index c74e55b57..037540330 100644 --- a/spine-csharp/src/BlendMode.cs +++ b/spine-csharp/src/BlendMode.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine { diff --git a/spine-csharp/src/Bone.cs b/spine-csharp/src/Bone.cs index c60c05938..16b3941ab 100644 --- a/spine-csharp/src/Bone.cs +++ b/spine-csharp/src/Bone.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/BoneData.cs b/spine-csharp/src/BoneData.cs index 9c80fbe74..4cb4664ce 100644 --- a/spine-csharp/src/BoneData.cs +++ b/spine-csharp/src/BoneData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Collections/OrderedDictionary.cs b/spine-csharp/src/Collections/OrderedDictionary.cs index e60e7f37b..6af4cc4ab 100644 --- a/spine-csharp/src/Collections/OrderedDictionary.cs +++ b/spine-csharp/src/Collections/OrderedDictionary.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,17 +15,18 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ + /****************************************************************************** * Thanks to Travis Parks * https://github.com/jehugaleahsa/truncon.collections.OrderedDictionary diff --git a/spine-csharp/src/ConstraintData.cs b/spine-csharp/src/ConstraintData.cs index 7f50cc5fa..d4f950322 100644 --- a/spine-csharp/src/ConstraintData.cs +++ b/spine-csharp/src/ConstraintData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Event.cs b/spine-csharp/src/Event.cs index 50a2632f9..72c3b70d2 100644 --- a/spine-csharp/src/Event.cs +++ b/spine-csharp/src/Event.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/EventData.cs b/spine-csharp/src/EventData.cs index 2f1928d77..39094f411 100644 --- a/spine-csharp/src/EventData.cs +++ b/spine-csharp/src/EventData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/IUpdatable.cs b/spine-csharp/src/IUpdatable.cs index 4c480d777..aa380adff 100644 --- a/spine-csharp/src/IUpdatable.cs +++ b/spine-csharp/src/IUpdatable.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine { diff --git a/spine-csharp/src/IkConstraint.cs b/spine-csharp/src/IkConstraint.cs index 6c5e0f3a5..b9a03c236 100644 --- a/spine-csharp/src/IkConstraint.cs +++ b/spine-csharp/src/IkConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; @@ -159,17 +159,44 @@ namespace Spine { float alpha) { 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 = (float)Math.Atan2(ty, tx) * MathUtils.RadDeg - bone.ashearX - bone.arotation; + + float pa = p.a, pb = p.b, pc = p.c, pd = p.d; + float rotationIK = -bone.ashearX - bone.arotation; + float tx = 0, ty = 0; + + switch(bone.data.transformMode) { + case TransformMode.OnlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + break; + case TransformMode.NoRotationOrReflection: + rotationIK += Math.Atan2(pc, pa) * MathUtils.radDeg; + float ps = Math.Abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; + // Fall through + default: + let x = targetX - p.worldX, y = targetY - p.worldY; + let d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + + rotationIK += (float)Math.Atan2(ty, tx) * MathUtils.RadDeg; if (bone.ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) // rotationIK += 360; + float sx = bone.ascaleX, sy = bone.ascaleY; if (compress || stretch) { + switch (bone.data.transformMode) { + case TransformMode.NoScale: + case TransformMode.NoScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } float b = bone.data.length * sx, dd = (float)Math.Sqrt(tx * tx + ty * ty); if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001f) { float s = (dd / b - 1) * alpha + 1; diff --git a/spine-csharp/src/IkConstraintData.cs b/spine-csharp/src/IkConstraintData.cs index 8e89c7235..bc6a1c76f 100644 --- a/spine-csharp/src/IkConstraintData.cs +++ b/spine-csharp/src/IkConstraintData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Json.cs b/spine-csharp/src/Json.cs index 878a4e77a..aa790f422 100644 --- a/spine-csharp/src/Json.cs +++ b/spine-csharp/src/Json.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/MathUtils.cs b/spine-csharp/src/MathUtils.cs index 24feb8914..230eb0bd1 100644 --- a/spine-csharp/src/MathUtils.cs +++ b/spine-csharp/src/MathUtils.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/PathConstraint.cs b/spine-csharp/src/PathConstraint.cs index ef32ffd7f..c8fef419e 100644 --- a/spine-csharp/src/PathConstraint.cs +++ b/spine-csharp/src/PathConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/PathConstraintData.cs b/spine-csharp/src/PathConstraintData.cs index 3b43c14c9..fa6e71fd9 100644 --- a/spine-csharp/src/PathConstraintData.cs +++ b/spine-csharp/src/PathConstraintData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Skeleton.cs b/spine-csharp/src/Skeleton.cs index 846b1dd8f..1bd501723 100644 --- a/spine-csharp/src/Skeleton.cs +++ b/spine-csharp/src/Skeleton.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/SkeletonBinary.cs b/spine-csharp/src/SkeletonBinary.cs index 69be565c8..e4ce5538c 100644 --- a/spine-csharp/src/SkeletonBinary.cs +++ b/spine-csharp/src/SkeletonBinary.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if (UNITY_5 || UNITY_5_3_OR_NEWER || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1) @@ -128,6 +128,8 @@ namespace Spine { if (skeletonData.hash.Length == 0) skeletonData.hash = null; skeletonData.version = input.ReadString(); if (skeletonData.version.Length == 0) skeletonData.version = null; + if ("3.8.75" == skeletonData.version) + throw new Exception("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = input.ReadFloat(); skeletonData.y = input.ReadFloat(); skeletonData.width = input.ReadFloat(); diff --git a/spine-csharp/src/SkeletonBounds.cs b/spine-csharp/src/SkeletonBounds.cs index 53b7f5571..fe247364f 100644 --- a/spine-csharp/src/SkeletonBounds.cs +++ b/spine-csharp/src/SkeletonBounds.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/SkeletonClipping.cs b/spine-csharp/src/SkeletonClipping.cs index 4e3b83b01..40b6036a6 100644 --- a/spine-csharp/src/SkeletonClipping.cs +++ b/spine-csharp/src/SkeletonClipping.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/SkeletonData.cs b/spine-csharp/src/SkeletonData.cs index 0a51afc77..05ec27229 100644 --- a/spine-csharp/src/SkeletonData.cs +++ b/spine-csharp/src/SkeletonData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/SkeletonJson.cs b/spine-csharp/src/SkeletonJson.cs index 06a398d1f..de7f2367e 100644 --- a/spine-csharp/src/SkeletonJson.cs +++ b/spine-csharp/src/SkeletonJson.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if (UNITY_5 || UNITY_5_3_OR_NEWER || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1) @@ -99,6 +99,8 @@ namespace Spine { var skeletonMap = (Dictionary)root["skeleton"]; skeletonData.hash = (string)skeletonMap["hash"]; skeletonData.version = (string)skeletonMap["spine"]; + if ("3.8.75" == skeletonData.version) + throw new Exception("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = GetFloat(skeletonMap, "x", 0); skeletonData.y = GetFloat(skeletonMap, "y", 0); skeletonData.width = GetFloat(skeletonMap, "width", 0); diff --git a/spine-csharp/src/Skin.cs b/spine-csharp/src/Skin.cs index c21190499..de26ad1b8 100644 --- a/spine-csharp/src/Skin.cs +++ b/spine-csharp/src/Skin.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Slot.cs b/spine-csharp/src/Slot.cs index 814743836..309f1e08d 100644 --- a/spine-csharp/src/Slot.cs +++ b/spine-csharp/src/Slot.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; @@ -179,4 +179,4 @@ namespace Spine { return data.name; } } -} \ No newline at end of file +} diff --git a/spine-csharp/src/SlotData.cs b/spine-csharp/src/SlotData.cs index 489b9b9b8..a51b2949e 100644 --- a/spine-csharp/src/SlotData.cs +++ b/spine-csharp/src/SlotData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/TransformConstraint.cs b/spine-csharp/src/TransformConstraint.cs index 1da70e2d6..25761029c 100644 --- a/spine-csharp/src/TransformConstraint.cs +++ b/spine-csharp/src/TransformConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/TransformConstraintData.cs b/spine-csharp/src/TransformConstraintData.cs index 0793c6355..f3da4d6a0 100644 --- a/spine-csharp/src/TransformConstraintData.cs +++ b/spine-csharp/src/TransformConstraintData.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-csharp/src/Triangulator.cs b/spine-csharp/src/Triangulator.cs index a7ee54988..f0cc8dc5b 100644 --- a/spine-csharp/src/Triangulator.cs +++ b/spine-csharp/src/Triangulator.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; 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 index b8e3a289c..df1fa6d0f 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AttachmentTimelineTests.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AttachmentTimelineTests.java index 4e38ea773..b19ad75f0 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AttachmentTimelineTests.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AttachmentTimelineTests.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 c7d33b4e5..f1d293966 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 61736e80b..a4ac6ca9c 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 db816aa05..7dcd38d0c 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/IKTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/IKTest.java index 53e120cb6..8c3c3da60 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/IKTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/IKTest.java @@ -1,3 +1,32 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + package com.esotericsoftware.spine; import com.badlogic.gdx.ApplicationAdapter; 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 19afffc35..819f82225 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 a654fb932..dc2806a9b 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest1.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest1.java index 6a3a6fd1f..e62343918 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest1.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest1.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 dcda09e41..8b17c426b 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest3.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest3.java index 5db41eb1b..10a5d9d7f 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest3.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest3.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest4.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest4.java index bd9973359..86bf30b3f 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest4.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SimpleTest4.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkeletonAttachmentTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkeletonAttachmentTest.java index 36b37c885..c86982515 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkeletonAttachmentTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkeletonAttachmentTest.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkinBonesMixAndMatchTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkinBonesMixAndMatchTest.java index 4ddc6ae99..26cc319b8 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkinBonesMixAndMatchTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/SkinBonesMixAndMatchTest.java @@ -1,3 +1,31 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/TestHarness.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/TestHarness.java index 7da8a523f..b6a7cc615 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/TestHarness.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/TestHarness.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/VertexEffectTest.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/VertexEffectTest.java index 4e27a5cd0..9a2928cbe 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/VertexEffectTest.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/VertexEffectTest.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 ddf723c93..94d31a000 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 d4e073280..b6f05a173 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 656e014cb..4e8b89260 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationStateData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 519f0c711..2ac8580b5 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BlendMode.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 7dbdf5717..e6ded39db 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 337dde645..1238fafc7 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/ConstraintData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/ConstraintData.java index 4a706e297..a81fb08f1 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/ConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/ConstraintData.java @@ -1,3 +1,31 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ package com.esotericsoftware.spine; 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 9d97d31c4..8be43af80 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Event.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 fd5a0f5ce..9b7c3512c 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/EventData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 83b7b8f60..f3402a0f0 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 36c6db76e..141569537 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraintData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 ae82d96c0..d65de4b5a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 d73d2a1ca..3bbd76f39 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraintData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 0c4732c9b..55b217d80 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 12ab47221..d10f0b5ff 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; @@ -138,8 +138,10 @@ public class SkeletonBinary { try { skeletonData.hash = input.readString(); if (skeletonData.hash.isEmpty()) skeletonData.hash = null; - skeletonData.version = input.readString(); + skeletonData.version = input.readString(); if (skeletonData.version.isEmpty()) skeletonData.version = null; + if ("3.8.75".equals(skeletonData.version)) + throw new RuntimeException("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = input.readFloat(); skeletonData.y = input.readFloat(); skeletonData.width = input.readFloat(); 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 602ac18f1..d102b8143 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 1386462ea..8686826cc 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 779c33803..0fb425858 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; @@ -126,6 +126,8 @@ public class SkeletonJson { if (skeletonMap != null) { skeletonData.hash = skeletonMap.getString("hash", null); skeletonData.version = skeletonMap.getString("spine", null); + if ("3.8.75".equals(skeletonData.version)) + throw new RuntimeException("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = skeletonMap.getFloat("x", 0); skeletonData.y = skeletonMap.getFloat("y", 0); skeletonData.width = skeletonMap.getFloat("width", 0); 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 3f3284acb..31fbb2169 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 c5dc08d3e..8d8b37fe9 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 70a0e5704..5c15c3df3 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 b180f1397..8a5bbca9a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 f52a5f276..3a0033af2 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SlotData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 8434c2a5f..aef88fed6 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraint.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 b0a1d2a96..057896585 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/TransformConstraintData.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Updatable.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Updatable.java index 115d80153..5c988eb3a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Updatable.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Updatable.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 e4ea33d01..6d16d1dc5 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 8245804a6..3aca3fe6c 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 831d773f4..4599ef307 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentType.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentType.java index c1e813595..dd8a8819b 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentType.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/AttachmentType.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 c39793e7f..dfc1d07c4 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/ClippingAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/ClippingAttachment.java index ede356ea5..4554b3a49 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/ClippingAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/ClippingAttachment.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 194920406..228d243ac 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 199ea6059..a59e8091a 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PointAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PointAttachment.java index 9f890fbfb..d31808a23 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PointAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/PointAttachment.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 0ba75bd07..7cb54a116 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/SkeletonAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/SkeletonAttachment.java index 040d0cf19..e8fccb513 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/SkeletonAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/SkeletonAttachment.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; 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 8b5f74685..d791c3af5 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 @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.attachments; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActor.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActor.java index 7502243ff..3cc226009 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActor.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActor.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActorPool.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActorPool.java index 9a1408e64..b5393e1a9 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActorPool.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonActorPool.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java index 634da9444..ed5feb945 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDataLoader.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDataLoader.java index ad6a2cf18..22009f1b5 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDataLoader.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDataLoader.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDrawable.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDrawable.java index 23cb5cd9b..86799eb7a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDrawable.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonDrawable.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonPool.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonPool.java index 92c8b3576..501306b8a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonPool.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonPool.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SpineUtils.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SpineUtils.java index fb2c0fb53..f97c27a4a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SpineUtils.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SpineUtils.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Triangulator.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Triangulator.java index b98ebad86..1bebabc67 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Triangulator.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/Triangulator.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/TwoColorPolygonBatch.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/TwoColorPolygonBatch.java index bd82abca9..07317e9ee 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/TwoColorPolygonBatch.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/TwoColorPolygonBatch.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.utils; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/JitterEffect.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/JitterEffect.java index f25f6e46e..2a2ee1d75 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/JitterEffect.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/JitterEffect.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.vertexeffects; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/SwirlEffect.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/SwirlEffect.java index cee7f0c1f..e17ab1e1e 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/SwirlEffect.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/vertexeffects/SwirlEffect.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine.vertexeffects; diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/JsonRollback.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/JsonRollback.java index 5a17e0aac..465875670 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/JsonRollback.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/JsonRollback.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; 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 b12b469a3..c72f12cc8 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package com.esotericsoftware.spine; diff --git a/spine-love/main.lua b/spine-love/main.lua index 877948c0a..3edc873c7 100644 --- a/spine-love/main.lua +++ b/spine-love/main.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local spine = require "spine-love.spine" diff --git a/spine-love/spine-love/spine.lua b/spine-love/spine-love/spine.lua index e6acd381e..c68306524 100644 --- a/spine-love/spine-love/spine.lua +++ b/spine-love/spine-love/spine.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/Animation.lua b/spine-lua/Animation.lua index 37f0e3801..8ed608df1 100644 --- a/spine-lua/Animation.lua +++ b/spine-lua/Animation.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- -- FIXME diff --git a/spine-lua/AnimationState.lua b/spine-lua/AnimationState.lua index aeec135b2..4a2943c98 100644 --- a/spine-lua/AnimationState.lua +++ b/spine-lua/AnimationState.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/AnimationStateData.lua b/spine-lua/AnimationStateData.lua index 1256e61af..359a089f5 100644 --- a/spine-lua/AnimationStateData.lua +++ b/spine-lua/AnimationStateData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AnimationStateData = {} diff --git a/spine-lua/Atlas.lua b/spine-lua/Atlas.lua index c1d85fcec..fd8660032 100644 --- a/spine-lua/Atlas.lua +++ b/spine-lua/Atlas.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local Atlas = {} diff --git a/spine-lua/AtlasAttachmentLoader.lua b/spine-lua/AtlasAttachmentLoader.lua index 431b2183d..c787f08f6 100644 --- a/spine-lua/AtlasAttachmentLoader.lua +++ b/spine-lua/AtlasAttachmentLoader.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/AttachmentLoader.lua b/spine-lua/AttachmentLoader.lua index 58f0d4d1a..ceb0f6fa0 100644 --- a/spine-lua/AttachmentLoader.lua +++ b/spine-lua/AttachmentLoader.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/AttachmentType.lua b/spine-lua/AttachmentType.lua index 0027cbf7a..94129597d 100644 --- a/spine-lua/AttachmentType.lua +++ b/spine-lua/AttachmentType.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = { diff --git a/spine-lua/BlendMode.lua b/spine-lua/BlendMode.lua index e3a4e1c3f..b5b95dbed 100644 --- a/spine-lua/BlendMode.lua +++ b/spine-lua/BlendMode.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local BlendMode = { diff --git a/spine-lua/Bone.lua b/spine-lua/Bone.lua index a6875670a..75ca5d03a 100644 --- a/spine-lua/Bone.lua +++ b/spine-lua/Bone.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/BoneData.lua b/spine-lua/BoneData.lua index b1bf13737..156085045 100644 --- a/spine-lua/BoneData.lua +++ b/spine-lua/BoneData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/BoundingBoxAttachment.lua b/spine-lua/BoundingBoxAttachment.lua index 713369602..cdc3ea242 100644 --- a/spine-lua/BoundingBoxAttachment.lua +++ b/spine-lua/BoundingBoxAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.AttachmentType" diff --git a/spine-lua/Color.lua b/spine-lua/Color.lua index 27925a096..0ca410f44 100644 --- a/spine-lua/Color.lua +++ b/spine-lua/Color.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/Event.lua b/spine-lua/Event.lua index 3201a1078..66865569b 100644 --- a/spine-lua/Event.lua +++ b/spine-lua/Event.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local Event = {} diff --git a/spine-lua/EventData.lua b/spine-lua/EventData.lua index 16d379690..3a630143f 100644 --- a/spine-lua/EventData.lua +++ b/spine-lua/EventData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local EventData = {} diff --git a/spine-lua/IkConstraint.lua b/spine-lua/IkConstraint.lua index 3e93c145e..2732a494e 100644 --- a/spine-lua/IkConstraint.lua +++ b/spine-lua/IkConstraint.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable @@ -40,6 +40,8 @@ local math_deg = math.deg local math_rad = math.rad local math_abs = math.abs +local TransformMode = require "spine-lua.TransformMode" + local IkConstraint = {} IkConstraint.__index = IkConstraint @@ -87,21 +89,49 @@ end function IkConstraint:apply1 (bone, targetX, targetY, compress, stretch, uniform, alpha) 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 + + local pa = p.a + local pb = p.b + local pc = p.c + local pd = p.d + local rotationIK = -bone.ashearX - bone.arotation + local tx = 0 + local ty = 0 + + if bone.data.transformMode == TransformMode.onlyTranslation then + tx = targetX - bone.worldX + ty = targetY - bone.worldY + elseif bone.data.transformMode == TransformMode.noRotationOrReflection then + rotationIK = rotationIK + Math.atan2(pc, pa) * MathUtils.radDeg + local ps = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc) + pb = -pc * ps + pd = pa * ps + local x = targetX - p.worldX + local y = targetY - p.worldY + local d = pa * pd - pb * pc + tx = (x * pd - y * pb) / d - bone.ax + ty = (y * pa - x * pc) / d - bone.ay + else + local x = targetX - p.worldX + local y = targetY - p.worldY + local d = pa * pd - pb * pc + tx = (x * pd - y * pb) / d - bone.ax + ty = (y * pa - x * pc) / d - bone.ay + end + rotationIK = rotationIK + math_deg(math_atan2(ty, tx)) if bone.ascaleX < 0 then rotationIK = rotationIK + 180 end if rotationIK > 180 then - rotationIK = rotationIK - 360 + rotationIK = rotationIK - 360 elseif (rotationIK < -180) then - rotationIK = rotationIK + 360 + rotationIK = rotationIK + 360 end local sx = bone.ascaleX local sy = bone.ascaleY if compress or stretch then + if bone.data.transformMode == TransformMode.noScale or bone.data.transformMode == TransformMode.noScaleOrReflection then + tx = targetX - bone.worldX + ty = targetY - bone.worldY + end local b = bone.data.length * sx local dd = math_sqrt(tx * tx + ty * ty) if (compress and dd < b) or (stretch and dd > b) and b > 0.0001 then @@ -111,7 +141,7 @@ function IkConstraint:apply1 (bone, targetX, targetY, compress, stretch, uniform end end bone:updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY) -end + end function IkConstraint:apply2 (parent, child, targetX, targetY, bendDir, stretch, softness, alpha) if alpha == 0 then diff --git a/spine-lua/IkConstraintData.lua b/spine-lua/IkConstraintData.lua index 1669bdeb8..27f04c7bc 100644 --- a/spine-lua/IkConstraintData.lua +++ b/spine-lua/IkConstraintData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local IkConstraintData = {} diff --git a/spine-lua/Interpolation.lua b/spine-lua/Interpolation.lua index e1b0324e4..4650cb91e 100644 --- a/spine-lua/Interpolation.lua +++ b/spine-lua/Interpolation.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local interpolation = {} diff --git a/spine-lua/MeshAttachment.lua b/spine-lua/MeshAttachment.lua index a5b06eb44..64ca2926a 100644 --- a/spine-lua/MeshAttachment.lua +++ b/spine-lua/MeshAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.AttachmentType" diff --git a/spine-lua/PathConstraint.lua b/spine-lua/PathConstraint.lua index a74d89dc0..55933807d 100644 --- a/spine-lua/PathConstraint.lua +++ b/spine-lua/PathConstraint.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- -- FIXME the logic in this file uses 0-based indexing. Each array diff --git a/spine-lua/PathConstraintData.lua b/spine-lua/PathConstraintData.lua index a384b8d62..709592470 100644 --- a/spine-lua/PathConstraintData.lua +++ b/spine-lua/PathConstraintData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local PathConstraintData = {} diff --git a/spine-lua/RegionAttachment.lua b/spine-lua/RegionAttachment.lua index 0eb0baa1f..644d358a5 100644 --- a/spine-lua/RegionAttachment.lua +++ b/spine-lua/RegionAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.AttachmentType" diff --git a/spine-lua/Skeleton.lua b/spine-lua/Skeleton.lua index a6c3e41c4..fe71ff052 100644 --- a/spine-lua/Skeleton.lua +++ b/spine-lua/Skeleton.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = require "spine-lua.utils" diff --git a/spine-lua/SkeletonBounds.lua b/spine-lua/SkeletonBounds.lua index f57e990b8..24726c623 100644 --- a/spine-lua/SkeletonBounds.lua +++ b/spine-lua/SkeletonBounds.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/SkeletonClipping.lua b/spine-lua/SkeletonClipping.lua index 08e04b1b4..0e6240c0b 100644 --- a/spine-lua/SkeletonClipping.lua +++ b/spine-lua/SkeletonClipping.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = require "spine-lua.utils" diff --git a/spine-lua/SkeletonData.lua b/spine-lua/SkeletonData.lua index 0e88234ea..5a2efdb4d 100644 --- a/spine-lua/SkeletonData.lua +++ b/spine-lua/SkeletonData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/SkeletonJson.lua b/spine-lua/SkeletonJson.lua index dd0f48096..f62a937d8 100644 --- a/spine-lua/SkeletonJson.lua +++ b/spine-lua/SkeletonJson.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local table_insert = table.insert @@ -83,6 +83,9 @@ function SkeletonJson.new (attachmentLoader) if skeletonMap then skeletonData.hash = skeletonMap["hash"] skeletonData.version = skeletonMap["spine"] + if ("3.8.75" == skeletonData.version) then + error("Unsupported skeleton data, please export with a newer version of Spine.") + end skeletonData.x = skeletonMap["x"] skeletonData.y = skeletonMap["y"] skeletonData.width = skeletonMap["width"] diff --git a/spine-lua/Skin.lua b/spine-lua/Skin.lua index 081dfe3d9..260fc4111 100644 --- a/spine-lua/Skin.lua +++ b/spine-lua/Skin.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/Slot.lua b/spine-lua/Slot.lua index 5672aae34..0978edb5b 100644 --- a/spine-lua/Slot.lua +++ b/spine-lua/Slot.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/SlotData.lua b/spine-lua/SlotData.lua index 678e67abf..7c5d3c50f 100644 --- a/spine-lua/SlotData.lua +++ b/spine-lua/SlotData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local BlendMode = require "spine-lua.BlendMode" diff --git a/spine-lua/TextureAtlas.lua b/spine-lua/TextureAtlas.lua index 3dc1a5751..d5bd90012 100644 --- a/spine-lua/TextureAtlas.lua +++ b/spine-lua/TextureAtlas.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/TextureAtlasRegion.lua b/spine-lua/TextureAtlasRegion.lua index 5b4cc1310..bf7a8b3c1 100644 --- a/spine-lua/TextureAtlasRegion.lua +++ b/spine-lua/TextureAtlasRegion.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/TextureFilter.lua b/spine-lua/TextureFilter.lua index cedac847f..1c759a184 100644 --- a/spine-lua/TextureFilter.lua +++ b/spine-lua/TextureFilter.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local TextureFilter = { diff --git a/spine-lua/TextureRegion.lua b/spine-lua/TextureRegion.lua index dd70b05d2..bf26afea2 100644 --- a/spine-lua/TextureRegion.lua +++ b/spine-lua/TextureRegion.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/TextureWrap.lua b/spine-lua/TextureWrap.lua index e9f8ef573..419253a9b 100644 --- a/spine-lua/TextureWrap.lua +++ b/spine-lua/TextureWrap.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local TextureWrap = { diff --git a/spine-lua/TransformConstraint.lua b/spine-lua/TransformConstraint.lua index edf2181ca..edd428902 100644 --- a/spine-lua/TransformConstraint.lua +++ b/spine-lua/TransformConstraint.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/TransformConstraintData.lua b/spine-lua/TransformConstraintData.lua index e67e95be7..47d21d23a 100644 --- a/spine-lua/TransformConstraintData.lua +++ b/spine-lua/TransformConstraintData.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local TransformConstraintData = {} diff --git a/spine-lua/TransformMode.lua b/spine-lua/TransformMode.lua index 4104d4614..203eb2bbe 100644 --- a/spine-lua/TransformMode.lua +++ b/spine-lua/TransformMode.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local TransformMode = { diff --git a/spine-lua/Triangulator.lua b/spine-lua/Triangulator.lua index 9a7ac612b..93a73033b 100644 --- a/spine-lua/Triangulator.lua +++ b/spine-lua/Triangulator.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = require "spine-lua.utils" diff --git a/spine-lua/attachments/Attachment.lua b/spine-lua/attachments/Attachment.lua index 01a41dfe7..228302664 100644 --- a/spine-lua/attachments/Attachment.lua +++ b/spine-lua/attachments/Attachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/attachments/AttachmentType.lua b/spine-lua/attachments/AttachmentType.lua index f7d6a6a67..d3c502416 100644 --- a/spine-lua/attachments/AttachmentType.lua +++ b/spine-lua/attachments/AttachmentType.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = { diff --git a/spine-lua/attachments/BoundingBoxAttachment.lua b/spine-lua/attachments/BoundingBoxAttachment.lua index a8a7b02b8..1b8a92ed8 100644 --- a/spine-lua/attachments/BoundingBoxAttachment.lua +++ b/spine-lua/attachments/BoundingBoxAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/attachments/ClippingAttachment.lua b/spine-lua/attachments/ClippingAttachment.lua index f0a28b222..dc9771273 100644 --- a/spine-lua/attachments/ClippingAttachment.lua +++ b/spine-lua/attachments/ClippingAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/attachments/MeshAttachment.lua b/spine-lua/attachments/MeshAttachment.lua index 2f3eefbd7..64a66a29c 100644 --- a/spine-lua/attachments/MeshAttachment.lua +++ b/spine-lua/attachments/MeshAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/attachments/PathAttachment.lua b/spine-lua/attachments/PathAttachment.lua index c81b552a9..4d1146263 100644 --- a/spine-lua/attachments/PathAttachment.lua +++ b/spine-lua/attachments/PathAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/attachments/PointAttachment.lua b/spine-lua/attachments/PointAttachment.lua index de769c988..85423cc8e 100644 --- a/spine-lua/attachments/PointAttachment.lua +++ b/spine-lua/attachments/PointAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local AttachmentType = require "spine-lua.attachments.AttachmentType" diff --git a/spine-lua/attachments/RegionAttachment.lua b/spine-lua/attachments/RegionAttachment.lua index 37207485f..5a64fee7c 100644 --- a/spine-lua/attachments/RegionAttachment.lua +++ b/spine-lua/attachments/RegionAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local setmetatable = setmetatable diff --git a/spine-lua/attachments/VertexAttachment.lua b/spine-lua/attachments/VertexAttachment.lua index e9a461949..1071a4adf 100644 --- a/spine-lua/attachments/VertexAttachment.lua +++ b/spine-lua/attachments/VertexAttachment.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- -- FIXME the logic in this file uses 0-based indexing. Each array diff --git a/spine-lua/utils.lua b/spine-lua/utils.lua index be4d7c5d2..842faae21 100644 --- a/spine-lua/utils.lua +++ b/spine-lua/utils.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = {} diff --git a/spine-lua/vertexeffects/JitterEffect.lua b/spine-lua/vertexeffects/JitterEffect.lua index d9efd2050..f5a6fbfcd 100644 --- a/spine-lua/vertexeffects/JitterEffect.lua +++ b/spine-lua/vertexeffects/JitterEffect.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = require "spine-lua.utils" diff --git a/spine-lua/vertexeffects/SwirlEffect.lua b/spine-lua/vertexeffects/SwirlEffect.lua index 826451e77..05ff640e6 100644 --- a/spine-lua/vertexeffects/SwirlEffect.lua +++ b/spine-lua/vertexeffects/SwirlEffect.lua @@ -1,8 +1,8 @@ ------------------------------------------------------------------------------- -- Spine Runtimes License Agreement --- Last updated May 1, 2019. Replaces all prior versions. +-- Last updated January 1, 2020. Replaces all prior versions. -- --- Copyright (c) 2013-2019, Esoteric Software LLC +-- Copyright (c) 2013-2020, Esoteric Software LLC -- -- Integration of the Spine Runtimes into software or otherwise creating -- derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ -- Spine Editor license and redistribution of the Products in any form must -- include this license and copyright notice. -- --- THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. +-- THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 +-- THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- local utils = require "spine-lua.utils" diff --git a/spine-monogame/example/ExampleGame.cs b/spine-monogame/example/ExampleGame.cs index 6d2a0e2e2..3c5e9ee0c 100644 --- a/spine-monogame/example/ExampleGame.cs +++ b/spine-monogame/example/ExampleGame.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-monogame/example/ExampleProgram.cs b/spine-monogame/example/ExampleProgram.cs index 16bd78281..ccc243530 100644 --- a/spine-monogame/example/ExampleProgram.cs +++ b/spine-monogame/example/ExampleProgram.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-monogame/example/Properties/AssemblyInfo.cs b/spine-monogame/example/Properties/AssemblyInfo.cs index a3fe613ed..5f75c39e2 100644 --- a/spine-monogame/example/Properties/AssemblyInfo.cs +++ b/spine-monogame/example/Properties/AssemblyInfo.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Reflection; diff --git a/spine-sfml/c/example/main.cpp b/spine-sfml/c/example/main.cpp index 5e09cffa1..34e47b2b6 100644 --- a/spine-sfml/c/example/main.cpp +++ b/spine-sfml/c/example/main.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-sfml/c/src/spine/spine-sfml.cpp b/spine-sfml/c/src/spine/spine-sfml.cpp index 08784c79d..8d2eb4a97 100644 --- a/spine-sfml/c/src/spine/spine-sfml.cpp +++ b/spine-sfml/c/src/spine/spine-sfml.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define SPINE_SHORT_NAMES diff --git a/spine-sfml/c/src/spine/spine-sfml.h b/spine-sfml/c/src/spine/spine-sfml.h index dc062bd8c..372ebce8f 100644 --- a/spine-sfml/c/src/spine/spine-sfml.h +++ b/spine-sfml/c/src/spine/spine-sfml.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SFML_H_ diff --git a/spine-sfml/cpp/example/main.cpp b/spine-sfml/cpp/example/main.cpp index be9f27f7f..c40aaf7b6 100644 --- a/spine-sfml/cpp/example/main.cpp +++ b/spine-sfml/cpp/example/main.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include diff --git a/spine-sfml/cpp/src/spine/spine-sfml.cpp b/spine-sfml/cpp/src/spine/spine-sfml.cpp index 70e1dd48d..badfa39d0 100644 --- a/spine-sfml/cpp/src/spine/spine-sfml.cpp +++ b/spine-sfml/cpp/src/spine/spine-sfml.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define SPINE_SHORT_NAMES diff --git a/spine-sfml/cpp/src/spine/spine-sfml.h b/spine-sfml/cpp/src/spine/spine-sfml.h index 6f6c97787..cd1df7fe0 100644 --- a/spine-sfml/cpp/src/spine/spine-sfml.h +++ b/spine-sfml/cpp/src/spine/spine-sfml.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #ifndef SPINE_SFML_H_ diff --git a/spine-starling/spine-starling-example/src/spine/examples/CoinExample.as b/spine-starling/spine-starling-example/src/spine/examples/CoinExample.as index 1c815dbff..5b150dd66 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/CoinExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/CoinExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/GoblinsExample.as b/spine-starling/spine-starling-example/src/spine/examples/GoblinsExample.as index b59c569fe..882f2ae64 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/GoblinsExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/GoblinsExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { 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 04b68f553..e98dceaef 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/Main.as +++ b/spine-starling/spine-starling-example/src/spine/examples/Main.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/MixAndMatchExample.as b/spine-starling/spine-starling-example/src/spine/examples/MixAndMatchExample.as index aa97eb037..c6daf4e0f 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/MixAndMatchExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/MixAndMatchExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/OwlExample.as b/spine-starling/spine-starling-example/src/spine/examples/OwlExample.as index 848d0a273..842e5738e 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/OwlExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/OwlExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/RaptorExample.as b/spine-starling/spine-starling-example/src/spine/examples/RaptorExample.as index 1bebc27ea..511064639 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/RaptorExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/RaptorExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/Shape.as b/spine-starling/spine-starling-example/src/spine/examples/Shape.as index b62e658ec..29d98e286 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/Shape.as +++ b/spine-starling/spine-starling-example/src/spine/examples/Shape.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { 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 dcbce4d0e..7c999a68d 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/SpineboyExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as b/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as index b9103edea..f86721641 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/StretchymanExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/TankExample.as b/spine-starling/spine-starling-example/src/spine/examples/TankExample.as index d519aa4ba..cd45f7e0b 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/TankExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/TankExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/TwoColorExample.as b/spine-starling/spine-starling-example/src/spine/examples/TwoColorExample.as index d53f4fbc7..55e93484a 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/TwoColorExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/TwoColorExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling-example/src/spine/examples/VineExample.as b/spine-starling/spine-starling-example/src/spine/examples/VineExample.as index 119f8b29c..91294ba22 100644 --- a/spine-starling/spine-starling-example/src/spine/examples/VineExample.as +++ b/spine-starling/spine-starling-example/src/spine/examples/VineExample.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.examples { diff --git a/spine-starling/spine-starling/lib/spine-starling.swc b/spine-starling/spine-starling/lib/spine-starling.swc index 47990d6ae65098626d1828d91ada064a18b79b6f..8f3701a6bad18d974ac3befd151b9afe9c8e3002 100644 GIT binary patch delta 51019 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�#%YbT*1dyA;W@?N4v9<_GG)5=HlfymvBS@ z%3E4!5W3470+&A7ITFlk8gL-V%yu!%%L~spUP`m~`RNDvF_U{M~3*TxFtY_Qv`mEoDFmF0n=oP6m?mm z4ooH~CX*1}YmiV+G08|XDUbntJS$6~oGgX&vJ~lJQWVb9G1Id-o5HQZN(BY}tv)nF(vRmhaLj+{Cv*vRDGb`$roBg2gA)5&GALybbE&!y z;2iw)(bv$0TFruW2d@PBYeCzfP+jOtHUOmea|18-M_xk(IUm=#UNM}$%zxO~*}@Yh zBr#@(*vA2EqY28s%rEThP^k}7sUa#gVh8-ChN#qlTWVC4y6J=<_y6t{8{&aRu^4~x zrJbGnOj4?qZcypH1cD0p;{W}SWUmNjflnemf+ATzJPy*Z*bmbgoPZDLcRFz(3PCx#X1 zvT5B&yt=c4hy*q^^F`=5)Q*kyo}o$5tn#&H6YmlgZ9_%F&5AV9#{0u+CgY3>8_+ zHP>oDwC6D>R7ICr(u!JnLK~UjTuwM0<~gFC%s^rHEO~foeqT)uRu=+rz6qCdug7; z5dk_vmT{X_Y=zA>@SuW1@I?HmQQZS>cM@>(EF_t4X213wT4yatrb2m)!&5zf;~1{vL2UI{+FSY27Tys&><4KH1O^zzEW z^787H6>SN&QA`1v~>ylBJoxK%~D&}%D4 z{2|)>!bR(PklKmDTEc&YF;Pr=+VcfgL{H5JQIdqSFAFPK zdU}Z(vi_c>(33C<7Qg7C$U=GIrNzs^i{4Os26+%GYuIujQ%-;7>_O>J)7+ozGxsNV zvgO1QEy|5p)?hh<^Js3R@LyvU|hQ*Ae)H~}jrt@X?EpK791!qlk|Id<^1a z2p=VU0BlY(Wkixjr7-|*(xfDnr9Bd?^nCy@rvO&$XRab~l@utU@|mg4sj*ipW)do{ zpRVNAj#my=df;8j&)gw;Qg*j(0zy8ci4SL+;`M{kI{3Io_p|l%(dto1Ze36s2H%kIW-qJ5fI=~xPp^b zP`D6k3Ktp;7cMj#E?lTkr!wl?b9Q9X8mUZF;sj~OCap2>2pbiXlh!17(&X7QY3&hK zqqPq3c3OYHTb1DLw^^%&uf{25U#lRwr!zL^36D!R*8}GYoqGVVRrp+J6A=nT+%<`Z zm^Qif-KVBqx(9^mHOzZ@30{|N>o&}2`3`38Y1z|>Ln}UpgpTY1FnC)=P=oO#w~UP=18~_JrQQL@T+sN z`fQBVD{Lk%S@6~@tzI!K1JNE?6Uvw7f(-_Pph^blUA2Qs2epG}-fgN9@zf3qlZ1D) zn1#mEqc_wO+PV3Lb-kuG7$OY_4Y)LvQoAyk@VVPGRT%drM0oCzDxfBBCJB8C9i|#7 z*CT)JHH|ZFXC*XPa11tx(@RgIroEFeGaFO_IxM>rAlR^M+BiLv1_1x|(4x$*-LNwW zyWiY6v)`6uD;*+@pVEFNPm|t~wm<_8>Ts0KMzmNqDV4mfNkwZBijIo+6jH2wK6Ob?|OKMV)w3Gq|YuPU}&91T1|)gF>$47ra6C{45^E_fM>gN5IukO zG}-T=C4(uQ0>R))1VA=oqB^EDMJZ09zD}`7enn6o@xm*ibvz}YUcVEB9mgGQwikAh zVhRuL#-`m#} zw6x3Sj@UbLV(-Wj=-A5nK}V}f1Og)JPD48>=_!?Be|_OUefXFD_D>(k?|Jz2w+Dg` zx@61;TXnnr?qTu%iu?Yv!;k&(d*1%cGymrBSNcBq7f*fVClCMqd*AUJE1!S3cK87O zZ6E%LPvPIM9{z_f{Poro{N&*!^~u>MA4v;<(%Lda&?WuoBQvw79?_1>oPOk#v2dlj zco9%WmyqTIdmZ#7xwO$vFbRR8tDQ>F;XIv1p0=W!Xl^pjVf;chbk56A)z6W>6XP6d zXQ&3wx!W#)sfF_dJzXuM-Y$O|SganQ0HJPG7m8{!sPSrbW#KJYn5WsIny}{Qk0NAU z@PbSTIpP2^?+*~#Mm@Dl^wk7*8}KvM+B+U3eFm#WoLlHlwQi=IX7`TZR|n-+6XmIn z^67>0X^ZkyM1|}N&c_B^|yt}I--!WNaK)fKj+Emohjo|Lccm#^}&9&H#GhFw0vz^zCM5b9qw^?Z^vzq*sU**DB}$UWV`9x5j2#U3uQyuSYFQVEy#s& z?XJMxa**kPpsIxA@R@eI?P9lttx}2fh5@P52&t1zw5{Z)T`O6L)|;EALYt;co2E;@ zE*g5PYI=DDDcLF=?myUfoH~QBbUX_KQbEB*;qK=Gzvx9bmO@9oA^lJBZ-fcj%P}I zWbu*1M;;$tx;RsIOFd`>5B8xxI0yCvN?T--Hozo(kV(c6R9up!;4q*X5w)X&UY+Ss zz=%pDI2R)*c&I}F5b3_zKHT&aeUHSx5+p)qag^Bod*OdKP_+976h$O`^-s>E!MNr7EUx+{OE4xwvXW z9)W_M@nxQDWG+MINj|y3%e?Gn?rFA#_cV$yPzVgNMb?llfJat&&jt^^2=TpqAXD1e zF}snO!0r{yDdVD6$~uasA?Nyel#lY{mUB<#5DX93X8JX}^Y1T7&Ox+K)L&xg2y8j` zuA+Y|LW<`~lF-o$19#s`cFMe4k{}#r$o;j5J;ZZ-$hiZ44{X5WF#PV^ST9L2yasyE zIfBEA?~kp*cjjm+Dif>r;J6u)TSww34?%YvUFYeIHQqOA9R=S*Jb=$e*h9RZ4`TZ! z(Sd><;4VYoh1SvbLYW8FQID~X2q<%CH=*!-BsGLyX(%0#KW>wcOHX8y|B!OeGJnIfR!$2d>4%=S80=O%@Kcl z`4Hdh9E50lA3FIySe{v)-OBv?ot;f5TMA%fvZ#tceD6fn&X3beA2)vqS)Yb@7OM(F zCE+!g-s3R!hLimyqFnm)Dst;ek$~{R;1#gX%oX%QI0CQk(i?cPExiF>2CG{xsT?XR z$+M5^b464?P(q7&`Prgo-p#0(*d2eA?e!F#mP)TvHV*x>?$0@Z3D+B$2Q>5Bk|fw{ zd%2D+COrtbX#}FM7$Vfd%!|-M>>NzwuA2aa2iDPU*E+>QU%#xIzr3@5viMM~Yf z`S3)N#1M4e^-^*a&9-8jRDYZB>m>54j%Ym!^p%C0K$J$rl&$r zm7W?sb$S}`gwNcbNF=clFi>A~+Y>HHFI}A-jKHYoac<-I;rKrM#tx4hhmksq+Tc+O zz8!**=Ap)b(_qjyw0(h$CSvf@Fo@jpx@au`e)O_+(QMdY#w6*LE=ql~@*9P3Iyv5j zu{ntC*{8znjfrhwL=*?06hePf@Ee6+5`Ja)jlnNLlT(I|13>;^oRu*Fm(iMy2bV|5 zEr4B;+=>gY(XEnujNBTz69BPO2#I)dZJ!3~X8>U1CB(fs&k##<{woivJ z1NO5rg#naHh_E0ZfNb1Y!;PX3ok4K!f!rhO`-}}fu*Qvj0R(MD$Zda8Sl=2Cim-kH z#6@1*0BGG$dj$c(BA=uj{d^Clnsh7JY?l(0>h zXoDqvjm83Ex-wT_rm3WC!v#ag&W3IPV7!YK*^8Z_6N03D0y-g}+Q;{{K&LL4Cs7#v ziQS-yUh#2rLiuhX)O~+0gi0a*Un>;)hAf~^7eskrMywMT(tKWaAx+QiK$@Q0gfy=R z>xBd^s&*RcOuLJNr`;)Tl3Psi6uFhg)K9xpJV|b?G4<0hSl-l6myF$0KiEF?gB_-R zsKe9`z1h?ccbNL&mZ{%9;Sh_B!bkuX3lk+R1kc`VAxw0bworczPh&AJr{SvunO`AU zgVu6xk`LfCBGH|f$j$NusmZYY!w^qw;NU)rO^@<;bAsTm7H^v%z2JsKjR_L>O_4Qk zj>OF`11=4F#=Z!Q2MkpTk!nCc$H>IRcd{+~!9U=(AW51Yme>-SV+(C<6Dq#7?M|{F zxNwRQl52nm=NOas&=!9|41qFuPz2621LZZYTL+Ow?620H$RW21G9`kI!D@NXZO=bS zwMHN>u`kG2Z*yp=?P;DC!+O2hH0F+j* zZvaS%)=}E5#Omv-6BBj{gJK*lvL$$m669c=timczakRx|@-!7@h;Q-41~d&$1hC}e z@C@)IE`-cBlcCWULHnYSf@t>cR-$duW=wV)4%T6w zTnRSGu-?sJ$R)2zej2SHn7i8fT|%OM6*ah5g^q2PJgneNs}yJ_$I<<&(sB*JWCI!~ zF{0>5NYIgxf1V>DIR`I-WEDRFFJHzsr#7MA*yIJaN!&>n6nv|b7t{)?C>8aLa#owX zfc*1B@X?7!yR{1p(FHPf!JkJvnWgdco4fs>{IhTU(%RpA?dKox8hmf`lJ(Aohb}JJ z?|go-x*$b_4*1oJ*2>ayw$((9S61Y-FOBHKxTggDf8^4|>*tp)-~6UMgehlNSFWtC zh)fF&s&B~kKXbKey3W&{MtahkY*g)KYsJ10!`NHucJFW*-`2uv5Ce!SiQ4hV<@vWP zu3SJ`t>OAZi&d}WCEn? zlih60jW@QrNxt0syWju2^{+Zp_4b+We*5%Py_oZKKV@)%Uc*#E03=9`^A7mvu7ZM} zE65WoC=xxFf=xZfC-NM9V_0)bNi{W4;W=psq}`GI>*T1AO)jtB5r1 z)UE?m1AG*utju-mpg2TJyW)A+oM7p@WWFLv#M)}jt!7Uni=R;&Zp$3M!)I&d|WUh_Ldx$z3Pex+s(DC{DIxR-qb1thK?D=dJvl}!V zwFUJWHjBnE_@Ez8F`;~Ya8Q1+wRN6M2&e>YE0AQLfN0JO(so42y9;m?QH+_!I>v9R zc)vKGisxIAc-z}|ueEcCL|`Z)7+CKjB9-|CN4g+^1r4x)2w9OX!V{3uPd}a6@TjA< zrq^Qke~`q*xCKA!x9nZZ+w)ZjmRT*p#ekxj6Zq+lv0{(ao%2UNibef{vv7RI&gWS9 zc`XwX3ZXhDSxZbX;;gL)kP%lyAV!*X$!ouDdXeIhE-~Tpn4|I1afhpy50zmA{+=TD z*KO_wss!a&+Rf(Zju3CTp|?_cxDTCFqQ95n#Ouw94ESC1#wyp8&IllmmoRP}ValJg zdno5V@ksJ;3=pW+kY`0}NNS@KIqpF2la>oFc(JFPSjfGwrLm@Lq}w!Q((PKvy|G;k z_OS{_L#{LZOD|L$aQf?kG@;&6jRbAIGEah-<`=!kJ_dL#sG#gBAz*t7-Mi_N0p5gGEE;lSj8n4@Pes#2^^|G zY|4ck)DNU2;c1XIn2SL0ZHI>*@N$*sBAb8Y0_;y>c%rI4%riBeLORbXIpEbQ4e)HM zbyj^+^rnTWoUrGTqfCw~g8+;!WPWpC%Np5_6*#E)ZY7Jj>^e1rzbSQUdVk@Zqw{bi zRgIp7w%o;3=~mz*(+p@Z(>!uj7KxqP9>CI9KL+>SdQhaY?9mM2{c%O2Krqi>2^LKK zeGtuf;%{Et9)~L*fXY!mFu)@}UmjKBxxAK+;AO5BPOX*p<1T=loiY?Kd5#ODM+{BN z{|n$3wtWI%hP;^Y2vR*PQ1QmA-vk=wu}bZWyKkHzTSZDH&aTp^-k7n;etW`u6(9}+Wg2_=DAoTxkO;T3d3YFLgRlJy@JB_i^_pQ( z!TSrr{@0!)W>a2^Ty&yo@J5IN0q%JqW{A%-(q*X7T2URX1YKXa>D?HJ&kZjwBvt!b zvA7-%XFc-#*`e9;I01|92uoT5mPpBlvn^ua%_8IFw&$ILNija>*4gcutahH)6O&zO zm=(oqnA0$dI5kLlUIgC#tA5C3;tnk8SxuFvxWPFCp+WH}KKn-@DH!;VaGg<5_rPZM z3o}1|$pXjBT`KO>1%)UuwPPfpu96a&ir1KR(9pNovD!UH$7@3x>`VK%EF)kIibT!)C%0HvjD4re=iw!mWaGv>~a8m9dWb3 z!OY*`fm2Ss70U6(f=3{|1a=SBk@Nnf@rV74m1J1CA6B?OmXtRz*6wVHK+M+TPi6zP zzy0CmQ6{U%*hpVj;Z=sCUfvkMpF;m%+z0fnmC%c;uOTbc#UoPZ~Mpv08+27@s;?)s} zZ^-B3;s^B6z%6Ek+>LY5djV02*L^~2sc0T*E}_3t+Wrs$fykO-)}K1mZ!U-Jsoagno<}98LxR)O6VhZ!Mg6i}%@d z@Q>1KUq+Xz0^%oF8eJ(nJuFU&8epF*wvXTia)uAO8vfNBc`5xxIKpA(M!G1P6gR+R zs5!@TM1Fb)>bI08H`KdVBG-EE8cR%cM!H#BbkM~IlGfV9bqs>&1AE6ss$%|i(fZJ(-o*1q-q}BY4qUg(E0_FGgX;h=!Y=O z&N&r;qsv-O#^_KDR;}}`y>abWr(^31LA6S&x>WdpjXH3v8o3&DsKqLD{~u*~I<0YX zINX*#tEYDR#}?HUE08V_T%C=ELB&R8zaK8*7{AqkABpcz)8N7C`yidbETsg%iWS4P z4lU&4RFi?nG_s~bU3o?mP~si+^NHR>85e^ACC1}lO7cST(lMhY|D9(j-|9$D9!Y(Z z`%_4c8A@VP_|3wxfHEJ~IK5A&JbaXY$Br(jo(j%>V~M&An&7Z+0bxZ`6NIzXWN&c8 zL{Hu*A2Siq!veJ3oeFLx5A%;2BGw^bi@1ncE@dbO5oZb~V4JhnMx3LLu8gm4xWu6W zPrc%TBs8%d^(_Z#;AuG_5>p*aCdZ+F;Av^XwSzq)Ne7X$xRsJ%P4rw;D8q?kH^=tCYy;uy0Aot@= z`=ut!Hj_9sU8m_Le)FpHBWg|TnJF+EsH9R4Wss?*80lw9;ydqQE543Qy-k?IqEt~+ z*2ibHXoa*)u1CXderBGQ{>*58Ce|QkOyu3g8n;^vo z84wlz*=|_+UUYs1nb2%xe~cV_RY#!jDQIO*{2iN!ev$i^{HXB~EKjNYV>No#X>GPWrWBv|_(on~eY7~#t%>&MvF?X1qy|nlxu2t}03NP# zz&%^4g@JvVkIeVB@XQ66OJ*f^^?~9d@VuID4{Zq9!{0!%tNN={o4rr;LP-2mOi27< zVxj{D0>56FzyzSYJclvUH3U_D0zErl9q)rx%odnRS5&{{(5d>2v5>~2DDw$W0s1nM znkty&!}$tZn8MkSXy6rC|0<3=_Vmg;j9X{P>GsmYm1keJ9I?fPWvb4U(bRGn)+4l4 zbmqByM&*sY`zUut3iY#Ww6(XMaMQpabGUAI(B;^3GF>trrP}%G+p-Jw0SVB@B!=h} zI>UZG25%#`MTa-~b2Z8Oluz?`Abjhn^{4+4<6l*b53zlS701A-ZWKDkZINltDN6;0 za0yM_u(UfoAPq($>KE#UPJQ0eDrsytoB}pX&}rA+-s+H^+5~Wf6hB4|)XVQFa7tfv zN&HQM6FZ%(i5$ew;!W0|1DyY9;tWH>3<(G?EW#y<*9nrlj{U*K;Z3&42csZ-|EgBX zZc;J2(FA5G17H(avIjos6*Ju&Y6jmT?3pWv!GRqM&umAxE!bXl=63AU^;^$sL;f0} zn-@Eps{m{vlH*S@nJUUlZq}-2rFUHA&@Pl@O1yKVyeq!cg+C@<0n?Pw$-a>%#@TfG z)g>~FxUy2lPl!^+Re0%bEigTx5C;xO{p3?EX0nkuepSit5`qkpC}nUdol$v1YNZva zha+7?lyzC=7;3$2NxJy1VZi7nZ3_{yRycnRoARq7qEVtKc9f&Hl9@Enn*Em|Pd%*( zO1cz&gE}nSxZn~t8W221mPTU=2pv=fZpRoTd#b0jKBeCBb>A9v6(yx?+{Rql8f4`k z2-}*fy}+fh^nw=~_grbj-$fpg5QK5ZJBh@{gdOyk~0xEZwoQ^P5MDdwf7=};C z?O4&Mcv<=BVcy?G36t+NhD%4H2ceHB5oei zdJ+F-2E(o52F`8cYJe_{gnd8;_VhHIn>LI6*7XheLCkW2fDm)UToW44RHxrmM+%S3Gx-v> zLnkBS2CPqf-n&DP2cZ(JD3Ldz51DOFj@lvMRCi6_)fnpP>UM%Hd{D!7??k$sXe;vR z#j0FG4-q%(^#Cx{$8AJPUX9H}eX_Ge{;s)Taz)Z;7Cx!;_+;iL;~Syfl!4jk z)xHW`4vGcMAnKzlb|Sxr#U->W)>;1)P&m(OUHhFPC|x4FPs@Ji!j;cx?u+1JQpBP| zi}Q&2i2ZnQyRL2weEfaBxdxMlyCA+R!-35mC-GfYGIRT>#tB7(L)uY<_3X&N=NM35E2~E4GHs_!z zO1D2%zKB7CVURs;Mx@MA-beHNabB%+-8-suK9CwlEKVF}j#fOly0*AaRiwGFoJy2M z%pEt{+{ zxr%E`%c=T%HZ6%*TwedAs5T|7&KgRCz~LA6s{WIGySgl&V5{NYh{{~F=n``FQPK(p za)xN*GPeoA??CnpKe_adT|^BzlBzVrKR`L+v{E@Q1oV1oEJf$h?4YbT<$hTWooP{Hz;Q) zVsB2zmXA#&<9E=!-U?4nHVUbkT(Qvp!Z`lZ^{>Y<{F&RYZe*=6;*SA{NbIJ#6575; z^EC75?v<`H8-*AVlxK$f7t-Q5CcqYTt$kf6#kY+sfgM7R=w%2(biSu$WW`k*+zFUm z3RJk6I7S~`=}y>y$Y7G9od~X)h|L{o+GjNQ0Q2FjA0Y{<*R1eDZKC0eSGzXW@V`RW zi`$T+kn7gbyf%Y=!A&@LgA2iIC+PT|yz?~umgFiRnSFxfLrK1qB@VmH>joyoCMF(U zIUh>PX0(Ng5D#FvVy3H^?@NTDRRhTL65_R+U47m|f5R@-SU1y9Z5N#uwXRTwK&%kg zGKhznK9PGvBrPZVq$&7uW|fINTTn~;8dhcW zU&ATW*q&6@;R&W=kH&qL@X?1 zh2;AY2N&LBOjo&{_^1`t8$Q#>4x1aH!@dNiX0>x%{;4lAqp}0Dh1*QHjks3H#Cuna zXY<~W9s>)BxmH7f(EO$i#ZvoZ6=%d0w+)3trVV5u&mwtv?1P#&t%|t#IAsO$zdfow z3ao)rWtS#y1 z;xVDgAuFc@dI_tb&YdLmDD;pR99ku6Cpm}ja_=F|#IrfaCRrg0jMLU}A^WmI4)fE@ z2QiSN2mK6<?m16>_FCQ(+?2l|3_& zj)pCbQbx{?=I!gczx1&98@b~#-&T^7D z2)9qc&f@(Ku1@j&4;UAi$#=d^i2Z<&4Oy3~M1BWku&-|S5$*CpnIUpZzs1eBv}FJP zqZ)GaIC6Ru5CllTqi$1*`oKmHdK-PnY9rCJd) zQ!0W5`c1aV^-dsL+BX;ACuHOs4W}%jMs5f2GPlaDdqWsXOzmUmaOJr{b?9cPTbDKN zXG7;Vb*&O>`JVjn!oSG2jAtP1dI1vy*_f3S^6WRcsDW`h6T6Hv3{_bm-%U@gUHYnn zVe_-2mKa(ocD$TI{N9D!-3AQ*RQ7hATb~-7qoa;Vg24{s_H-^V`m|eZ&d-zH=dV&J z1(}9^=6S+1%o6j~s%`IKeLyv#evMFQmTx^1WtdxuaBH>G)hW2#Al?k~Jd(~Y!!AGf z-7FeUFINSXsg^QGdpL{RV|a7bj+57K%htgiimpz;>?U6mt!regsOo2DPVufm$4=Zi zo#zJ0frV~HY+Q9`8$siJS%cr*u zQaeE^!(08}RhNqe{?@{^5ZD#OO85K4nw^HcT13rHc~HHPu5RsR^q=im1iOl2t_;P) zgJAuMgJfN;f&xgq0#jSkics)h?wAI#h)daal=-x0*YK!7S7}&%lV?eMLgF1(q|xqD zb&QD&dbjney04bd!(y9K71FfL?og;yW@5=hDd;r=Znav=vCd`71X|M~1F+4yKa8Da zV7Nc%TE8CpjkSCvo;6mOWpzL?vMSrwoMgxQDHxwZK2@>#UN z5v1t`neIGQk*OtLx6!E{@in;MO|*m6Wc(1gauLsg98jr=YK>4sl{dfAo$*vcPBEPs zkcw7^@w@(7%MlZKyLANVw8#d?B)D0`gKz^YC5_1=+)|`^Y12R-1HX~C zY#h>nlpNFF`iLc2jDj2)WII3M=O*a0TQKxI=I!q64y&Ec3&tQ8g`2{&!oTNxz&CHk z4kZhfPmqF7@c*H3>b}zY-gjQXj1Z3G@GF&a-VEedXdBVyy+R1z%Q5bn9dW3l-+&j~ zB-cr2joLGpOt7qG+9VQ-kc3Td^d;K+JwlEYEGHcNyHcSKbKRC>Zk7|0F#x}3Pa&z7Oh zwai%}?7G6pvarn`2eXg>6#BCzh({^CFcpR7VMf-43)~O=qmwQOagD36no9zJfwHto zu>++ftr~nKNL7I@AsnJ72)%{q5MfnDJ&i-df!zAEj^}Z>Qhn5TV|=eYL=*PSS~v;{+#g!w1F*;@cxv~cZ*Y^`GTb@Q*VWFzr~HU%y3&1!iRDm zYL)T!voTYtt~$n!v0VKQTkc$rV8-xagznV{HjGZ8^}>H39(*qK^w>D?LzZ$0%z`ts zBOVp9#)G6YC_}rXhK&}1EHC3O;hJLiQZ?=B13ySF5vZ!iCq;V>9NFpu@{TUm@`-KL zD)Yaaa;u#Um4+ZdFUQOtf*BGheYUN3?$j;}KUm+BqS&+0n%5WCPUTHk^0B$pJJ~z^ z@b@=EdUHhBqB=QBqSAwtJ0Cb)^vG?26-E3_js*4U=4fBzYG!9vi@f!ajQNyVC>)QN zkI2htjYgcN|A-17*#Rg4wtfh>SjDIZWb(@$;Iv}+*i0Zt8L|@0yT{?Gv$BJH5_4r( zzq3O);%zdyZYfG!-|np@7Ml$ldN3$4kYpQZR~Hqb(XB?>l=Hz5ctoj44QJqZWP`Wa zwN4&TUXyGDbMtq!HqSvv#%cCHtkn#v#EjHKa9dT3auapzC`K>>*~;7pJFuJ_27rsN zPK@*HtBlUjLfZwmZ{}7zSHF)lrIm66_Sam$Ah&ruF1jvjjW@~O&{r8+$%X)5C~mNh zAuD3<D3Z-U=W49>rG`1=?lnvl`vxOUSsZ>HHmWcpfZ^(A6o_t$itr{a(< zNQitK(U}NV?{LS3*^XSMiu&$d~j5x1hQ2A46= z?u6WcPTNGEs8gDwOT%r1zQ&VAj}+>{x5y2I*`F}P@$C(JgkIVedySHAL)mhx1LazE zM)#K{ZtbnWk2wl#QI3$TmF63fy4f_6=>)4M&W@(+GGzdpwZ#0KjDvu#ASV)q9ptUK zLYM@32pR>46y~R(lo#_B5@fM;PpY@=Hk1=7A=y4l6Rd>o+b&-1g%fzTGiAlD5G!fp zKmjET3?&r@X{B?HTVcYf4hneykYiR$DK+Ilo!1{I#b{+&bRJUwdvq#{?c6@?SwVsE zDgABg{lL__KtP+A9`qYhvTB9i(%+7n?9IFB2ZpM8=H(~%nKE_KgK}lb6h^a6sUg!B zxYSYgJG+gmecYqLqGMW*S3zw`dz`KcU1?MVY(DZhwmbf>++H@CzfeoB|qy(L*W z3=kk)a6WZo{61>n7ZstKy<~ac6@uiD8tp9IpX;gG zgVH;hUk@dGDbp^IetFv8wg;*Xfg>H1gE9-p{G>`Ms!RI!Ik;n@Nn+;3G^Ku;OTuc zq{I~)2gfp<$n*XegjkA-3y+{SP7Y>lfEyWM#okstkhFIk116Cw+3fKLOc%C>K&~fk zciNaVG>P>UA(GqS9G4a3MMXu0s=x*2^IyW!U!lkLNjoDWv5X|d?7NSMD1 zc~H$8)?uvc-%{nGT$sV9kvQn~01y!e5?*|HZ<+#C>&M<{oSZV1o@}wDO|Riey<5GO z&q}+IzLCFs^}H5cjh4@HC-T+`{rewga_VXAS_-aZc{;t9z4~XvKz|RDC_3k8cL!{-D|KGo0y;gpF?$3YkA0JLv{|+)y}!`Kc8q=JmWA&gzY} z@jfJ><4d_c!hsUdy+r#X@D#p5=AONrW;?zgekP&GZLtbV3wc3z&7nN_%3 zU9I(|EN^ucqoo*b&dDP7UWP^`)L&xGVAIr^ZsG~>^VlFQ=N2}Lr!1q|NQdqjnP#iG zHcs_nuxiHi>ef@%e31Y*eSeT!ms?@LV^FI%ueI+@ZgzQ)11&-I0xhtNTWT(SO2_T*QM`NFRld7J~6VRsBdNo|dea@Fi17!5Sg~q&$MwD&JyFfW13NEP)q|`*?aVq!Wn82IA7nPG z`gW1`NLr!P9ne&PaBI@fJ+fnugNK1|BWImnHXFH`KPgU8x{`k`uC)t8uX(RQT&06< z2m?27#Mv}=AquH8dDCq%laL;oOe+sSxHZ(2D1{_hyR|xmJ_{1Trl_4CZN110)}Q3t zBp}`=9JA0p;YBlTMGb@t7m;pE^^t5PrD$S*O4fv20_rWi3bmndQWUhRfR|lnE%Vi! z?5USJRiQsFyG1VFf6f(Q4LV8B@$*B6VgINcohZ^ScdFCbSoQy~quD!^7;#wYEo}Yn z@aCcBp!z!}uugF52ig1R zb%gat`;gG+u?jHNTl%&57yoR?Pr=_L7F#C7`oK$7V*N`|Vtp}zO)wnza;J3g9kHnU z>F?LH(YX4sPRU3?6Z>HkmUMoYY5$BO9n;Boq7@Az9ny<-qLmFJozhKr*l3tDh?Wi` zPo6cGr?L(fg632*|H9|U*3z@-Pv6Ufm<@$5ltePH*M7=xwefWO*$#HnYB$IIl&5@3 zcL8pHbYwGc{FyKPTeq{5Z8Qv-g`f+u;@=KLqPWi??Y)hCEPG;Q%yRFmJ5MLe8!Z3X z^8B34xovJs2!9tYW1->lHWVs&_ir?;tf5r-vPt8d%Nb3M-zL`xworV+EnJh?w{UV3 z>y660IM*~%VC4v8zGWcOh*iFtyE8o(tqEkL8$E=NB&7%} z?CDog2fECjWB*WF&MX4w!=4n z55@cTwgR|ZZfhr;%Mv|o&qEK53SY@Su7pGInNrb6Z z`R^oZgVp7KEuNApL%`Il9mm5lF=ajdt%_6_bEBS=#nS?Dr**Z z$&h#fXA>(6iq|zEIK~Alm#G4VvC+TL7B@-b#qEezwG#vvg-Dg`8-{{I(_AgU@(tEG z+#hsz!5c&wj;5HIepjizz?zj;#apk(4UF>@Nj~vW6LtI(j+u0L93S*u0?^fKYwLgn zTU#qSzm8u8Ia@UnO5{>hx2(zW8`p7Z9e!8R}8NR%%O?6n3WJ9l@s~6^JH4RssjeFKbl<@%#IlRIpML#rrS^i&2%1^Nb{; zR7)?q?krMPryzbJEDKm77yUg!kpIcB@AFl#9%M7@E=d z73z=VIv5laQY1^soz&?Dg}t@cjic0s4r@@WGO0C|JzN0W1XL1m8`KSeowdfHmC#Q^ z2-1(v*k4#nos}9%tSJn`3}R?uA)*z%lFHzqqh%G3B8ax3HE);x!AVyjOT5^JUj`MH z?G2t26$uF|-jbf;wkq<_L1|$ep+Idcb6_49HHyP+LKmKuAs*reutN`CVo7O%O}VG7 z*~3jy2|+av2704e)}cMXXR}h~tGZvqP%5`)Uq{T=lRw_Tl~m#<7W$ZV-}lY*w+ZT- zrG$J7$7&HZ`@jc!HrO%X<$ z?>AmL!XMH4%fgXaXpR|IFbx#zfYGY_&EdXfL6lysVR^z6uw6Ev-o?+C9G z%)d(3@Xe*)f|m#mO_){x-IdBvpp|?MT_VC;Mt0(D%!1M`YJWZC62-q7#~n6EL{Xp? z+T$8S0MjXx=t$?Ev&09^*4xAp6>~z-Y(x2WRO((^c!J{cZF!yH{i*UErJ*Rki>(!R zV;a=T0JLMQt}`NI*!Fkusq4FahQQraRAzN^jr4~c4Ewv>(2%j9+nLD40ZF(7y7(b+ zRf3MO=@b);t!!C}W3hU$$P9Hm4TmTE<3A*Ofkdqp+J>sy>=X5Kb*8G+ts`FLFxtGo zqzp8NnpC`%2#iy?2I74%GNnftW(OBrS#X(Ylt%<}BQ99Bh)ObWOK6eiTek4#u(rTqmHEUCGGHM&|EumI)?QQd3YZbSuhuB}(Al0&KYYM`GF#=wCK!D7wV1Z7g>VItCYNI>BuX zB)ZmNfc0L6pWsrWcZt8=>M%}~&Y5f0L`CQO%w=i{hjb#wt6N$Xg1! zQ5579SerKUn#CR3b7b8$@1H`flus_9F!ij|VS0nH-U0?D=D1XUIT&DW9>e}dD!O=_ z;bL)-lkmWVr69q?Nk{3|`5anVCE_c-nQJEoSxWo$%%K_C zx{VwW5Z&BKygk?1bH}#*aeOAI1m5-S!eAn4tlSoZO0iMrk!#b|meRO8IXjk?kV(ts z7>^AvS;>~_schcj>XzN*t3>%QF8Td?t=Xdt0i{ow@t$CzVfXo&hv zdv$-A;OZE5pAmmfRUEs0%SJrU5#0g$t!VDU+ESzvZkk<9qGj#V0Nug(sH(E=(tlD10Ks(0QcAB_)4(8E+AMTB{9!Fl8%N03(Axp= zP@552S=d3UZ0sXx|AZ}1Vv$4XE!uJ-!VB02rYcZ`4};LtJ8vyoT|W2v z7g?DZ#268NWsm4A#0uYQ*N;{5?Ezbojm-$&*TDe8#Q^EV zUPL~vcn z_I>lFlIWF(Hcx-)*j0!@ojFbFQHrQX}j>V=s#sW2!EtBn$SE7C7pf5B7N!tpFBldx*jrZP?4$-ijuWx(9@+ z&RTUUc7iAyOFowlWz3Dx_->OkVcp*>c?E1- zVkj5FOXeYSafCe2a6yud0*BovZ?jv`=Zw9 zk-&euXU)wm3vBGL=a9~r9DH_Zr7q|0`nRm62h9~E7D^$kuVPjAD1a>_QAASk2Ez$uR`46H-f zQ3@2D>38|#St(X|7?>J_G_aNJ2q&=MVgY?a`rOd5x^)}vum}u);RCE-+mFw%e7jAJ zYE~JreBp%MoI5*x-*``?j+fje8|0mSG)C3C!x>^uSdC|8(^xX&jc1k6fCo& zWIrNKtmd`+KJTF`c%fmmJbL-+n16hOqiyN^v5Pj_BqDw^ty5re(?-WG*RJ5+I05`w z$G+XdxKhb+!Mma(l7FVuX`?0b!S46ybp@}WEUed(|8wBzyG9##$0)NnLPmjdDq9#0 zSq=-%u4uz+aLCLJQj631%}sOxDmSO@eSc(_Ypz@b0yYZHH-;N-C$@>WQYwqk=|c&kpZcT4!MP#;J&y&g|@rH!`s$tSnuVM>g23Mpm2awSr!E>^$fmQEWjfZ527oj@EYpN|SL{(C7x`oJBSJobUEXp`-Rw8+!lL99m>sRebN#8V3{0nZrs0x_AXl7dpCL-U1MI!Jw#|E>f z(j%9-^`4?{9Bgd;O)K)Nt)ZZ37T`w+wobt+C++j3?eV|P^O-_yZA5qo14j^__PO@a zYBCvO5C*M)LvA5Oq%CCEJ=FOawtUcHmFn?*<2kMhc5fC%hIqD5UbrAi(`f4bmIky@ znqqhOi9lSbo*&|OTi3MhL^+?Hp zv!lRz8yq^AkZ0y=@@1kADPuyLVJEcwK6`&8!0rYyk5nK>v|&EKW@>`RwfkVP<~O=` zwN&UxV)&F~y)Y-Xo7M+{ z)tddfg5T(b+Pp>o$4u55w+L788^R(-4JT^oDk6j5PnO-xDV3Dy-qHGXt>-d-IG<-fxmi%45XwDV zLBepcen)}szkJa|oCtXf zS8L0y!b>;iE80)MM)qFMT+T5&RjNBsb93F<@$Wm48`T|{LEqTuhbHjp^+%W-Tx9zv za1>pRh{S(py~spF#BRa3ePg3@?*TkA@4aJBk}@{QG2@Bd(gzU#i2StGGcf1p*Swp> z^u1%@K6OkM1lNqbl3@I`fA)RW)U@;1;Kyz}=WPEIXV*vs8V~|sk?%`KvPxwitNq)` zZ^2|^{@$3szFE}azgS9h4ccZf-|#}Jc{^*#LD4xG|NCcZzN2F4mzbTsv(><#`75Qe z(0Aq~gZHSsY!#>X;Ufg%XrN3W@6hTf+y8fH&q*YlAxkOx-C59rkdv*Fo$p$}O(H11 z;U{vV>FiMlP+a(yw^!=X&6DW8t#{_UXV`V3`0uM1S^5gXq#vKrl(PKjK;Ve$Fxmr6 zP;_u4mi=s|mbbcw&Dl4uN?Wxmu43EfDoZ->c=Eaywr@$QdQdv}Q?~hR!?*-E7kW`A zXmsds0uEB|X(Ey}kYdHtd*Kfb8o?xreC|#svHI$;z|bf@*E6XjkK`pCL3jQ*VQMzX zutFON(`M7cPCiFDj+RuvGdWtQ)7vWETE2)>upWNFU7k44}-u_Qi2V-a5-R(up zen+(iz=zgcg6{UM4U>qEHTEH^r^4AcB_XQbNZdPTfG(L;i%r5u7fe9n`6$_8E1l)| zxo_NXt`+Z3P6B@0+hUlAbrk#vX-_9;tFhiWE*E8c;z;%l^HSwHt=3@m*M4O?R3@uu zSWYIP1x#UjiV@4IQkq!GmIOD3nf>6kEYy2M;N0Ys>kqdIPNe?MWsXf6H1(tMSjot+ z-@xOj0f%TQDa`Ba0wY3Cv?V|svvdA(=%gQX*{x2-l-*PcP1|v(dxHU{RnwkBD(B*Y zqqwmDMr8i2HN}tUiv^fjTybb=C~TD&uZg)Ri0m`UKoms|(}6p<;c0yv=J9mtxsyyg zU}LYz(3y+y$8$pY!#|-C-P^4O`%M1Z4Lts!^GNz9HFwdtN43TdGT<&>XvmfqJKD?@|5$)w)D9Z z!E{-PmL*{IDTml3c*2$0smL!5B=AXMgTy$JrEz@ z{J)Ib2?+sgfd8ji?n4BC{4d|%Ksnq1Bv1=6KpFI9!`RMD4j={x_1gm!K=YIU{QsCN zQv)bLx!eE*&<-~M3gqkn=mrI10f<2Zod9;wHa&m^WXJ@d0S({*=-b<<0U!T!YDcy& zJ9!=eQu`$>Kpyfx&i?Nt`hWQ$1P$x~5jR zD3BL`(LT!rko@nE;Xq#=s6bgvU*RaR14{mrB0wjA{AwB8^J#zrg|3v&>`XGMhuZXFf0LdUEhp$yt(E{NA zKWhq*pZ(V&iEIHV5dTS&w9D6T{xyl){*@+Q0O+R^fC&^}4}fVWbpl9%|Cjs?6!YzC zF*!c~zrp_#=a&&Vh$J0=&|csMfcu}|umS-5?H8Va2blky?n`C@@reS^+Zh4@82?X+ z5u~pTKyH`o0nCAecDlcErymX&2L~}E1Gw6Cq5u(apzCG;(f=va>Oz`~!tkDxZrXIs zP!qIGM7$`b-`w_X3o6?(jKFyjWkKMa?xJo+5QP0W#4e-|LF&!g#R`f9V?q~)qS!?d zkv0}+K_ToakcdXqO$_YakK0%ueDIxfp7-y0f6mQEiXUy&n4Y+DgZTf?+tlabxI&ZY zkg0hz3etb%1h^Mqq2)7Zl85i$R(00B8gebL<-sW~I75U>s0fr>5&S6^G<#v7t6pY_ zy@`=;9#%5C&@4v?uRxiHTpC4b%Au297%R}k=m%t+LO2hJJc7)Nt;E>7^jYl6OK{~W z()qi?zM(r<7| zOYwJ1a%i0k(bmo#y=rq5$ohLgCEbJim*YiKH1=BDYS@CIk|!!hQ1 zZXE-aC(`&CH!C-3D8Wo#`-)2xvNJ#5b%IBO1!L4cj~*In<@u2Ahnd10jn+~009PMt`BbJ~vO6aWF>fRF6#sz+xi^JF|DCY%2D-n2Hpz2kpEhqI{S8*x zxrsqNO+cuW_{Cim`;EuCELmC#LpVvzaL7+GSkh5+r_fTDjyHGL3M)lNV3MgSaj>Ru zJQ#2XNByeZ78tc$t1e zX&a++_2PI}Lu2sr>|c#$n%|)l5RIDRP2elt5wuz__M7>3@Rj5Bn)0WEnhnCF-K-P5 F`wvl(w7viU diff --git a/spine-starling/spine-starling/src/spine/starling/SkeletonAnimation.as b/spine-starling/spine-starling/src/spine/starling/SkeletonAnimation.as index 7500148df..d80f39e12 100644 --- a/spine-starling/spine-starling/src/spine/starling/SkeletonAnimation.as +++ b/spine-starling/spine-starling/src/spine/starling/SkeletonAnimation.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/SkeletonMesh.as b/spine-starling/spine-starling/src/spine/starling/SkeletonMesh.as index aaa7c82ef..7ee8a410b 100644 --- a/spine-starling/spine-starling/src/spine/starling/SkeletonMesh.as +++ b/spine-starling/spine-starling/src/spine/starling/SkeletonMesh.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as b/spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as index 4611ce37d..5226ec589 100644 --- a/spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as +++ b/spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/StarlingAtlasAttachmentLoader.as b/spine-starling/spine-starling/src/spine/starling/StarlingAtlasAttachmentLoader.as index 23e20d5ba..1e1919588 100644 --- a/spine-starling/spine-starling/src/spine/starling/StarlingAtlasAttachmentLoader.as +++ b/spine-starling/spine-starling/src/spine/starling/StarlingAtlasAttachmentLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/StarlingTextureLoader.as b/spine-starling/spine-starling/src/spine/starling/StarlingTextureLoader.as index bcfd0bb6e..de48c21a0 100644 --- a/spine-starling/spine-starling/src/spine/starling/StarlingTextureLoader.as +++ b/spine-starling/spine-starling/src/spine/starling/StarlingTextureLoader.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/TwoColorEffect.as b/spine-starling/spine-starling/src/spine/starling/TwoColorEffect.as index 9841506ed..ff8c91b16 100644 --- a/spine-starling/spine-starling/src/spine/starling/TwoColorEffect.as +++ b/spine-starling/spine-starling/src/spine/starling/TwoColorEffect.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-starling/spine-starling/src/spine/starling/TwoColorMeshStyle.as b/spine-starling/spine-starling/src/spine/starling/TwoColorMeshStyle.as index 12969a712..ba74c5fb1 100644 --- a/spine-starling/spine-starling/src/spine/starling/TwoColorMeshStyle.as +++ b/spine-starling/spine-starling/src/spine/starling/TwoColorMeshStyle.as @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ package spine.starling { diff --git a/spine-ts/build/spine-threejs.d.ts b/spine-ts/build/spine-threejs.d.ts index da50a359e..4b6fbfb43 100644 --- a/spine-ts/build/spine-threejs.d.ts +++ b/spine-ts/build/spine-threejs.d.ts @@ -1,1393 +1,1393 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - timelineIds: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - hasTimeline(id: number): boolean; - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): void; - getPropertyId(): number; - } - enum MixBlend { - setup = 0, - first = 1, - replace = 2, - add = 3 - } - enum MixDirection { - mixIn = 0, - mixOut = 1 - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14 - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_SOFTNESS: number; - static PREV_BEND_DIRECTION: number; - static PREV_COMPRESS: number; - static PREV_STRETCH: number; - static MIX: number; - static SOFTNESS: number; - static BEND_DIRECTION: number; - static COMPRESS: number; - static STRETCH: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } + class Animation { + name: string; + timelines: Array; + timelineIds: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + hasTimeline(id: number): boolean; + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): void; + getPropertyId(): number; + } + enum MixBlend { + setup = 0, + first = 1, + replace = 2, + add = 3 + } + enum MixDirection { + mixIn = 0, + mixOut = 1 + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14 + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): 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, blend: MixBlend, direction: MixDirection): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_SOFTNESS: number; + static PREV_BEND_DIRECTION: number; + static PREV_COMPRESS: number; + static PREV_STRETCH: number; + static MIX: number; + static SOFTNESS: number; + static BEND_DIRECTION: number; + static COMPRESS: number; + static STRETCH: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static HOLD: number; - static HOLD_MIX: number; - static NOT_LAST: number; - data: AnimationStateData; - tracks: TrackEntry[]; - timeScale: number; - events: Event[]; - listeners: AnimationStateListener[]; - queue: EventQueue; - propertyIDs: IntSet; - animationsChanged: boolean; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - computeHold(entry: TrackEntry): void; - computeNotLast(entry: TrackEntry): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - mixingTo: TrackEntry; - listener: AnimationStateListener; - trackIndex: number; - loop: boolean; - holdPrevious: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - mixBlend: MixBlend; - timelineMode: number[]; - timelineHoldMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5 - } - interface AnimationStateListener { - 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 AnimationStateAdapter implements AnimationStateListener { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static HOLD: number; + static HOLD_MIX: number; + static NOT_LAST: number; + data: AnimationStateData; + tracks: TrackEntry[]; + timeScale: number; + events: Event[]; + listeners: AnimationStateListener[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + computeHold(entry: TrackEntry): void; + computeNotLast(entry: TrackEntry): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener): void; + removeListener(listener: AnimationStateListener): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + mixingTo: TrackEntry; + listener: AnimationStateListener; + trackIndex: number; + loop: boolean; + holdPrevious: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + mixBlend: MixBlend; + timelineMode: number[]; + timelineHoldMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5 + } + interface AnimationStateListener { + 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 AnimationStateAdapter implements AnimationStateListener { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - private rawDataUris; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - private downloadText; - private downloadBinary; - setRawDataURI(path: string, data: string): void; - loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void; - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + private rawDataUris; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + private downloadText; + private downloadBinary; + setRawDataURI(path: string, data: string): void; + loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void; + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3 - } + 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; - c: number; - d: number; - worldY: number; - worldX: number; - sorted: boolean; - active: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - isActive(): boolean; - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + c: number; + d: number; + worldY: number; + worldX: number; + sorted: boolean; + active: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + isActive(): boolean; + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - skinRequired: boolean; - color: Color; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4 - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + skinRequired: boolean; + color: Color; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4 + } } declare module spine { - abstract class ConstraintData { - name: string; - order: number; - skinRequired: boolean; - constructor(name: string, order: number, skinRequired: boolean); - } + abstract class ConstraintData { + name: string; + order: number; + skinRequired: boolean; + constructor(name: string, order: number, skinRequired: boolean); + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - volume: number; - balance: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + volume: number; + balance: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - audioPath: string; - volume: number; - balance: number; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + audioPath: string; + volume: number; + balance: number; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - bendDirection: number; - compress: boolean; - stretch: boolean; - mix: number; - softness: number; - active: boolean; - constructor(data: IkConstraintData, skeleton: Skeleton); - isActive(): boolean; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void; - } + class IkConstraint implements Updatable { + data: IkConstraintData; + bones: Array; + target: Bone; + bendDirection: number; + compress: boolean; + stretch: boolean; + mix: number; + softness: number; + active: boolean; + constructor(data: IkConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void; + } } declare module spine { - class IkConstraintData extends ConstraintData { - bones: BoneData[]; - target: BoneData; - bendDirection: number; - compress: boolean; - stretch: boolean; - uniform: boolean; - mix: number; - softness: number; - constructor(name: string); - } + class IkConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + bendDirection: number; + compress: boolean; + stretch: boolean; + uniform: boolean; + mix: number; + softness: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Updatable { - static NONE: number; - static BEFORE: number; - static AFTER: number; - static epsilon: 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[]; - active: boolean; - constructor(data: PathConstraintData, skeleton: Skeleton); - isActive(): boolean; - 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; - } + class PathConstraint implements Updatable { + static NONE: number; + static BEFORE: number; + static AFTER: number; + static epsilon: 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[]; + active: boolean; + constructor(data: PathConstraintData, skeleton: Skeleton); + isActive(): boolean; + 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 extends ConstraintData { - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1 - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2 - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2 - } + class PathConstraintData extends ConstraintData { + 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; - 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; - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset; + 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; + 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; - scaleX: number; - scaleY: number; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp?: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + scaleX: number; + scaleY: number; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp?: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBinary { - static AttachmentTypeValues: number[]; - static TransformModeValues: TransformMode[]; - static PositionModeValues: PositionMode[]; - static SpacingModeValues: SpacingMode[]; - static RotateModeValues: RotateMode[]; - static BlendModeValues: BlendMode[]; - static BONE_ROTATE: number; - static BONE_TRANSLATE: number; - static BONE_SCALE: number; - static BONE_SHEAR: number; - static SLOT_ATTACHMENT: number; - static SLOT_COLOR: number; - static SLOT_TWO_COLOR: number; - static PATH_POSITION: number; - static PATH_SPACING: number; - static PATH_MIX: number; - static CURVE_LINEAR: number; - static CURVE_STEPPED: number; - static CURVE_BEZIER: number; - scale: number; - attachmentLoader: AttachmentLoader; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(binary: Uint8Array): SkeletonData; - private readSkin; - private readAttachment; - private readVertices; - private readFloatArray; - private readShortArray; - private readAnimation; - private readCurve; - setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - } + class SkeletonBinary { + static AttachmentTypeValues: number[]; + static TransformModeValues: TransformMode[]; + static PositionModeValues: PositionMode[]; + static SpacingModeValues: SpacingMode[]; + static RotateModeValues: RotateMode[]; + static BlendModeValues: BlendMode[]; + static BONE_ROTATE: number; + static BONE_TRANSLATE: number; + static BONE_SCALE: number; + static BONE_SHEAR: number; + static SLOT_ATTACHMENT: number; + static SLOT_COLOR: number; + static SLOT_TWO_COLOR: number; + static PATH_POSITION: number; + static PATH_SPACING: number; + static PATH_MIX: number; + static CURVE_LINEAR: number; + static CURVE_STEPPED: number; + static CURVE_BEZIER: number; + scale: number; + attachmentLoader: AttachmentLoader; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(binary: Uint8Array): SkeletonData; + private readSkin; + private readAttachment; + private readVertices; + private readFloatArray; + private readShortArray; + private readAnimation; + private readCurve; + setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + } } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - x: number; - y: number; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - audioPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + x: number; + y: number; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + audioPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class SkinEntry { - slotIndex: number; - name: string; - attachment: Attachment; - constructor(slotIndex: number, name: string, attachment: Attachment); - } - class Skin { - name: string; - attachments: Map[]; - bones: BoneData[]; - constraints: ConstraintData[]; - constructor(name: string); - setAttachment(slotIndex: number, name: string, attachment: Attachment): void; - addSkin(skin: Skin): void; - copySkin(skin: Skin): void; - getAttachment(slotIndex: number, name: string): Attachment; - removeAttachment(slotIndex: number, name: string): void; - getAttachments(): Array; - getAttachmentsForSlot(slotIndex: number, attachments: Array): void; - clear(): void; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class SkinEntry { + slotIndex: number; + name: string; + attachment: Attachment; + constructor(slotIndex: number, name: string, attachment: Attachment); + } + class Skin { + name: string; + attachments: Map[]; + bones: BoneData[]; + constraints: ConstraintData[]; + constructor(name: string); + setAttachment(slotIndex: number, name: string, attachment: Attachment): void; + addSkin(skin: Skin): void; + copySkin(skin: Skin): void; + getAttachment(slotIndex: number, name: string): Attachment; + removeAttachment(slotIndex: number, name: string): void; + getAttachments(): Array; + getAttachmentsForSlot(slotIndex: number, attachments: Array): void; + clear(): void; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - private attachment; - private attachmentTime; - deform: number[]; - constructor(data: SlotData, bone: Bone); - getSkeleton(): Skeleton; - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + deform: number[]; + constructor(data: SlotData, bone: Bone); + getSkeleton(): Skeleton; + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement; - constructor(image: HTMLImageElement); - getImage(): HTMLImageElement; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987 - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497 - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } - class FakeTexture extends Texture { - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987 + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497 + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } + class FakeTexture extends Texture { + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load; - 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; - degrees: number; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load; + 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; + degrees: number; + 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; - active: boolean; - constructor(data: TransformConstraintData, skeleton: Skeleton); - isActive(): boolean; - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - } + class TransformConstraint implements Updatable { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + active: boolean; + constructor(data: TransformConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + } } declare module spine { - class TransformConstraintData extends ConstraintData { - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave; - private static positiveArea; - private static winding; - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave; + private static positiveArea; + private static winding; + } } declare module spine { - interface Updatable { - update(): void; - isActive(): boolean; - } + interface Updatable { + update(): void; + isActive(): boolean; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - static rgba8888ToColor(color: Color, value: number): void; - static rgb888ToColor(color: Color, value: number): void; - } - 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; - static randomTriangular(min: number, max: number): number; - static randomTriangularWith(min: number, max: number, mode: number): number; - } - abstract class Interpolation { - protected abstract applyInternal(a: number): number; - apply(start: number, end: number, a: number): number; - } - class Pow extends Interpolation { - protected power: number; - constructor(power: number); - applyInternal(a: number): number; - } - class PowOut extends Pow { - constructor(power: number); - applyInternal(a: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - static toSinglePrecision(value: number): number; - static webkit602BugfixHelper(alpha: number, blend: MixBlend): void; - static contains(array: Array, element: T, identity?: boolean): boolean; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + static rgba8888ToColor(color: Color, value: number): void; + static rgb888ToColor(color: Color, value: number): void; + } + 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; + static randomTriangular(min: number, max: number): number; + static randomTriangularWith(min: number, max: number, mode: number): number; + } + abstract class Interpolation { + protected abstract applyInternal(a: number): number; + apply(start: number, end: number, a: number): number; + } + class Pow extends Interpolation { + protected power: number; + constructor(power: number); + applyInternal(a: number): number; + } + class PowOut extends Pow { + constructor(power: number); + applyInternal(a: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + static toSinglePrecision(value: number): number; + static webkit602BugfixHelper(alpha: number, blend: MixBlend): void; + static contains(array: Array, element: T, identity?: boolean): boolean; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine { - interface VertexEffect { - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + interface VertexEffect { + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } interface Math { - fround(n: number): number; + fround(n: number): number; } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - abstract copy(): Attachment; - } - abstract class VertexAttachment extends Attachment { - private static nextID; - id: number; - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - deformAttachment: VertexAttachment; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - copyTo(attachment: VertexAttachment): void; - } + abstract class Attachment { + name: string; + constructor(name: string); + abstract copy(): Attachment; + } + abstract class VertexAttachment extends Attachment { + private static nextID; + id: number; + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + deformAttachment: VertexAttachment; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + copyTo(attachment: VertexAttachment): void; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - Clipping = 6 - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + Clipping = 6 + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - copy(): Attachment; - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - copy(): Attachment; - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - width: number; - height: number; - hullLength: number; - edges: Array; - private parentMesh; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - copy(): Attachment; - newLinkedMesh(): MeshAttachment; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + width: number; + height: number; + hullLength: number; + edges: Array; + private parentMesh; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + copy(): Attachment; + newLinkedMesh(): MeshAttachment; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - copy(): Attachment; - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - copy(): Attachment; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + copy(): Attachment; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - copy(): Attachment; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + copy(): Attachment; + } } declare module spine { - class JitterEffect implements VertexEffect { - jitterX: number; - jitterY: number; - constructor(jitterX: number, jitterY: number); - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + class JitterEffect implements VertexEffect { + jitterX: number; + jitterY: number; + constructor(jitterX: number, jitterY: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } declare module spine { - class SwirlEffect implements VertexEffect { - static interpolation: PowOut; - centerX: number; - centerY: number; - radius: number; - angle: number; - private worldX; - private worldY; - constructor(radius: number); - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + class SwirlEffect implements VertexEffect { + static interpolation: PowOut; + centerX: number; + centerY: number; + radius: number; + angle: number; + private worldX; + private worldY; + constructor(radius: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } declare module spine.threejs { - class AssetManager extends spine.AssetManager { - constructor(pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(pathPrefix?: string); + } } declare module spine.threejs { - class MeshBatcher extends THREE.Mesh { - private static VERTEX_SIZE; - private vertexBuffer; - private vertices; - private verticesLength; - private indices; - private indicesLength; - constructor(maxVertices?: number); - dispose(): void; - clear(): void; - begin(): void; - canBatch(verticesLength: number, indicesLength: number): boolean; - batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; - end(): void; - } + class MeshBatcher extends THREE.Mesh { + private static VERTEX_SIZE; + private vertexBuffer; + private vertices; + private verticesLength; + private indices; + private indicesLength; + constructor(maxVertices?: number); + dispose(): void; + clear(): void; + begin(): void; + canBatch(verticesLength: number, indicesLength: number): boolean; + batch(vertices: ArrayLike, verticesLength: number, indices: ArrayLike, indicesLength: number, z?: number): void; + end(): void; + } } declare module spine.threejs { - class SkeletonMeshMaterial extends THREE.ShaderMaterial { - constructor(); - } - class SkeletonMesh extends THREE.Object3D { - tempPos: Vector2; - tempUv: Vector2; - tempLight: Color; - tempDark: Color; - skeleton: Skeleton; - state: AnimationState; - zOffset: number; - vertexEffect: VertexEffect; - private batches; - private nextBatchIndex; - private clipper; - static QUAD_TRIANGLES: number[]; - static VERTEX_SIZE: number; - private vertices; - private tempColor; - constructor(skeletonData: SkeletonData); - update(deltaTime: number): void; - dispose(): void; - private clearBatches; - private nextBatch; - private updateGeometry; - } + class SkeletonMeshMaterial extends THREE.ShaderMaterial { + constructor(); + } + class SkeletonMesh extends THREE.Object3D { + tempPos: Vector2; + tempUv: Vector2; + tempLight: Color; + tempDark: Color; + skeleton: Skeleton; + state: AnimationState; + zOffset: number; + vertexEffect: VertexEffect; + private batches; + private nextBatchIndex; + private clipper; + static QUAD_TRIANGLES: number[]; + static VERTEX_SIZE: number; + private vertices; + private tempColor; + constructor(skeletonData: SkeletonData); + update(deltaTime: number): void; + dispose(): void; + private clearBatches; + private nextBatch; + private updateGeometry; + } } declare module spine.threejs { - class ThreeJsTexture extends Texture { - texture: THREE.Texture; - constructor(image: HTMLImageElement); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; - static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; - } + class ThreeJsTexture extends Texture { + texture: THREE.Texture; + constructor(image: HTMLImageElement); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + static toThreeJsTextureFilter(filter: TextureFilter): THREE.TextureFilter; + static toThreeJsTextureWrap(wrap: TextureWrap): THREE.Wrapping; + } } diff --git a/spine-ts/build/spine-threejs.js b/spine-ts/build/spine-threejs.js index 994e846eb..ba8d0f2a9 100644 --- a/spine-ts/build/spine-threejs.js +++ b/spine-ts/build/spine-threejs.js @@ -1,8543 +1,8568 @@ var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; })(); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.timelineIds = []; - for (var i = 0; i < timelines.length; i++) - this.timelineIds[timelines[i].getPropertyId()] = true; - this.duration = duration; - } - Animation.prototype.hasTimeline = function (id) { - return this.timelineIds[id] == true; - }; - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, blend, direction) { - 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, blend, direction); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - var MixBlend; - (function (MixBlend) { - MixBlend[MixBlend["setup"] = 0] = "setup"; - MixBlend[MixBlend["first"] = 1] = "first"; - MixBlend[MixBlend["replace"] = 2] = "replace"; - MixBlend[MixBlend["add"] = 3] = "add"; - })(MixBlend = spine.MixBlend || (spine.MixBlend = {})); - var MixDirection; - (function (MixDirection) { - MixDirection[MixDirection["mixIn"] = 0] = "mixIn"; - MixDirection[MixDirection["mixOut"] = 1] = "mixOut"; - })(MixDirection = spine.MixDirection || (spine.MixDirection = {})); - var TimelineType; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation; - return; - case MixBlend.first: - var r_1 = bone.data.rotation - bone.rotation; - bone.rotation += (r_1 - (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360) * alpha; - } - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - var r_2 = frames[frames.length + RotateTimeline.PREV_ROTATION]; - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation + r_2 * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - r_2 += bone.data.rotation - bone.rotation; - r_2 -= (16384 - ((16384.499999999996 - r_2 / 360) | 0)) * 360; - case MixBlend.add: - bone.rotation += r_2 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r = prevRotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * percent; - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - r += bone.data.rotation - bone.rotation; - case MixBlend.add: - bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.x = bone.data.x; - bone.y = bone.data.y; - return; - case MixBlend.first: - bone.x += (bone.data.x - bone.x) * alpha; - bone.y += (bone.data.y - bone.y) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - switch (blend) { - case MixBlend.setup: - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - break; - case MixBlend.add: - bone.x += x * alpha; - bone.y += y * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - return; - case MixBlend.first: - bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - if (blend == MixBlend.add) { - bone.scaleX += x - bone.data.scaleX; - bone.scaleY += y - bone.data.scaleY; - } - else { - bone.scaleX = x; - bone.scaleY = y; - } - } - else { - var bx = 0, by = 0; - if (direction == MixDirection.mixOut) { - switch (blend) { - case MixBlend.setup: - bx = bone.data.scaleX; - by = bone.data.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bx = bone.scaleX; - by = bone.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; - break; - case MixBlend.add: - bx = bone.scaleX; - by = bone.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bone.data.scaleX) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - bone.data.scaleY) * alpha; - } - } - else { - switch (blend) { - case MixBlend.setup: - bx = Math.abs(bone.data.scaleX) * spine.MathUtils.signum(x); - by = Math.abs(bone.data.scaleY) * spine.MathUtils.signum(y); - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bx = Math.abs(bone.scaleX) * spine.MathUtils.signum(x); - by = Math.abs(bone.scaleY) * spine.MathUtils.signum(y); - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - break; - case MixBlend.add: - bx = spine.MathUtils.signum(x); - by = spine.MathUtils.signum(y); - bone.scaleX = Math.abs(bone.scaleX) * bx + (x - Math.abs(bone.data.scaleX) * bx) * alpha; - bone.scaleY = Math.abs(bone.scaleY) * by + (y - Math.abs(bone.data.scaleY) * by) * alpha; - } - } - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - return; - case MixBlend.first: - bone.shearX += (bone.data.shearX - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY - bone.shearY) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - switch (blend) { - case MixBlend.setup: - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - break; - case MixBlend.add: - bone.shearX += x * alpha; - bone.shearY += y * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var frames = this.frames; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - slot.color.setFromColor(slot.data.color); - return; - case MixBlend.first: - var color = slot.color, setup = slot.data.color; - color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); - } - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (blend == MixBlend.setup) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var frames = this.frames; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - return; - case MixBlend.first: - var light = slot.color, dark = slot.darkColor, setupLight = slot.data.color, setupDark = slot.data.darkColor; - light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha); - dark.add((setupDark.r - dark.r) * alpha, (setupDark.g - dark.g) * alpha, (setupDark.b - dark.b) * alpha, 0); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color, dark = slot.darkColor; - if (blend == MixBlend.setup) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - if (direction == MixDirection.mixOut && blend == MixBlend.setup) { - 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 (blend == MixBlend.setup || blend == MixBlend.first) { - var attachmentName_2 = slot.data.attachmentName; - slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); - } - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var zeros = null; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - if (zeros == null) - zeros = spine.Utils.newFloatArray(64); - return _this; - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 27) + +this.attachment.id + 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, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !(slotAttachment.deformAttachment == this.attachment)) - return; - var deformArray = slot.deform; - if (deformArray.length == 0) - blend = MixBlend.setup; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var frames = this.frames; - if (time < frames[0]) { - var vertexAttachment = slotAttachment; - switch (blend) { - case MixBlend.setup: - deformArray.length = 0; - return; - case MixBlend.first: - if (alpha == 1) { - deformArray.length = 0; - break; - } - var deform_1 = spine.Utils.setArraySize(deformArray, vertexCount); - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) - deform_1[i] += (setupVertices[i] - deform_1[i]) * alpha; - } - else { - alpha = 1 - alpha; - for (var i = 0; i < vertexCount; i++) - deform_1[i] *= alpha; - } - } - return; - } - var deform = spine.Utils.setArraySize(deformArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - if (blend == MixBlend.add) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_1 = 0; i_1 < vertexCount; i_1++) { - deform[i_1] += lastVertices[i_1] - setupVertices[i_1]; - } - } - else { - for (var i_2 = 0; i_2 < vertexCount; i_2++) - deform[i_2] += lastVertices[i_2]; - } - } - else { - spine.Utils.arrayCopy(lastVertices, 0, deform, 0, vertexCount); - } - } - else { - switch (blend) { - case MixBlend.setup: { - var vertexAttachment_1 = slotAttachment; - if (vertexAttachment_1.bones == null) { - var setupVertices = vertexAttachment_1.vertices; - for (var i_3 = 0; i_3 < vertexCount; i_3++) { - var setup = setupVertices[i_3]; - deform[i_3] = setup + (lastVertices[i_3] - setup) * alpha; - } - } - else { - for (var i_4 = 0; i_4 < vertexCount; i_4++) - deform[i_4] = lastVertices[i_4] * alpha; - } - break; - } - case MixBlend.first: - case MixBlend.replace: - for (var i_5 = 0; i_5 < vertexCount; i_5++) - deform[i_5] += (lastVertices[i_5] - deform[i_5]) * alpha; - break; - case MixBlend.add: - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_6 = 0; i_6 < vertexCount; i_6++) { - deform[i_6] += (lastVertices[i_6] - setupVertices[i_6]) * alpha; - } - } - else { - for (var i_7 = 0; i_7 < vertexCount; i_7++) - deform[i_7] += lastVertices[i_7] * 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) { - if (blend == MixBlend.add) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_8 = 0; i_8 < vertexCount; i_8++) { - var prev = prevVertices[i_8]; - deform[i_8] += prev + (nextVertices[i_8] - prev) * percent - setupVertices[i_8]; - } - } - else { - for (var i_9 = 0; i_9 < vertexCount; i_9++) { - var prev = prevVertices[i_9]; - deform[i_9] += prev + (nextVertices[i_9] - prev) * percent; - } - } - } - else { - for (var i_10 = 0; i_10 < vertexCount; i_10++) { - var prev = prevVertices[i_10]; - deform[i_10] = prev + (nextVertices[i_10] - prev) * percent; - } - } - } - else { - switch (blend) { - case MixBlend.setup: { - var vertexAttachment_2 = slotAttachment; - if (vertexAttachment_2.bones == null) { - var setupVertices = vertexAttachment_2.vertices; - for (var i_11 = 0; i_11 < vertexCount; i_11++) { - var prev = prevVertices[i_11], setup = setupVertices[i_11]; - deform[i_11] = setup + (prev + (nextVertices[i_11] - prev) * percent - setup) * alpha; - } - } - else { - for (var i_12 = 0; i_12 < vertexCount; i_12++) { - var prev = prevVertices[i_12]; - deform[i_12] = (prev + (nextVertices[i_12] - prev) * percent) * alpha; - } - } - break; - } - case MixBlend.first: - case MixBlend.replace: - for (var i_13 = 0; i_13 < vertexCount; i_13++) { - var prev = prevVertices[i_13]; - deform[i_13] += (prev + (nextVertices[i_13] - prev) * percent - deform[i_13]) * alpha; - } - break; - case MixBlend.add: - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_14 = 0; i_14 < vertexCount; i_14++) { - var prev = prevVertices[i_14]; - deform[i_14] += (prev + (nextVertices[i_14] - prev) * percent - setupVertices[i_14]) * alpha; - } - } - else { - for (var i_15 = 0; i_15 < vertexCount; i_15++) { - var prev = prevVertices[i_15]; - deform[i_15] += (prev + (nextVertices[i_15] - prev) * percent) * alpha; - } - } - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - 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, blend, direction); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (direction == MixDirection.mixOut && blend == MixBlend.setup) { - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (blend == MixBlend.setup || blend == MixBlend.first) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, softness, bendDirection, compress, stretch) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.SOFTNESS] = softness; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - this.frames[frameIndex + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; - this.frames[frameIndex + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.mix = constraint.data.mix; - constraint.softness = constraint.data.softness; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - return; - case MixBlend.first: - constraint.mix += (constraint.data.mix - constraint.mix) * alpha; - constraint.softness += (constraint.data.softness - constraint.softness) * alpha; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.data.softness) * alpha; - if (direction == MixDirection.mixOut) { - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - else { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.softness += (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.softness) * alpha; - if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var softness = frames[frame + IkConstraintTimeline.PREV_SOFTNESS]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.data.softness) * alpha; - if (direction == MixDirection.mixOut) { - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - else { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.softness += (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.softness) * alpha; - if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - }; - IkConstraintTimeline.ENTRIES = 6; - IkConstraintTimeline.PREV_TIME = -6; - IkConstraintTimeline.PREV_MIX = -5; - IkConstraintTimeline.PREV_SOFTNESS = -4; - IkConstraintTimeline.PREV_BEND_DIRECTION = -3; - IkConstraintTimeline.PREV_COMPRESS = -2; - IkConstraintTimeline.PREV_STRETCH = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.SOFTNESS = 2; - IkConstraintTimeline.BEND_DIRECTION = 3; - IkConstraintTimeline.COMPRESS = 4; - IkConstraintTimeline.STRETCH = 5; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - var data = constraint.data; - switch (blend) { - case MixBlend.setup: - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - return; - case MixBlend.first: - constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha; - constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha; - constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha; - constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (blend == MixBlend.setup) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.position = constraint.data.position; - return; - case MixBlend.first: - constraint.position += (constraint.data.position - constraint.position) * alpha; - } - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (blend == MixBlend.setup) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.spacing = constraint.data.spacing; - return; - case MixBlend.first: - constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha; - } - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (blend == MixBlend.setup) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - return; - case MixBlend.first: - constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha; - constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (blend == MixBlend.setup) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.timelineIds = []; + for (var i = 0; i < timelines.length; i++) + this.timelineIds[timelines[i].getPropertyId()] = true; + this.duration = duration; + } + Animation.prototype.hasTimeline = function (id) { + return this.timelineIds[id] == true; + }; + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, blend, direction) { + 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, blend, direction); + }; + Animation.binarySearch = function (values, target, step) { + if (step === void 0) { step = 1; } + var low = 0; + var high = values.length / step - 2; + if (high == 0) + return step; + var current = high >>> 1; + while (true) { + if (values[(current + 1) * step] <= target) + low = current + 1; + else + high = current; + if (low == high) + return (low + 1) * step; + current = (low + high) >>> 1; + } + }; + Animation.linearSearch = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + var MixBlend; + (function (MixBlend) { + MixBlend[MixBlend["setup"] = 0] = "setup"; + MixBlend[MixBlend["first"] = 1] = "first"; + MixBlend[MixBlend["replace"] = 2] = "replace"; + MixBlend[MixBlend["add"] = 3] = "add"; + })(MixBlend = spine.MixBlend || (spine.MixBlend = {})); + var MixDirection; + (function (MixDirection) { + MixDirection[MixDirection["mixIn"] = 0] = "mixIn"; + MixDirection[MixDirection["mixOut"] = 1] = "mixOut"; + })(MixDirection = spine.MixDirection || (spine.MixDirection = {})); + var TimelineType; + (function (TimelineType) { + TimelineType[TimelineType["rotate"] = 0] = "rotate"; + TimelineType[TimelineType["translate"] = 1] = "translate"; + TimelineType[TimelineType["scale"] = 2] = "scale"; + TimelineType[TimelineType["shear"] = 3] = "shear"; + TimelineType[TimelineType["attachment"] = 4] = "attachment"; + TimelineType[TimelineType["color"] = 5] = "color"; + TimelineType[TimelineType["deform"] = 6] = "deform"; + TimelineType[TimelineType["event"] = 7] = "event"; + TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; + TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; + TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; + TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; + TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; + TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; + TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; + })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); + var CurveTimeline = (function () { + function CurveTimeline(frameCount) { + if (frameCount <= 0) + throw new Error("frameCount must be > 0: " + frameCount); + this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + } + CurveTimeline.prototype.getFrameCount = function () { + return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + }; + CurveTimeline.prototype.setLinear = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frameIndex) { + this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.getCurveType = function (frameIndex) { + var index = frameIndex * CurveTimeline.BEZIER_SIZE; + if (index == this.curves.length) + return CurveTimeline.LINEAR; + var type = this.curves[index]; + if (type == CurveTimeline.LINEAR) + return CurveTimeline.LINEAR; + if (type == CurveTimeline.STEPPED) + return CurveTimeline.STEPPED; + return CurveTimeline.BEZIER; + }; + CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { + var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; + var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; + var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; + var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var curves = this.curves; + curves[i++] = CurveTimeline.BEZIER; + var x = dfx, y = dfy; + for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + x += dfx; + y += dfy; + } + }; + CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { + percent = spine.MathUtils.clamp(percent, 0, 1); + var curves = this.curves; + var i = frameIndex * CurveTimeline.BEZIER_SIZE; + var type = curves[i]; + if (type == CurveTimeline.LINEAR) + return percent; + if (type == CurveTimeline.STEPPED) + return 0; + i++; + var x = 0; + for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { + x = curves[i]; + if (x >= percent) { + var prevX = void 0, prevY = void 0; + if (i == start) { + prevX = 0; + prevY = 0; + } + else { + prevX = curves[i - 2]; + prevY = curves[i - 1]; + } + return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); + } + } + var y = curves[i - 1]; + return y + (1 - y) * (percent - x) / (1 - x); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; + return CurveTimeline; + }()); + spine.CurveTimeline = CurveTimeline; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount << 1); + return _this; + } + RotateTimeline.prototype.getPropertyId = function () { + return (TimelineType.rotate << 24) + this.boneIndex; + }; + RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { + frameIndex <<= 1; + this.frames[frameIndex] = time; + this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + }; + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation; + return; + case MixBlend.first: + var r_1 = bone.data.rotation - bone.rotation; + bone.rotation += (r_1 - (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360) * alpha; + } + return; + } + if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { + var r_2 = frames[frames.length + RotateTimeline.PREV_ROTATION]; + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation + r_2 * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + r_2 += bone.data.rotation - bone.rotation; + r_2 -= (16384 - ((16384.499999999996 - r_2 / 360) | 0)) * 360; + case MixBlend.add: + bone.rotation += r_2 * alpha; + } + return; + } + var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); + var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); + var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; + r = prevRotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * percent; + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + r += bone.data.rotation - bone.rotation; + case MixBlend.add: + bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; + } + }; + RotateTimeline.ENTRIES = 2; + RotateTimeline.PREV_TIME = -2; + RotateTimeline.PREV_ROTATION = -1; + RotateTimeline.ROTATION = 1; + return RotateTimeline; + }(CurveTimeline)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); + return _this; + } + TranslateTimeline.prototype.getPropertyId = function () { + return (TimelineType.translate << 24) + this.boneIndex; + }; + TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { + frameIndex *= TranslateTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TranslateTimeline.X] = x; + this.frames[frameIndex + TranslateTimeline.Y] = y; + }; + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x; + bone.y = bone.data.y; + return; + case MixBlend.first: + bone.x += (bone.data.x - bone.x) * alpha; + bone.y += (bone.data.y - bone.y) * alpha; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { + x = frames[frames.length + TranslateTimeline.PREV_X]; + y = frames[frames.length + TranslateTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); + x = frames[frame + TranslateTimeline.PREV_X]; + y = frames[frame + TranslateTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); + x += (frames[frame + TranslateTimeline.X] - x) * percent; + y += (frames[frame + TranslateTimeline.Y] - y) * percent; + } + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + break; + case MixBlend.add: + bone.x += x * alpha; + bone.y += y * alpha; + } + }; + TranslateTimeline.ENTRIES = 3; + TranslateTimeline.PREV_TIME = -3; + TranslateTimeline.PREV_X = -2; + TranslateTimeline.PREV_Y = -1; + TranslateTimeline.X = 1; + TranslateTimeline.Y = 2; + return TranslateTimeline; + }(CurveTimeline)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount) { + return _super.call(this, frameCount) || this; + } + ScaleTimeline.prototype.getPropertyId = function () { + return (TimelineType.scale << 24) + this.boneIndex; + }; + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + return; + case MixBlend.first: + bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; + bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { + x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; + y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; + } + else { + var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); + x = frames[frame + ScaleTimeline.PREV_X]; + y = frames[frame + ScaleTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); + x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; + y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + } + if (alpha == 1) { + if (blend == MixBlend.add) { + bone.scaleX += x - bone.data.scaleX; + bone.scaleY += y - bone.data.scaleY; + } + else { + bone.scaleX = x; + bone.scaleY = y; + } + } + else { + var bx = 0, by = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + bx = bone.data.scaleX; + by = bone.data.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.add: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bone.data.scaleX) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - bone.data.scaleY) * alpha; + } + } + else { + switch (blend) { + case MixBlend.setup: + bx = Math.abs(bone.data.scaleX) * spine.MathUtils.signum(x); + by = Math.abs(bone.data.scaleY) * spine.MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = Math.abs(bone.scaleX) * spine.MathUtils.signum(x); + by = Math.abs(bone.scaleY) * spine.MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.add: + bx = spine.MathUtils.signum(x); + by = spine.MathUtils.signum(y); + bone.scaleX = Math.abs(bone.scaleX) * bx + (x - Math.abs(bone.data.scaleX) * bx) * alpha; + bone.scaleY = Math.abs(bone.scaleY) * by + (y - Math.abs(bone.data.scaleY) * by) * alpha; + } + } + } + }; + return ScaleTimeline; + }(TranslateTimeline)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount) { + return _super.call(this, frameCount) || this; + } + ShearTimeline.prototype.getPropertyId = function () { + return (TimelineType.shear << 24) + this.boneIndex; + }; + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + return; + case MixBlend.first: + bone.shearX += (bone.data.shearX - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY - bone.shearY) * alpha; + } + return; + } + var x = 0, y = 0; + if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { + x = frames[frames.length + ShearTimeline.PREV_X]; + y = frames[frames.length + ShearTimeline.PREV_Y]; + } + else { + var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); + x = frames[frame + ShearTimeline.PREV_X]; + y = frames[frame + ShearTimeline.PREV_Y]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); + x = x + (frames[frame + ShearTimeline.X] - x) * percent; + y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + } + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + break; + case MixBlend.add: + bone.shearX += x * alpha; + bone.shearY += y * alpha; + } + }; + return ShearTimeline; + }(TranslateTimeline)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + return _this; + } + ColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.color << 24) + this.slotIndex; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + slot.color.setFromColor(slot.data.color); + return; + case MixBlend.first: + var color = slot.color, setup = slot.data.color; + color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); + } + return; + } + var r = 0, g = 0, b = 0, a = 0; + if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + ColorTimeline.PREV_R]; + g = frames[i + ColorTimeline.PREV_G]; + b = frames[i + ColorTimeline.PREV_B]; + a = frames[i + ColorTimeline.PREV_A]; + } + else { + var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); + r = frames[frame + ColorTimeline.PREV_R]; + g = frames[frame + ColorTimeline.PREV_G]; + b = frames[frame + ColorTimeline.PREV_B]; + a = frames[frame + ColorTimeline.PREV_A]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + ColorTimeline.R] - r) * percent; + g += (frames[frame + ColorTimeline.G] - g) * percent; + b += (frames[frame + ColorTimeline.B] - b) * percent; + a += (frames[frame + ColorTimeline.A] - a) * percent; + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (blend == MixBlend.setup) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.PREV_TIME = -5; + ColorTimeline.PREV_R = -4; + ColorTimeline.PREV_G = -3; + ColorTimeline.PREV_B = -2; + ColorTimeline.PREV_A = -1; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + return _this; + } + TwoColorTimeline.prototype.getPropertyId = function () { + return (TimelineType.twoColor << 24) + this.slotIndex; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + return; + case MixBlend.first: + var light = slot.color, dark = slot.darkColor, setupLight = slot.data.color, setupDark = slot.data.darkColor; + light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha); + dark.add((setupDark.r - dark.r) * alpha, (setupDark.g - dark.g) * alpha, (setupDark.b - dark.b) * alpha, 0); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { + var i = frames.length; + r = frames[i + TwoColorTimeline.PREV_R]; + g = frames[i + TwoColorTimeline.PREV_G]; + b = frames[i + TwoColorTimeline.PREV_B]; + a = frames[i + TwoColorTimeline.PREV_A]; + r2 = frames[i + TwoColorTimeline.PREV_R2]; + g2 = frames[i + TwoColorTimeline.PREV_G2]; + b2 = frames[i + TwoColorTimeline.PREV_B2]; + } + else { + var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); + r = frames[frame + TwoColorTimeline.PREV_R]; + g = frames[frame + TwoColorTimeline.PREV_G]; + b = frames[frame + TwoColorTimeline.PREV_B]; + a = frames[frame + TwoColorTimeline.PREV_A]; + r2 = frames[frame + TwoColorTimeline.PREV_R2]; + g2 = frames[frame + TwoColorTimeline.PREV_G2]; + b2 = frames[frame + TwoColorTimeline.PREV_B2]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); + r += (frames[frame + TwoColorTimeline.R] - r) * percent; + g += (frames[frame + TwoColorTimeline.G] - g) * percent; + b += (frames[frame + TwoColorTimeline.B] - b) * percent; + a += (frames[frame + TwoColorTimeline.A] - a) * percent; + r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; + g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; + b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color, dark = slot.darkColor; + if (blend == MixBlend.setup) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.PREV_TIME = -8; + TwoColorTimeline.PREV_R = -7; + TwoColorTimeline.PREV_G = -6; + TwoColorTimeline.PREV_B = -5; + TwoColorTimeline.PREV_A = -4; + TwoColorTimeline.PREV_R2 = -3; + TwoColorTimeline.PREV_G2 = -2; + TwoColorTimeline.PREV_B2 = -1; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function () { + function AttachmentTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.attachmentNames = new Array(frameCount); + } + AttachmentTimeline.prototype.getPropertyId = function () { + return (TimelineType.attachment << 24) + this.slotIndex; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + if (direction == MixDirection.mixOut && blend == MixBlend.setup) { + 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 (blend == MixBlend.setup || blend == MixBlend.first) { + var attachmentName_2 = slot.data.attachmentName; + slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2)); + } + return; + } + var frameIndex = 0; + if (time >= frames[frames.length - 1]) + frameIndex = frames.length - 1; + else + frameIndex = Animation.binarySearch(frames, time, 1) - 1; + var attachmentName = this.attachmentNames[frameIndex]; + skeleton.slots[this.slotIndex] + .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + }; + return AttachmentTimeline; + }()); + spine.AttachmentTimeline = AttachmentTimeline; + var zeros = null; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount); + _this.frameVertices = new Array(frameCount); + if (zeros == null) + zeros = spine.Utils.newFloatArray(64); + return _this; + } + DeformTimeline.prototype.getPropertyId = function () { + return (TimelineType.deform << 27) + +this.attachment.id + 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, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !(slotAttachment.deformAttachment == this.attachment)) + return; + var deformArray = slot.deform; + if (deformArray.length == 0) + blend = MixBlend.setup; + var frameVertices = this.frameVertices; + var vertexCount = frameVertices[0].length; + var frames = this.frames; + if (time < frames[0]) { + var vertexAttachment = slotAttachment; + switch (blend) { + case MixBlend.setup: + deformArray.length = 0; + return; + case MixBlend.first: + if (alpha == 1) { + deformArray.length = 0; + break; + } + var deform_1 = spine.Utils.setArraySize(deformArray, vertexCount); + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) + deform_1[i] += (setupVertices[i] - deform_1[i]) * alpha; + } + else { + alpha = 1 - alpha; + for (var i = 0; i < vertexCount; i++) + deform_1[i] *= alpha; + } + } + return; + } + var deform = spine.Utils.setArraySize(deformArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = frameVertices[frames.length - 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_1 = 0; i_1 < vertexCount; i_1++) { + deform[i_1] += lastVertices[i_1] - setupVertices[i_1]; + } + } + else { + for (var i_2 = 0; i_2 < vertexCount; i_2++) + deform[i_2] += lastVertices[i_2]; + } + } + else { + spine.Utils.arrayCopy(lastVertices, 0, deform, 0, vertexCount); + } + } + else { + switch (blend) { + case MixBlend.setup: { + var vertexAttachment_1 = slotAttachment; + if (vertexAttachment_1.bones == null) { + var setupVertices = vertexAttachment_1.vertices; + for (var i_3 = 0; i_3 < vertexCount; i_3++) { + var setup = setupVertices[i_3]; + deform[i_3] = setup + (lastVertices[i_3] - setup) * alpha; + } + } + else { + for (var i_4 = 0; i_4 < vertexCount; i_4++) + deform[i_4] = lastVertices[i_4] * alpha; + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (var i_5 = 0; i_5 < vertexCount; i_5++) + deform[i_5] += (lastVertices[i_5] - deform[i_5]) * alpha; + break; + case MixBlend.add: + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_6 = 0; i_6 < vertexCount; i_6++) { + deform[i_6] += (lastVertices[i_6] - setupVertices[i_6]) * alpha; + } + } + else { + for (var i_7 = 0; i_7 < vertexCount; i_7++) + deform[i_7] += lastVertices[i_7] * 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) { + if (blend == MixBlend.add) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_8 = 0; i_8 < vertexCount; i_8++) { + var prev = prevVertices[i_8]; + deform[i_8] += prev + (nextVertices[i_8] - prev) * percent - setupVertices[i_8]; + } + } + else { + for (var i_9 = 0; i_9 < vertexCount; i_9++) { + var prev = prevVertices[i_9]; + deform[i_9] += prev + (nextVertices[i_9] - prev) * percent; + } + } + } + else { + for (var i_10 = 0; i_10 < vertexCount; i_10++) { + var prev = prevVertices[i_10]; + deform[i_10] = prev + (nextVertices[i_10] - prev) * percent; + } + } + } + else { + switch (blend) { + case MixBlend.setup: { + var vertexAttachment_2 = slotAttachment; + if (vertexAttachment_2.bones == null) { + var setupVertices = vertexAttachment_2.vertices; + for (var i_11 = 0; i_11 < vertexCount; i_11++) { + var prev = prevVertices[i_11], setup = setupVertices[i_11]; + deform[i_11] = setup + (prev + (nextVertices[i_11] - prev) * percent - setup) * alpha; + } + } + else { + for (var i_12 = 0; i_12 < vertexCount; i_12++) { + var prev = prevVertices[i_12]; + deform[i_12] = (prev + (nextVertices[i_12] - prev) * percent) * alpha; + } + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (var i_13 = 0; i_13 < vertexCount; i_13++) { + var prev = prevVertices[i_13]; + deform[i_13] += (prev + (nextVertices[i_13] - prev) * percent - deform[i_13]) * alpha; + } + break; + case MixBlend.add: + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_14 = 0; i_14 < vertexCount; i_14++) { + var prev = prevVertices[i_14]; + deform[i_14] += (prev + (nextVertices[i_14] - prev) * percent - setupVertices[i_14]) * alpha; + } + } + else { + for (var i_15 = 0; i_15 < vertexCount; i_15++) { + var prev = prevVertices[i_15]; + deform[i_15] += (prev + (nextVertices[i_15] - prev) * percent) * alpha; + } + } + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function () { + function EventTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.events = new Array(frameCount); + } + EventTimeline.prototype.getPropertyId = function () { + return TimelineType.event << 24; + }; + EventTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + 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, blend, direction); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var frame = 0; + if (lastTime < frames[0]) + frame = 0; + else { + frame = Animation.binarySearch(frames, lastTime); + var frameTime = frames[frame]; + while (frame > 0) { + if (frames[frame - 1] != frameTime) + break; + frame--; + } + } + for (; frame < frameCount && time >= frames[frame]; frame++) + firedEvents.push(this.events[frame]); + }; + return EventTimeline; + }()); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function () { + function DrawOrderTimeline(frameCount) { + this.frames = spine.Utils.newFloatArray(frameCount); + this.drawOrders = new Array(frameCount); + } + DrawOrderTimeline.prototype.getPropertyId = function () { + return TimelineType.drawOrder << 24; + }; + DrawOrderTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (direction == MixDirection.mixOut && blend == MixBlend.setup) { + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frame = 0; + if (time >= frames[frames.length - 1]) + frame = frames.length - 1; + else + frame = Animation.binarySearch(frames, time) - 1; + var drawOrderToSetupIndex = this.drawOrders[frame]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + return DrawOrderTimeline; + }()); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + return _this; + } + IkConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + }; + IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, softness, bendDirection, compress, stretch) { + frameIndex *= IkConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; + this.frames[frameIndex + IkConstraintTimeline.SOFTNESS] = softness; + this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + this.frames[frameIndex + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; + this.frames[frameIndex + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + return; + case MixBlend.first: + constraint.mix += (constraint.data.mix - constraint.mix) * alpha; + constraint.softness += (constraint.data.softness - constraint.softness) * alpha; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + return; + } + if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { + if (blend == MixBlend.setup) { + constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + + (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + else { + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; + constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; + } + } + else { + constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; + constraint.softness += (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.softness) * alpha; + if (direction == MixDirection.mixIn) { + constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; + constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; + constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; + } + } + return; + } + var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); + var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; + var softness = frames[frame + IkConstraintTimeline.PREV_SOFTNESS]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); + if (blend == MixBlend.setup) { + constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + + (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + else { + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; + constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; + } + } + else { + constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; + constraint.softness += (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.softness) * alpha; + if (direction == MixDirection.mixIn) { + constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; + constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; + constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; + } + } + }; + IkConstraintTimeline.ENTRIES = 6; + IkConstraintTimeline.PREV_TIME = -6; + IkConstraintTimeline.PREV_MIX = -5; + IkConstraintTimeline.PREV_SOFTNESS = -4; + IkConstraintTimeline.PREV_BEND_DIRECTION = -3; + IkConstraintTimeline.PREV_COMPRESS = -2; + IkConstraintTimeline.PREV_STRETCH = -1; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.SOFTNESS = 2; + IkConstraintTimeline.BEND_DIRECTION = 3; + IkConstraintTimeline.COMPRESS = 4; + IkConstraintTimeline.STRETCH = 5; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + return _this; + } + TransformConstraintTimeline.prototype.getPropertyId = function () { + return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + }; + TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { + frameIndex *= TransformConstraintTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + var data = constraint.data; + switch (blend) { + case MixBlend.setup: + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + return; + case MixBlend.first: + constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha; + constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha; + constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha; + constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { + var i = frames.length; + rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; + } + else { + var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); + rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; + translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; + scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; + shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; + scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; + shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + } + if (blend == MixBlend.setup) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.PREV_TIME = -5; + TransformConstraintTimeline.PREV_ROTATE = -4; + TransformConstraintTimeline.PREV_TRANSLATE = -3; + TransformConstraintTimeline.PREV_SCALE = -2; + TransformConstraintTimeline.PREV_SHEAR = -1; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); + return _this; + } + PathConstraintPositionTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + }; + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.position = constraint.data.position; + return; + case MixBlend.first: + constraint.position += (constraint.data.position - constraint.position) * alpha; + } + return; + } + var position = 0; + if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) + position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); + position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; + } + if (blend == MixBlend.setup) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + PathConstraintPositionTimeline.ENTRIES = 2; + PathConstraintPositionTimeline.PREV_TIME = -2; + PathConstraintPositionTimeline.PREV_VALUE = -1; + PathConstraintPositionTimeline.VALUE = 1; + return PathConstraintPositionTimeline; + }(CurveTimeline)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount) { + return _super.call(this, frameCount) || this; + } + PathConstraintSpacingTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + }; + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.spacing = constraint.data.spacing; + return; + case MixBlend.first: + constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha; + } + return; + } + var spacing = 0; + if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) + spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; + else { + var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); + spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); + spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; + } + if (blend == MixBlend.setup) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(PathConstraintPositionTimeline)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount) { + var _this = _super.call(this, frameCount) || this; + _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); + return _this; + } + PathConstraintMixTimeline.prototype.getPropertyId = function () { + return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; + }; + PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { + frameIndex *= PathConstraintMixTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; + this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + }; + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + return; + case MixBlend.first: + constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha; + constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha; + } + return; + } + var rotate = 0, translate = 0; + if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { + rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; + } + else { + var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); + rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; + translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; + var frameTime = frames[frame]; + var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); + rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; + translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + } + if (blend == MixBlend.setup) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + PathConstraintMixTimeline.ENTRIES = 3; + PathConstraintMixTimeline.PREV_TIME = -3; + PathConstraintMixTimeline.PREV_ROTATE = -2; + PathConstraintMixTimeline.PREV_TRANSLATE = -1; + PathConstraintMixTimeline.ROTATE = 1; + PathConstraintMixTimeline.TRANSLATE = 2; + return PathConstraintMixTimeline; + }(CurveTimeline)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.timeScale = 1; - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.animationsChanged = false; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime += current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += delta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - if (from != null) - from.mixingTo = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { - if (from.totalAlpha == 0 || to.mixDuration == 0) { - to.mixingFrom = from.mixingFrom; - if (from.mixingFrom != null) - from.mixingFrom.mixingTo = to; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.trackTime += delta * from.timeScale; - to.mixTime += delta; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null || current.delay > 0) - continue; - applied = true; - var blend = i == 0 ? spine.MixBlend.first : current.mixBlend; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton, blend); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if ((i == 0 && mix == 1) || blend == spine.MixBlend.add) { - for (var ii = 0; ii < timelineCount; ii++) { - spine.Utils.webkit602BugfixHelper(mix, blend); - timelines[ii].apply(skeleton, animationLast, animationTime, events, mix, blend, spine.MixDirection.mixIn); - } - } - else { - var timelineMode = current.timelineMode; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline = timelines[ii]; - var timelineBlend = (timelineMode[ii] & (AnimationState.NOT_LAST - 1)) == AnimationState.SUBSEQUENT ? blend : spine.MixBlend.setup; - if (timeline instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); - } - else { - spine.Utils.webkit602BugfixHelper(mix, blend); - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineBlend, spine.MixDirection.mixIn); - } - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton, blend) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton, blend); - var mix = 0; - if (to.mixDuration == 0) { - mix = 1; - if (blend == spine.MixBlend.first) - blend = spine.MixBlend.setup; - } - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - if (blend != spine.MixBlend.first) - blend = from.mixBlend; - } - 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 alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); - if (blend == spine.MixBlend.add) { - for (var i = 0; i < timelineCount; i++) - timelines[i].apply(skeleton, animationLast, animationTime, events, alphaMix, blend, spine.MixDirection.mixOut); - } - else { - var timelineMode = from.timelineMode; - var timelineHoldMix = from.timelineHoldMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - var direction = spine.MixDirection.mixOut; - var timelineBlend = void 0; - var alpha = 0; - switch (timelineMode[i] & (AnimationState.NOT_LAST - 1)) { - case AnimationState.SUBSEQUENT: - timelineBlend = blend; - if (!attachments && timeline instanceof spine.AttachmentTimeline) { - if ((timelineMode[i] & AnimationState.NOT_LAST) == AnimationState.NOT_LAST) - continue; - timelineBlend = spine.MixBlend.setup; - } - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - alpha = alphaMix; - break; - case AnimationState.FIRST: - timelineBlend = spine.MixBlend.setup; - alpha = alphaMix; - break; - case AnimationState.HOLD: - timelineBlend = spine.MixBlend.setup; - alpha = alphaHold; - break; - default: - timelineBlend = spine.MixBlend.setup; - var holdMix = timelineHoldMix[i]; - alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); - else { - spine.Utils.webkit602BugfixHelper(alpha, blend); - if (timelineBlend == spine.MixBlend.setup) { - if (timeline instanceof spine.AttachmentTimeline) { - if (attachments || (timelineMode[i] & AnimationState.NOT_LAST) == AnimationState.NOT_LAST) - direction = spine.MixDirection.mixIn; - } - else if (timeline instanceof spine.DrawOrderTimeline) { - if (drawOrder) - direction = spine.MixDirection.mixIn; - } - } - timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction); - } - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, blend, spine.MixDirection.mixIn); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (!bone.active) - return; - var r1 = 0, r2 = 0; - if (time < frames[0]) { - switch (blend) { - case spine.MixBlend.setup: - bone.rotation = bone.data.rotation; - default: - return; - case spine.MixBlend.first: - r1 = bone.rotation; - r2 = bone.data.rotation; - } - } - else { - r1 = blend == spine.MixBlend.setup ? bone.data.rotation : bone.rotation; - 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 total = 0, diff = r2 - r1; - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - 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); - } - var complete = false; - if (entry.loop) - complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; - else - complete = animationTime >= animationEnd && entry.animationLast < animationEnd; - if (complete) - this.queue.complete(entry); - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry.mixingTo = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - from.mixingTo = current; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) { - if (last.loop) - delay += duration * (1 + ((last.trackTime / duration) | 0)); - else - delay += Math.max(duration, last.trackTime); - delay -= this.data.getMix(last.animation, animation); - } - else - delay = last.trackTime; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index + 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.holdPrevious = false; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - entry.mixBlend = spine.MixBlend.replace; - 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; - this.propertyIDs.clear(); - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry == null) - continue; - while (entry.mixingFrom != null) - entry = entry.mixingFrom; - do { - if (entry.mixingFrom == null || entry.mixBlend != spine.MixBlend.add) - this.computeHold(entry); - entry = entry.mixingTo; - } while (entry != null); - } - this.propertyIDs.clear(); - for (var i = this.tracks.length - 1; i >= 0; i--) { - var entry = this.tracks[i]; - while (entry != null) { - this.computeNotLast(entry); - entry = entry.mixingFrom; - } - } - }; - AnimationState.prototype.computeHold = function (entry) { - var to = entry.mixingTo; - var timelines = entry.animation.timelines; - var timelinesCount = entry.animation.timelines.length; - var timelineMode = spine.Utils.setArraySize(entry.timelineMode, timelinesCount); - entry.timelineHoldMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(entry.timelineHoldMix, timelinesCount); - var propertyIDs = this.propertyIDs; - if (to != null && to.holdPrevious) { - for (var i = 0; i < timelinesCount; i++) { - propertyIDs.add(timelines[i].getPropertyId()); - timelineMode[i] = AnimationState.HOLD; - } - return; - } - outer: for (var i = 0; i < timelinesCount; i++) { - var timeline = timelines[i]; - var id = timeline.getPropertyId(); - if (!propertyIDs.add(id)) - timelineMode[i] = AnimationState.SUBSEQUENT; - else if (to == null || timeline instanceof spine.AttachmentTimeline || timeline instanceof spine.DrawOrderTimeline - || timeline instanceof spine.EventTimeline || !to.animation.hasTimeline(id)) { - timelineMode[i] = AnimationState.FIRST; - } - else { - for (var next = to.mixingTo; next != null; next = next.mixingTo) { - if (next.animation.hasTimeline(id)) - continue; - if (entry.mixDuration > 0) { - timelineMode[i] = AnimationState.HOLD_MIX; - timelineDipMix[i] = next; - continue outer; - } - break; - } - timelineMode[i] = AnimationState.HOLD; - } - } - }; - AnimationState.prototype.computeNotLast = function (entry) { - var timelines = entry.animation.timelines; - var timelinesCount = entry.animation.timelines.length; - var timelineMode = entry.timelineMode; - var propertyIDs = this.propertyIDs; - for (var i = 0; i < timelinesCount; i++) { - if (timelines[i] instanceof spine.AttachmentTimeline) { - var timeline = timelines[i]; - if (!propertyIDs.add(timeline.slotIndex)) - timelineMode[i] |= AnimationState.NOT_LAST; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.HOLD = 2; - AnimationState.HOLD_MIX = 3; - AnimationState.NOT_LAST = 4; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.mixBlend = spine.MixBlend.replace; - this.timelineMode = new Array(); - this.timelineHoldMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.mixingTo = null; - this.animation = null; - this.listener = null; - this.timelineMode.length = 0; - this.timelineHoldMix.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.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - var EventType; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { - } - AnimationStateAdapter.prototype.start = function (entry) { - }; - AnimationStateAdapter.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter.prototype.end = function (entry) { - }; - AnimationStateAdapter.prototype.dispose = function (entry) { - }; - AnimationStateAdapter.prototype.complete = function (entry) { - }; - AnimationStateAdapter.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter; - }()); - spine.AnimationStateAdapter = AnimationStateAdapter; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.timeScale = 1; + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.IntSet(); + this.animationsChanged = false; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime += current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += delta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + if (from != null) + from.mixingTo = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { + if (from.totalAlpha == 0 || to.mixDuration == 0) { + to.mixingFrom = from.mixingFrom; + if (from.mixingFrom != null) + from.mixingFrom.mixingTo = to; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.trackTime += delta * from.timeScale; + to.mixTime += delta; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var blend = i == 0 ? spine.MixBlend.first : current.mixBlend; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton, blend); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(); + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if ((i == 0 && mix == 1) || blend == spine.MixBlend.add) { + for (var ii = 0; ii < timelineCount; ii++) { + spine.Utils.webkit602BugfixHelper(mix, blend); + timelines[ii].apply(skeleton, animationLast, animationTime, events, mix, blend, spine.MixDirection.mixIn); + } + } + else { + var timelineMode = current.timelineMode; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline = timelines[ii]; + var timelineBlend = (timelineMode[ii] & (AnimationState.NOT_LAST - 1)) == AnimationState.SUBSEQUENT ? blend : spine.MixBlend.setup; + if (timeline instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); + } + else { + spine.Utils.webkit602BugfixHelper(mix, blend); + timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineBlend, spine.MixDirection.mixIn); + } + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton, blend) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton, blend); + var mix = 0; + if (to.mixDuration == 0) { + mix = 1; + if (blend == spine.MixBlend.first) + blend = spine.MixBlend.setup; + } + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + if (blend != spine.MixBlend.first) + blend = from.mixBlend; + } + 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 alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); + if (blend == spine.MixBlend.add) { + for (var i = 0; i < timelineCount; i++) + timelines[i].apply(skeleton, animationLast, animationTime, events, alphaMix, blend, spine.MixDirection.mixOut); + } + else { + var timelineMode = from.timelineMode; + var timelineHoldMix = from.timelineHoldMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var direction = spine.MixDirection.mixOut; + var timelineBlend = void 0; + var alpha = 0; + switch (timelineMode[i] & (AnimationState.NOT_LAST - 1)) { + case AnimationState.SUBSEQUENT: + timelineBlend = blend; + if (!attachments && timeline instanceof spine.AttachmentTimeline) { + if ((timelineMode[i] & AnimationState.NOT_LAST) == AnimationState.NOT_LAST) + continue; + timelineBlend = spine.MixBlend.setup; + } + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + alpha = alphaMix; + break; + case AnimationState.FIRST: + timelineBlend = spine.MixBlend.setup; + alpha = alphaMix; + break; + case AnimationState.HOLD: + timelineBlend = spine.MixBlend.setup; + alpha = alphaHold; + break; + default: + timelineBlend = spine.MixBlend.setup; + var holdMix = timelineHoldMix[i]; + alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); + else { + spine.Utils.webkit602BugfixHelper(alpha, blend); + if (timelineBlend == spine.MixBlend.setup) { + if (timeline instanceof spine.AttachmentTimeline) { + if (attachments || (timelineMode[i] & AnimationState.NOT_LAST) == AnimationState.NOT_LAST) + direction = spine.MixDirection.mixIn; + } + else if (timeline instanceof spine.DrawOrderTimeline) { + if (drawOrder) + direction = spine.MixDirection.mixIn; + } + } + timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction); + } + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, blend, spine.MixDirection.mixIn); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (!bone.active) + return; + var r1 = 0, r2 = 0; + if (time < frames[0]) { + switch (blend) { + case spine.MixBlend.setup: + bone.rotation = bone.data.rotation; + default: + return; + case spine.MixBlend.first: + r1 = bone.rotation; + r2 = bone.data.rotation; + } + } + else { + r1 = blend == spine.MixBlend.setup ? bone.data.rotation : bone.rotation; + 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 total = 0, diff = r2 - r1; + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + 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); + } + var complete = false; + if (entry.loop) + complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; + else + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + if (complete) + this.queue.complete(entry); + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry.mixingTo = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + from.mixingTo = current; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + if (delay <= 0) { + var duration = last.animationEnd - last.animationStart; + if (duration != 0) { + if (last.loop) + delay += duration * (1 + ((last.trackTime / duration) | 0)); + else + delay += Math.max(duration, last.trackTime); + delay -= this.data.getMix(last.animation, animation); + } + else + delay = last.trackTime; + } + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + if (delay <= 0) + delay -= mixDuration; + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index + 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.holdPrevious = false; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + entry.mixBlend = spine.MixBlend.replace; + 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; + this.propertyIDs.clear(); + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + while (entry.mixingFrom != null) + entry = entry.mixingFrom; + do { + if (entry.mixingFrom == null || entry.mixBlend != spine.MixBlend.add) + this.computeHold(entry); + entry = entry.mixingTo; + } while (entry != null); + } + this.propertyIDs.clear(); + for (var i = this.tracks.length - 1; i >= 0; i--) { + var entry = this.tracks[i]; + while (entry != null) { + this.computeNotLast(entry); + entry = entry.mixingFrom; + } + } + }; + AnimationState.prototype.computeHold = function (entry) { + var to = entry.mixingTo; + var timelines = entry.animation.timelines; + var timelinesCount = entry.animation.timelines.length; + var timelineMode = spine.Utils.setArraySize(entry.timelineMode, timelinesCount); + entry.timelineHoldMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(entry.timelineHoldMix, timelinesCount); + var propertyIDs = this.propertyIDs; + if (to != null && to.holdPrevious) { + for (var i = 0; i < timelinesCount; i++) { + propertyIDs.add(timelines[i].getPropertyId()); + timelineMode[i] = AnimationState.HOLD; + } + return; + } + outer: for (var i = 0; i < timelinesCount; i++) { + var timeline = timelines[i]; + var id = timeline.getPropertyId(); + if (!propertyIDs.add(id)) + timelineMode[i] = AnimationState.SUBSEQUENT; + else if (to == null || timeline instanceof spine.AttachmentTimeline || timeline instanceof spine.DrawOrderTimeline + || timeline instanceof spine.EventTimeline || !to.animation.hasTimeline(id)) { + timelineMode[i] = AnimationState.FIRST; + } + else { + for (var next = to.mixingTo; next != null; next = next.mixingTo) { + if (next.animation.hasTimeline(id)) + continue; + if (entry.mixDuration > 0) { + timelineMode[i] = AnimationState.HOLD_MIX; + timelineDipMix[i] = next; + continue outer; + } + break; + } + timelineMode[i] = AnimationState.HOLD; + } + } + }; + AnimationState.prototype.computeNotLast = function (entry) { + var timelines = entry.animation.timelines; + var timelinesCount = entry.animation.timelines.length; + var timelineMode = entry.timelineMode; + var propertyIDs = this.propertyIDs; + for (var i = 0; i < timelinesCount; i++) { + if (timelines[i] instanceof spine.AttachmentTimeline) { + var timeline = timelines[i]; + if (!propertyIDs.add(timeline.slotIndex)) + timelineMode[i] |= AnimationState.NOT_LAST; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState.emptyAnimation = new spine.Animation("", [], 0); + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.HOLD = 2; + AnimationState.HOLD_MIX = 3; + AnimationState.NOT_LAST = 4; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.mixBlend = spine.MixBlend.replace; + this.timelineMode = new Array(); + this.timelineHoldMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.next = null; + this.mixingFrom = null; + this.mixingTo = null; + this.animation = null; + this.listener = null; + this.timelineMode.length = 0; + this.timelineHoldMix.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.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + var EventType; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(EventType = spine.EventType || (spine.EventType = {})); + var AnimationStateAdapter = (function () { + function AnimationStateAdapter() { + } + AnimationStateAdapter.prototype.start = function (entry) { + }; + AnimationStateAdapter.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter.prototype.end = function (entry) { + }; + AnimationStateAdapter.prototype.dispose = function (entry) { + }; + AnimationStateAdapter.prototype.complete = function (entry) { + }; + AnimationStateAdapter.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter; + }()); + spine.AnimationStateAdapter = AnimationStateAdapter; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + "." + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + "." + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + "." + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + "." + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.rawDataUris = {}; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.downloadText = function (url, success, error) { - var request = new XMLHttpRequest(); - if (this.rawDataUris[url]) - url = this.rawDataUris[url]; - request.open("GET", url, true); - request.onload = function () { - if (request.status == 200) { - success(request.responseText); - } - else { - error(request.status, request.responseText); - } - }; - request.onerror = function () { - error(request.status, request.responseText); - }; - request.send(); - }; - AssetManager.prototype.downloadBinary = function (url, success, error) { - var request = new XMLHttpRequest(); - if (this.rawDataUris[url]) - url = this.rawDataUris[url]; - request.open("GET", url, true); - request.responseType = "arraybuffer"; - request.onload = function () { - if (request.status == 200) { - success(new Uint8Array(request.response)); - } - else { - error(request.status, request.responseText); - } - }; - request.onerror = function () { - error(request.status, request.responseText); - }; - request.send(); - }; - AssetManager.prototype.setRawDataURI = function (path, data) { - this.rawDataUris[this.pathPrefix + path] = data; - }; - AssetManager.prototype.loadBinary = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - this.downloadBinary(path, function (data) { - _this.assets[path] = data; - if (success) - success(path, data); - _this.toLoad--; - _this.loaded++; - }, function (state, responseText) { - _this.errors[path] = "Couldn't load binary " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load binary " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - this.downloadText(path, function (data) { - _this.assets[path] = data; - if (success) - success(path, data); - _this.toLoad--; - _this.loaded++; - }, function (state, responseText) { - _this.errors[path] = "Couldn't load text " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - var storagePath = path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[storagePath] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - if (this.rawDataUris[path]) - path = this.rawDataUris[path]; - img.src = path; - }; - AssetManager.prototype.loadTextureAtlas = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - var parent = path.lastIndexOf("/") >= 0 ? path.substring(0, path.lastIndexOf("/")) : ""; - path = this.pathPrefix + path; - this.toLoad++; - this.downloadText(path, function (atlasData) { - var pagesLoaded = { count: 0 }; - var atlasPages = new Array(); - try { - var atlas = new spine.TextureAtlas(atlasData, function (path) { - atlasPages.push(parent == "" ? path : parent + "/" + path); - var image = document.createElement("img"); - image.width = 16; - image.height = 16; - return new spine.FakeTexture(image); - }); - } - catch (e) { - var ex = e; - _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; - if (error) - error(path, "Couldn't load texture atlas " + path + ": " + ex.message); - _this.toLoad--; - _this.loaded++; - return; - } - var _loop_1 = function (atlasPage) { - var pageLoadError = false; - _this.loadTexture(atlasPage, function (imagePath, image) { - pagesLoaded.count++; - if (pagesLoaded.count == atlasPages.length) { - if (!pageLoadError) { - try { - var atlas = new spine.TextureAtlas(atlasData, function (path) { - return _this.get(parent == "" ? path : parent + "/" + path); - }); - _this.assets[path] = atlas; - if (success) - success(path, atlas); - _this.toLoad--; - _this.loaded++; - } - catch (e) { - var ex = e; - _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; - if (error) - error(path, "Couldn't load texture atlas " + path + ": " + ex.message); - _this.toLoad--; - _this.loaded++; - } - } - else { - _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; - if (error) - error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); - _this.toLoad--; - _this.loaded++; - } - } - }, function (imagePath, errorMessage) { - pageLoadError = true; - pagesLoaded.count++; - if (pagesLoaded.count == atlasPages.length) { - _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; - if (error) - error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); - _this.toLoad--; - _this.loaded++; - } - }); - }; - for (var _i = 0, atlasPages_1 = atlasPages; _i < atlasPages_1.length; _i++) { - var atlasPage = atlasPages_1[_i]; - _loop_1(atlasPage); - } - }, function (state, responseText) { - _this.errors[path] = "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.rawDataUris = {}; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.downloadText = function (url, success, error) { + var request = new XMLHttpRequest(); + if (this.rawDataUris[url]) + url = this.rawDataUris[url]; + request.open("GET", url, true); + request.onload = function () { + if (request.status == 200) { + success(request.responseText); + } + else { + error(request.status, request.responseText); + } + }; + request.onerror = function () { + error(request.status, request.responseText); + }; + request.send(); + }; + AssetManager.prototype.downloadBinary = function (url, success, error) { + var request = new XMLHttpRequest(); + if (this.rawDataUris[url]) + url = this.rawDataUris[url]; + request.open("GET", url, true); + request.responseType = "arraybuffer"; + request.onload = function () { + if (request.status == 200) { + success(new Uint8Array(request.response)); + } + else { + error(request.status, request.responseText); + } + }; + request.onerror = function () { + error(request.status, request.responseText); + }; + request.send(); + }; + AssetManager.prototype.setRawDataURI = function (path, data) { + this.rawDataUris[this.pathPrefix + path] = data; + }; + AssetManager.prototype.loadBinary = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + this.downloadBinary(path, function (data) { + _this.assets[path] = data; + if (success) + success(path, data); + _this.toLoad--; + _this.loaded++; + }, function (state, responseText) { + _this.errors[path] = "Couldn't load binary " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load binary " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + this.downloadText(path, function (data) { + _this.assets[path] = data; + if (success) + success(path, data); + _this.toLoad--; + _this.loaded++; + }, function (state, responseText) { + _this.errors[path] = "Couldn't load text " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + var storagePath = path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[storagePath] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + if (this.rawDataUris[path]) + path = this.rawDataUris[path]; + img.src = path; + }; + AssetManager.prototype.loadTextureAtlas = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + var parent = path.lastIndexOf("/") >= 0 ? path.substring(0, path.lastIndexOf("/")) : ""; + path = this.pathPrefix + path; + this.toLoad++; + this.downloadText(path, function (atlasData) { + var pagesLoaded = { count: 0 }; + var atlasPages = new Array(); + try { + var atlas = new spine.TextureAtlas(atlasData, function (path) { + atlasPages.push(parent == "" ? path : parent + "/" + path); + var image = document.createElement("img"); + image.width = 16; + image.height = 16; + return new spine.FakeTexture(image); + }); + } + catch (e) { + var ex = e; + _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; + if (error) + error(path, "Couldn't load texture atlas " + path + ": " + ex.message); + _this.toLoad--; + _this.loaded++; + return; + } + var _loop_1 = function (atlasPage) { + var pageLoadError = false; + _this.loadTexture(atlasPage, function (imagePath, image) { + pagesLoaded.count++; + if (pagesLoaded.count == atlasPages.length) { + if (!pageLoadError) { + try { + var atlas = new spine.TextureAtlas(atlasData, function (path) { + return _this.get(parent == "" ? path : parent + "/" + path); + }); + _this.assets[path] = atlas; + if (success) + success(path, atlas); + _this.toLoad--; + _this.loaded++; + } + catch (e) { + var ex = e; + _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; + if (error) + error(path, "Couldn't load texture atlas " + path + ": " + ex.message); + _this.toLoad--; + _this.loaded++; + } + } + else { + _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; + if (error) + error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); + _this.toLoad--; + _this.loaded++; + } + } + }, function (imagePath, errorMessage) { + pageLoadError = true; + pagesLoaded.count++; + if (pagesLoaded.count == atlasPages.length) { + _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; + if (error) + error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); + _this.toLoad--; + _this.loaded++; + } + }); + }; + for (var _i = 0, atlasPages_1 = atlasPages; _i < atlasPages_1.length; _i++) { + var atlasPage = atlasPages_1[_i]; + _loop_1(atlasPage); + } + }, function (state, responseText) { + _this.errors[path] = "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + var BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.worldX = 0; - this.sorted = false; - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.isActive = function () { - return this.active; - }; - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var skeleton = this.skeleton; - var rotationY = rotation + 90 + shearY; - var sx = skeleton.scaleX; - var sy = skeleton.scaleY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX * sx; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY * sx; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX * sy; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY * sy; - this.worldX = x * sx + skeleton.x; - this.worldY = y * sy + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = (pa * cos + pb * sin) / this.skeleton.scaleX; - var zc = (pc * cos + pd * sin) / this.skeleton.scaleY; - 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); - if (this.data.transformMode == spine.TransformMode.NoScale - && (pa * pd - pb * pc < 0) != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) - s = -s; - 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; - break; - } - } - this.a *= this.skeleton.scaleX; - this.b *= this.skeleton.scaleX; - this.c *= this.skeleton.scaleY; - this.d *= this.skeleton.scaleY; - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg + this.rotation - this.shearX; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - localRotation -= this.rotation - this.shearX; - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.worldX = 0; + this.sorted = false; + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.isActive = function () { + return this.active; + }; + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var skeleton = this.skeleton; + var rotationY = rotation + 90 + shearY; + var sx = skeleton.scaleX; + var sy = skeleton.scaleY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX * sx; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY * sx; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX * sy; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY * sy; + this.worldX = x * sx + skeleton.x; + this.worldY = y * sy + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = (pa * cos + pb * sin) / this.skeleton.scaleX; + var zc = (pc * cos + pd * sin) / this.skeleton.scaleY; + 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); + if (this.data.transformMode == spine.TransformMode.NoScale + && (pa * pd - pb * pc < 0) != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) + s = -s; + 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; + break; + } + } + this.a *= this.skeleton.scaleX; + this.b *= this.skeleton.scaleX; + this.c *= this.skeleton.scaleY; + this.d *= this.skeleton.scaleY; + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var invDet = 1 / (a * d - b * c); + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg + this.rotation - this.shearX; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + localRotation -= this.rotation - this.shearX; + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - this.skinRequired = false; - this.color = new spine.Color(); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - var TransformMode; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + this.skinRequired = false; + this.color = new spine.Color(); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + var TransformMode; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var ConstraintData = (function () { - function ConstraintData(name, order, skinRequired) { - this.name = name; - this.order = order; - this.skinRequired = skinRequired; - } - return ConstraintData; - }()); - spine.ConstraintData = ConstraintData; + var ConstraintData = (function () { + function ConstraintData(name, order, skinRequired) { + this.name = name; + this.order = order; + this.skinRequired = skinRequired; + } + return ConstraintData; + }()); + spine.ConstraintData = ConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.bendDirection = 0; - this.compress = false; - this.stretch = false; - this.mix = 1; - this.softness = 0; - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.softness = data.softness; - this.bendDirection = data.bendDirection; - this.compress = data.compress; - this.stretch = data.stretch; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.isActive = function () { - return this.active; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.compress, this.stretch, this.data.uniform, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.softness, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, compress, stretch, uniform, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var id = 1 / (p.a * p.d - p.b * p.c); - var x = targetX - p.worldX, y = targetY - p.worldY; - var tx = (x * p.d - y * p.b) * id - bone.ax, ty = (y * p.a - x * p.c) * id - bone.ay; - var rotationIK = Math.atan2(ty, tx) * spine.MathUtils.radDeg - bone.ashearX - bone.arotation; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - var sx = bone.ascaleX, sy = bone.ascaleY; - if (compress || stretch) { - var b = bone.data.length * sx, dd = Math.sqrt(tx * tx + ty * ty); - if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { - var s = (dd / b - 1) * alpha + 1; - sx *= s; - if (uniform) - sy *= s; - } - } - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, stretch, softness, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, sx = psx, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = cwx - pp.worldX, y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1, a2; - if (l1 < 0.0001) { - this.apply1(parent, targetX, targetY, false, stretch, false, alpha); - child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - return; - } - x = targetX - pp.worldX; - y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - var dd = tx * tx + ty * ty; - if (softness != 0) { - softness *= psx * (csx + 1) / 2; - var td = Math.sqrt(dd), sd = td - l1 - l2 * psx + softness; - if (sd > 0) { - var p = Math.min(1, sd / (softness * 2)) - 1; - p = (sd - softness * (1 - p * p)) / td; - tx -= p * tx; - ty -= p * ty; - dd = tx * tx + ty * ty; - } - } - outer: if (u) { - l2 *= psx; - var cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) { - cos = 1; - if (stretch) - sx *= (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; - } - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.bendDirection = 0; + this.compress = false; + this.stretch = false; + this.mix = 1; + this.softness = 0; + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.softness = data.softness; + this.bendDirection = data.bendDirection; + this.compress = data.compress; + this.stretch = data.stretch; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.isActive = function () { + return this.active; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.compress, this.stretch, this.data.uniform, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.softness, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, compress, stretch, uniform, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var pa = p.a, pb = p.b, pc = p.c, pd = p.d; + var rotationIK = -bone.ashearX - bone.arotation, tx = 0, ty = 0; + switch (bone.data.transformMode) { + case spine.TransformMode.OnlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + break; + case spine.TransformMode.NoRotationOrReflection: + rotationIK += Math.atan2(pc, pa) * spine.MathUtils.radDeg; + var ps = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; + default: + var x = targetX - p.worldX, y = targetY - p.worldY; + var d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + rotationIK += Math.atan2(ty, tx) * spine.MathUtils.radDeg; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + var sx = bone.ascaleX, sy = bone.ascaleY; + if (compress || stretch) { + switch (bone.data.transformMode) { + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } + var b = bone.data.length * sx, dd = Math.sqrt(tx * tx + ty * ty); + if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { + var s = (dd / b - 1) * alpha + 1; + sx *= s; + if (uniform) + sy *= s; + } + } + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, stretch, softness, alpha) { + if (alpha == 0) { + child.updateWorldTransform(); + return; + } + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, sx = psx, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = cwx - pp.worldX, y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1, a2; + if (l1 < 0.0001) { + this.apply1(parent, targetX, targetY, false, stretch, false, alpha); + child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + return; + } + x = targetX - pp.worldX; + y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + var dd = tx * tx + ty * ty; + if (softness != 0) { + softness *= psx * (csx + 1) / 2; + var td = Math.sqrt(dd), sd = td - l1 - l2 * psx + softness; + if (sd > 0) { + var p = Math.min(1, sd / (softness * 2)) - 1; + p = (sd - softness * (1 - p * p)) / td; + tx -= p * tx; + ty -= p * ty; + dd = tx * tx + ty * ty; + } + } + outer: if (u) { + l2 *= psx; + var cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) { + cos = 1; + if (stretch) + sx *= (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; + } + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function (_super) { - __extends(IkConstraintData, _super); - function IkConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - _this.bendDirection = 1; - _this.compress = false; - _this.stretch = false; - _this.uniform = false; - _this.mix = 1; - _this.softness = 0; - return _this; - } - return IkConstraintData; - }(spine.ConstraintData)); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function (_super) { + __extends(IkConstraintData, _super); + function IkConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + _this.bendDirection = 1; + _this.compress = false; + _this.stretch = false; + _this.uniform = false; + _this.mix = 1; + _this.softness = 0; + return _this; + } + return IkConstraintData; + }(spine.ConstraintData)); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.isActive = function () { - return this.active; - }; - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var percentSpacing = data.spacingMode == spine.SpacingMode.Percent; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || !percentSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - var lengthSpacing = data.spacingMode == spine.SpacingMode.Length; - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length; - if (setupLength < PathConstraint.epsilon) { - if (scale) - lengths[i] = 0; - spaces[++i] = 0; - } - else if (percentSpacing) { - if (scale) { - var x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - lengths[i] = length_1; - } - spaces[++i] = spacing; - } - else { - var x = setupLength * bone.a, y = setupLength * bone.c; - var length_2 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_2; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_2 / setupLength; - } - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_3 = lengths[i]; - if (length_3 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_3 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_4 = bone.data.length; - boneX += (length_4 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_4 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 1; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_5 = lengths[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - else - position *= pathLength / path.lengths[curveCount - 1]; - if (percentSpacing) { - for (var i = 1; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_6 = curves[curve]; - if (p > length_6) - continue; - if (curve == 0) - p /= length_6; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_6 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_7 = segments[segment]; - if (p > length_7) - continue; - if (segment == 0) - p /= length_7; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_7 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) { - out[o] = x1; - out[o + 1] = y1; - out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); - return; - } - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) { - if (p < 0.001) - out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); - else - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - } - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - PathConstraint.epsilon = 0.00001; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.isActive = function () { + return this.active; + }; + PathConstraint.prototype.apply = function () { + this.update(); + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var percentSpacing = data.spacingMode == spine.SpacingMode.Percent; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || !percentSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + var lengthSpacing = data.spacingMode == spine.SpacingMode.Length; + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length; + if (setupLength < PathConstraint.epsilon) { + if (scale) + lengths[i] = 0; + spaces[++i] = 0; + } + else if (percentSpacing) { + if (scale) { + var x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + lengths[i] = length_1; + } + spaces[++i] = spacing; + } + else { + var x = setupLength * bone.a, y = setupLength * bone.c; + var length_2 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_2; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_2 / setupLength; + } + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_3 = lengths[i]; + if (length_3 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_3 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_4 = bone.data.length; + boneX += (length_4 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_4 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 1; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_5 = lengths[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + else + position *= pathLength / path.lengths[curveCount - 1]; + if (percentSpacing) { + for (var i = 1; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_6 = curves[curve]; + if (p > length_6) + continue; + if (curve == 0) + p /= length_6; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_6 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_7 = segments[segment]; + if (p > length_7) + continue; + if (segment == 0) + p /= length_7; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_7 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) { + out[o] = x1; + out[o + 1] = y1; + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + return; + } + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) { + if (p < 0.001) + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + else + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + } + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + PathConstraint.epsilon = 0.00001; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function (_super) { - __extends(PathConstraintData, _super); - function PathConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - return _this; - } - return PathConstraintData; - }(spine.ConstraintData)); - spine.PathConstraintData = PathConstraintData; - var PositionMode; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + var PathConstraintData = (function (_super) { + __extends(PathConstraintData, _super); + function PathConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + return _this; + } + return PathConstraintData; + }(spine.ConstraintData)); + spine.PathConstraintData = PathConstraintData; + var PositionMode; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); + var SpacingMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); + var RotateMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var img = new Image(); - img.src = path; - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - _this.rawAssets[path] = img; - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var img = new Image(); + img.src = path; + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + _this.rawAssets[path] = img; + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.scaleX = 1; - this.scaleY = 1; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - bone.sorted = bone.data.skinRequired; - bone.active = !bone.sorted; - } - if (this.skin != null) { - var skinBones = this.skin.bones; - for (var i = 0, n = this.skin.bones.length; i < n; i++) { - var bone = this.bones[skinBones[i].index]; - do { - bone.sorted = false; - bone.active = true; - bone = bone.parent; - } while (bone != null); - } - } - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - 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) { - constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.active) - continue; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.mix = constraint.data.mix; - constraint.softness = constraint.data.softness; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin == this.skin) - return; - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - this.updateCache(); - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (temp === void 0) { temp = new Array(2); } - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - if (!slot.bone.active) - continue; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.updateCacheReset = new Array(); + this.time = 0; + this.scaleX = 1; + this.scaleY = 1; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + this.updateCacheReset.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + bone.sorted = bone.data.skinRequired; + bone.active = !bone.sorted; + } + if (this.skin != null) { + var skinBones = this.skin.bones; + for (var i = 0, n = this.skin.bones.length; i < n; i++) { + var bone = this.bones[skinBones[i].index]; + do { + bone.sorted = false; + bone.active = true; + bone = bone.parent; + } while (bone != null); + } + } + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + 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) { + constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + if (!(this._updateCache.indexOf(child) > -1)) + this.updateCacheReset.push(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.active) + continue; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCacheReset = this.updateCacheReset; + for (var i = 0, n = updateCacheReset.length; i < n; i++) { + var bone = updateCacheReset[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + bone.appliedValid = true; + } + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin == this.skin) + return; + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + this.updateCache(); + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (temp === void 0) { temp = new Array(2); } + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + if (!slot.bone.active) + continue; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBinary = (function () { - function SkeletonBinary(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonBinary.prototype.readSkeletonData = function (binary) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - skeletonData.name = ""; - var input = new BinaryInput(binary); - skeletonData.hash = input.readString(); - skeletonData.version = input.readString(); - skeletonData.x = input.readFloat(); - skeletonData.y = input.readFloat(); - skeletonData.width = input.readFloat(); - skeletonData.height = input.readFloat(); - var nonessential = input.readBoolean(); - if (nonessential) { - skeletonData.fps = input.readFloat(); - skeletonData.imagesPath = input.readString(); - skeletonData.audioPath = input.readString(); - } - var n = 0; - n = input.readInt(true); - for (var i = 0; i < n; i++) - input.strings.push(input.readString()); - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var name_2 = input.readString(); - var parent_2 = i == 0 ? null : skeletonData.bones[input.readInt(true)]; - var data = new spine.BoneData(i, name_2, parent_2); - data.rotation = input.readFloat(); - data.x = input.readFloat() * scale; - data.y = input.readFloat() * scale; - data.scaleX = input.readFloat(); - data.scaleY = input.readFloat(); - data.shearX = input.readFloat(); - data.shearY = input.readFloat(); - data.length = input.readFloat() * scale; - data.transformMode = SkeletonBinary.TransformModeValues[input.readInt(true)]; - data.skinRequired = input.readBoolean(); - if (nonessential) - spine.Color.rgba8888ToColor(data.color, input.readInt32()); - skeletonData.bones.push(data); - } - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var slotName = input.readString(); - var boneData = skeletonData.bones[input.readInt(true)]; - var data = new spine.SlotData(i, slotName, boneData); - spine.Color.rgba8888ToColor(data.color, input.readInt32()); - var darkColor = input.readInt32(); - if (darkColor != -1) - spine.Color.rgb888ToColor(data.darkColor = new spine.Color(), darkColor); - data.attachmentName = input.readStringRef(); - data.blendMode = SkeletonBinary.BlendModeValues[input.readInt(true)]; - skeletonData.slots.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.IkConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.bones[input.readInt(true)]; - data.mix = input.readFloat(); - data.softness = input.readFloat() * scale; - data.bendDirection = input.readByte(); - data.compress = input.readBoolean(); - data.stretch = input.readBoolean(); - data.uniform = input.readBoolean(); - skeletonData.ikConstraints.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.TransformConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.bones[input.readInt(true)]; - data.local = input.readBoolean(); - data.relative = input.readBoolean(); - data.offsetRotation = input.readFloat(); - data.offsetX = input.readFloat() * scale; - data.offsetY = input.readFloat() * scale; - data.offsetScaleX = input.readFloat(); - data.offsetScaleY = input.readFloat(); - data.offsetShearY = input.readFloat(); - data.rotateMix = input.readFloat(); - data.translateMix = input.readFloat(); - data.scaleMix = input.readFloat(); - data.shearMix = input.readFloat(); - skeletonData.transformConstraints.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.PathConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.slots[input.readInt(true)]; - data.positionMode = SkeletonBinary.PositionModeValues[input.readInt(true)]; - data.spacingMode = SkeletonBinary.SpacingModeValues[input.readInt(true)]; - data.rotateMode = SkeletonBinary.RotateModeValues[input.readInt(true)]; - data.offsetRotation = input.readFloat(); - data.position = input.readFloat(); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = input.readFloat(); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = input.readFloat(); - data.translateMix = input.readFloat(); - skeletonData.pathConstraints.push(data); - } - var defaultSkin = this.readSkin(input, skeletonData, true, nonessential); - if (defaultSkin != null) { - skeletonData.defaultSkin = defaultSkin; - skeletonData.skins.push(defaultSkin); - } - { - var i = skeletonData.skins.length; - spine.Utils.setArraySize(skeletonData.skins, n = i + input.readInt(true)); - for (; i < n; i++) - skeletonData.skins[i] = this.readSkin(input, skeletonData, false, nonessential); - } - n = this.linkedMeshes.length; - for (var i = 0; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_3 : linkedMesh.mesh; - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var data = new spine.EventData(input.readStringRef()); - data.intValue = input.readInt(false); - data.floatValue = input.readFloat(); - data.stringValue = input.readString(); - data.audioPath = input.readString(); - if (data.audioPath != null) { - data.volume = input.readFloat(); - data.balance = input.readFloat(); - } - skeletonData.events.push(data); - } - n = input.readInt(true); - for (var i = 0; i < n; i++) - skeletonData.animations.push(this.readAnimation(input, input.readString(), skeletonData)); - return skeletonData; - }; - SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) { - var skin = null; - var slotCount = 0; - if (defaultSkin) { - slotCount = input.readInt(true); - if (slotCount == 0) - return null; - skin = new spine.Skin("default"); - } - else { - skin = new spine.Skin(input.readStringRef()); - skin.bones.length = input.readInt(true); - for (var i = 0, n = skin.bones.length; i < n; i++) - skin.bones[i] = skeletonData.bones[input.readInt(true)]; - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); - slotCount = input.readInt(true); - } - for (var i = 0; i < slotCount; i++) { - var slotIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var name_3 = input.readStringRef(); - var attachment = this.readAttachment(input, skeletonData, skin, slotIndex, name_3, nonessential); - if (attachment != null) - skin.setAttachment(slotIndex, name_3, attachment); - } - } - return skin; - }; - SkeletonBinary.prototype.readAttachment = function (input, skeletonData, skin, slotIndex, attachmentName, nonessential) { - var scale = this.scale; - var name = input.readStringRef(); - if (name == null) - name = attachmentName; - var typeIndex = input.readByte(); - var type = SkeletonBinary.AttachmentTypeValues[typeIndex]; - switch (type) { - case spine.AttachmentType.Region: { - var path = input.readStringRef(); - var rotation = input.readFloat(); - var x = input.readFloat(); - var y = input.readFloat(); - var scaleX = input.readFloat(); - var scaleY = input.readFloat(); - var width = input.readFloat(); - var height = input.readFloat(); - var color = input.readInt32(); - if (path == null) - path = name; - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = x * scale; - region.y = y * scale; - region.scaleX = scaleX; - region.scaleY = scaleY; - region.rotation = rotation; - region.width = width * scale; - region.height = height * scale; - spine.Color.rgba8888ToColor(region.color, color); - region.updateOffset(); - return region; - } - case spine.AttachmentType.BoundingBox: { - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var color = nonessential ? input.readInt32() : 0; - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - box.worldVerticesLength = vertexCount << 1; - box.vertices = vertices.vertices; - box.bones = vertices.bones; - if (nonessential) - spine.Color.rgba8888ToColor(box.color, color); - return box; - } - case spine.AttachmentType.Mesh: { - var path = input.readStringRef(); - var color = input.readInt32(); - var vertexCount = input.readInt(true); - var uvs = this.readFloatArray(input, vertexCount << 1, 1); - var triangles = this.readShortArray(input); - var vertices = this.readVertices(input, vertexCount); - var hullLength = input.readInt(true); - var edges = null; - var width = 0, height = 0; - if (nonessential) { - edges = this.readShortArray(input); - width = input.readFloat(); - height = input.readFloat(); - } - if (path == null) - path = name; - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - spine.Color.rgba8888ToColor(mesh.color, color); - mesh.bones = vertices.bones; - mesh.vertices = vertices.vertices; - mesh.worldVerticesLength = vertexCount << 1; - mesh.triangles = triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = hullLength << 1; - if (nonessential) { - mesh.edges = edges; - mesh.width = width * scale; - mesh.height = height * scale; - } - return mesh; - } - case spine.AttachmentType.LinkedMesh: { - var path = input.readStringRef(); - var color = input.readInt32(); - var skinName = input.readStringRef(); - var parent_4 = input.readStringRef(); - var inheritDeform = input.readBoolean(); - var width = 0, height = 0; - if (nonessential) { - width = input.readFloat(); - height = input.readFloat(); - } - if (path == null) - path = name; - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - spine.Color.rgba8888ToColor(mesh.color, color); - if (nonessential) { - mesh.width = width * scale; - mesh.height = height * scale; - } - this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent_4, inheritDeform)); - return mesh; - } - case spine.AttachmentType.Path: { - var closed_1 = input.readBoolean(); - var constantSpeed = input.readBoolean(); - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0, n = lengths.length; i < n; i++) - lengths[i] = input.readFloat() * scale; - var color = nonessential ? input.readInt32() : 0; - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = closed_1; - path.constantSpeed = constantSpeed; - path.worldVerticesLength = vertexCount << 1; - path.vertices = vertices.vertices; - path.bones = vertices.bones; - path.lengths = lengths; - if (nonessential) - spine.Color.rgba8888ToColor(path.color, color); - return path; - } - case spine.AttachmentType.Point: { - var rotation = input.readFloat(); - var x = input.readFloat(); - var y = input.readFloat(); - var color = nonessential ? input.readInt32() : 0; - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = x * scale; - point.y = y * scale; - point.rotation = rotation; - if (nonessential) - spine.Color.rgba8888ToColor(point.color, color); - return point; - } - case spine.AttachmentType.Clipping: { - var endSlotIndex = input.readInt(true); - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var color = nonessential ? input.readInt32() : 0; - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - clip.endSlot = skeletonData.slots[endSlotIndex]; - clip.worldVerticesLength = vertexCount << 1; - clip.vertices = vertices.vertices; - clip.bones = vertices.bones; - if (nonessential) - spine.Color.rgba8888ToColor(clip.color, color); - return clip; - } - } - return null; - }; - SkeletonBinary.prototype.readVertices = function (input, vertexCount) { - var verticesLength = vertexCount << 1; - var vertices = new Vertices(); - var scale = this.scale; - if (!input.readBoolean()) { - vertices.vertices = this.readFloatArray(input, verticesLength, scale); - return vertices; - } - var weights = new Array(); - var bonesArray = new Array(); - for (var i = 0; i < vertexCount; i++) { - var boneCount = input.readInt(true); - bonesArray.push(boneCount); - for (var ii = 0; ii < boneCount; ii++) { - bonesArray.push(input.readInt(true)); - weights.push(input.readFloat() * scale); - weights.push(input.readFloat() * scale); - weights.push(input.readFloat()); - } - } - vertices.vertices = spine.Utils.toFloatArray(weights); - vertices.bones = bonesArray; - return vertices; - }; - SkeletonBinary.prototype.readFloatArray = function (input, n, scale) { - var array = new Array(n); - if (scale == 1) { - for (var i = 0; i < n; i++) - array[i] = input.readFloat(); - } - else { - for (var i = 0; i < n; i++) - array[i] = input.readFloat() * scale; - } - return array; - }; - SkeletonBinary.prototype.readShortArray = function (input) { - var n = input.readInt(true); - var array = new Array(n); - for (var i = 0; i < n; i++) - array[i] = input.readShort(); - return array; - }; - SkeletonBinary.prototype.readAnimation = function (input, name, skeletonData) { - var timelines = new Array(); - var scale = this.scale; - var duration = 0; - var tempColor1 = new spine.Color(); - var tempColor2 = new spine.Color(); - for (var i = 0, n = input.readInt(true); i < n; i++) { - var slotIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.SLOT_ATTACHMENT: { - var timeline = new spine.AttachmentTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) - timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); - break; - } - case SkeletonBinary.SLOT_COLOR: { - var timeline = new spine.ColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.ColorTimeline.ENTRIES]); - break; - } - case SkeletonBinary.SLOT_TWO_COLOR: { - var timeline = new spine.TwoColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); - spine.Color.rgb888ToColor(tempColor2, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a, tempColor2.r, tempColor2.g, tempColor2.b); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TwoColorTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var boneIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.BONE_ROTATE: { - var timeline = new spine.RotateTimeline(frameCount); - timeline.boneIndex = boneIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.RotateTimeline.ENTRIES]); - break; - } - case SkeletonBinary.BONE_TRANSLATE: - case SkeletonBinary.BONE_SCALE: - case SkeletonBinary.BONE_SHEAR: { - var timeline = void 0; - var timelineScale = 1; - if (timelineType == SkeletonBinary.BONE_SCALE) - timeline = new spine.ScaleTimeline(frameCount); - else if (timelineType == SkeletonBinary.BONE_SHEAR) - timeline = new spine.ShearTimeline(frameCount); - else { - timeline = new spine.TranslateTimeline(frameCount); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale, input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TranslateTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var frameCount = input.readInt(true); - var timeline = new spine.IkConstraintTimeline(frameCount); - timeline.ikConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat() * scale, input.readByte(), input.readBoolean(), input.readBoolean()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var frameCount = input.readInt(true); - var timeline = new spine.TransformConstraintTimeline(frameCount); - timeline.transformConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var data = skeletonData.pathConstraints[index]; - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.PATH_POSITION: - case SkeletonBinary.PATH_SPACING: { - var timeline = void 0; - var timelineScale = 1; - if (timelineType == SkeletonBinary.PATH_SPACING) { - timeline = new spine.PathConstraintSpacingTimeline(frameCount); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(frameCount); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - break; - } - case SkeletonBinary.PATH_MIX: { - var timeline = new spine.PathConstraintMixTimeline(frameCount); - timeline.pathConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var skin = skeletonData.skins[input.readInt(true)]; - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var slotIndex = input.readInt(true); - for (var iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { - var attachment = skin.getAttachment(slotIndex, input.readStringRef()); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var frameCount = input.readInt(true); - var timeline = new spine.DeformTimeline(frameCount); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - var deform = void 0; - var end = input.readInt(true); - if (end == 0) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = input.readInt(true); - end += start; - if (scale == 1) { - for (var v = start; v < end; v++) - deform[v] = input.readFloat(); - } - else { - for (var v = start; v < end; v++) - deform[v] = input.readFloat() * scale; - } - if (!weighted) { - for (var v = 0, vn = deform.length; v < vn; v++) - deform[v] += vertices[v]; - } - } - timeline.setFrame(frameIndex, time, deform); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); - } - } - } - var drawOrderCount = input.readInt(true); - if (drawOrderCount > 0) { - var timeline = new spine.DrawOrderTimeline(drawOrderCount); - var slotCount = skeletonData.slots.length; - for (var i = 0; i < drawOrderCount; i++) { - var time = input.readFloat(); - var offsetCount = input.readInt(true); - var drawOrder = spine.Utils.newArray(slotCount, 0); - for (var ii = slotCount - 1; ii >= 0; ii--) - drawOrder[ii] = -1; - var unchanged = spine.Utils.newArray(slotCount - offsetCount, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var ii = 0; ii < offsetCount; ii++) { - var slotIndex = input.readInt(true); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + input.readInt(true)] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var ii = slotCount - 1; ii >= 0; ii--) - if (drawOrder[ii] == -1) - drawOrder[ii] = unchanged[--unchangedIndex]; - timeline.setFrame(i, time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[drawOrderCount - 1]); - } - var eventCount = input.readInt(true); - if (eventCount > 0) { - var timeline = new spine.EventTimeline(eventCount); - for (var i = 0; i < eventCount; i++) { - var time = input.readFloat(); - var eventData = skeletonData.events[input.readInt(true)]; - var event_4 = new spine.Event(time, eventData); - event_4.intValue = input.readInt(false); - event_4.floatValue = input.readFloat(); - event_4.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue; - if (event_4.data.audioPath != null) { - event_4.volume = input.readFloat(); - event_4.balance = input.readFloat(); - } - timeline.setFrame(i, event_4); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[eventCount - 1]); - } - return new spine.Animation(name, timelines, duration); - }; - SkeletonBinary.prototype.readCurve = function (input, frameIndex, timeline) { - switch (input.readByte()) { - case SkeletonBinary.CURVE_STEPPED: - timeline.setStepped(frameIndex); - break; - case SkeletonBinary.CURVE_BEZIER: - this.setCurve(timeline, frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); - break; - } - }; - SkeletonBinary.prototype.setCurve = function (timeline, frameIndex, cx1, cy1, cx2, cy2) { - timeline.setCurve(frameIndex, cx1, cy1, cx2, cy2); - }; - SkeletonBinary.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6]; - SkeletonBinary.TransformModeValues = [spine.TransformMode.Normal, spine.TransformMode.OnlyTranslation, spine.TransformMode.NoRotationOrReflection, spine.TransformMode.NoScale, spine.TransformMode.NoScaleOrReflection]; - SkeletonBinary.PositionModeValues = [spine.PositionMode.Fixed, spine.PositionMode.Percent]; - SkeletonBinary.SpacingModeValues = [spine.SpacingMode.Length, spine.SpacingMode.Fixed, spine.SpacingMode.Percent]; - SkeletonBinary.RotateModeValues = [spine.RotateMode.Tangent, spine.RotateMode.Chain, spine.RotateMode.ChainScale]; - SkeletonBinary.BlendModeValues = [spine.BlendMode.Normal, spine.BlendMode.Additive, spine.BlendMode.Multiply, spine.BlendMode.Screen]; - SkeletonBinary.BONE_ROTATE = 0; - SkeletonBinary.BONE_TRANSLATE = 1; - SkeletonBinary.BONE_SCALE = 2; - SkeletonBinary.BONE_SHEAR = 3; - SkeletonBinary.SLOT_ATTACHMENT = 0; - SkeletonBinary.SLOT_COLOR = 1; - SkeletonBinary.SLOT_TWO_COLOR = 2; - SkeletonBinary.PATH_POSITION = 0; - SkeletonBinary.PATH_SPACING = 1; - SkeletonBinary.PATH_MIX = 2; - SkeletonBinary.CURVE_LINEAR = 0; - SkeletonBinary.CURVE_STEPPED = 1; - SkeletonBinary.CURVE_BEZIER = 2; - return SkeletonBinary; - }()); - spine.SkeletonBinary = SkeletonBinary; - var BinaryInput = (function () { - function BinaryInput(data, strings, index, buffer) { - if (strings === void 0) { strings = new Array(); } - if (index === void 0) { index = 0; } - if (buffer === void 0) { buffer = new DataView(data.buffer); } - this.strings = strings; - this.index = index; - this.buffer = buffer; - } - BinaryInput.prototype.readByte = function () { - return this.buffer.getInt8(this.index++); - }; - BinaryInput.prototype.readShort = function () { - var value = this.buffer.getInt16(this.index); - this.index += 2; - return value; - }; - BinaryInput.prototype.readInt32 = function () { - var value = this.buffer.getInt32(this.index); - this.index += 4; - return value; - }; - BinaryInput.prototype.readInt = function (optimizePositive) { - var b = this.readByte(); - var result = b & 0x7F; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 7; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 14; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 21; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 28; - } - } - } - } - return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); - }; - BinaryInput.prototype.readStringRef = function () { - var index = this.readInt(true); - return index == 0 ? null : this.strings[index - 1]; - }; - BinaryInput.prototype.readString = function () { - var byteCount = this.readInt(true); - switch (byteCount) { - case 0: - return null; - case 1: - return ""; - } - byteCount--; - var chars = ""; - var charCount = 0; - for (var i = 0; i < byteCount;) { - var b = this.readByte(); - switch (b >> 4) { - case 12: - case 13: - chars += String.fromCharCode(((b & 0x1F) << 6 | this.readByte() & 0x3F)); - i += 2; - break; - case 14: - chars += String.fromCharCode(((b & 0x0F) << 12 | (this.readByte() & 0x3F) << 6 | this.readByte() & 0x3F)); - i += 3; - break; - default: - chars += String.fromCharCode(b); - i++; - } - } - return chars; - }; - BinaryInput.prototype.readFloat = function () { - var value = this.buffer.getFloat32(this.index); - this.index += 4; - return value; - }; - BinaryInput.prototype.readBoolean = function () { - return this.readByte() != 0; - }; - return BinaryInput; - }()); - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - this.inheritDeform = inheritDeform; - } - return LinkedMesh; - }()); - var Vertices = (function () { - function Vertices(bones, vertices) { - if (bones === void 0) { bones = null; } - if (vertices === void 0) { vertices = null; } - this.bones = bones; - this.vertices = vertices; - } - return Vertices; - }()); + var SkeletonBinary = (function () { + function SkeletonBinary(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonBinary.prototype.readSkeletonData = function (binary) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + skeletonData.name = ""; + var input = new BinaryInput(binary); + skeletonData.hash = input.readString(); + skeletonData.version = input.readString(); + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); + skeletonData.x = input.readFloat(); + skeletonData.y = input.readFloat(); + skeletonData.width = input.readFloat(); + skeletonData.height = input.readFloat(); + var nonessential = input.readBoolean(); + if (nonessential) { + skeletonData.fps = input.readFloat(); + skeletonData.imagesPath = input.readString(); + skeletonData.audioPath = input.readString(); + } + var n = 0; + n = input.readInt(true); + for (var i = 0; i < n; i++) + input.strings.push(input.readString()); + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var name_2 = input.readString(); + var parent_2 = i == 0 ? null : skeletonData.bones[input.readInt(true)]; + var data = new spine.BoneData(i, name_2, parent_2); + data.rotation = input.readFloat(); + data.x = input.readFloat() * scale; + data.y = input.readFloat() * scale; + data.scaleX = input.readFloat(); + data.scaleY = input.readFloat(); + data.shearX = input.readFloat(); + data.shearY = input.readFloat(); + data.length = input.readFloat() * scale; + data.transformMode = SkeletonBinary.TransformModeValues[input.readInt(true)]; + data.skinRequired = input.readBoolean(); + if (nonessential) + spine.Color.rgba8888ToColor(data.color, input.readInt32()); + skeletonData.bones.push(data); + } + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var slotName = input.readString(); + var boneData = skeletonData.bones[input.readInt(true)]; + var data = new spine.SlotData(i, slotName, boneData); + spine.Color.rgba8888ToColor(data.color, input.readInt32()); + var darkColor = input.readInt32(); + if (darkColor != -1) + spine.Color.rgb888ToColor(data.darkColor = new spine.Color(), darkColor); + data.attachmentName = input.readStringRef(); + data.blendMode = SkeletonBinary.BlendModeValues[input.readInt(true)]; + skeletonData.slots.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.IkConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + data.mix = input.readFloat(); + data.softness = input.readFloat() * scale; + data.bendDirection = input.readByte(); + data.compress = input.readBoolean(); + data.stretch = input.readBoolean(); + data.uniform = input.readBoolean(); + skeletonData.ikConstraints.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.TransformConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + data.local = input.readBoolean(); + data.relative = input.readBoolean(); + data.offsetRotation = input.readFloat(); + data.offsetX = input.readFloat() * scale; + data.offsetY = input.readFloat() * scale; + data.offsetScaleX = input.readFloat(); + data.offsetScaleY = input.readFloat(); + data.offsetShearY = input.readFloat(); + data.rotateMix = input.readFloat(); + data.translateMix = input.readFloat(); + data.scaleMix = input.readFloat(); + data.shearMix = input.readFloat(); + skeletonData.transformConstraints.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.PathConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.slots[input.readInt(true)]; + data.positionMode = SkeletonBinary.PositionModeValues[input.readInt(true)]; + data.spacingMode = SkeletonBinary.SpacingModeValues[input.readInt(true)]; + data.rotateMode = SkeletonBinary.RotateModeValues[input.readInt(true)]; + data.offsetRotation = input.readFloat(); + data.position = input.readFloat(); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = input.readFloat(); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = input.readFloat(); + data.translateMix = input.readFloat(); + skeletonData.pathConstraints.push(data); + } + var defaultSkin = this.readSkin(input, skeletonData, true, nonessential); + if (defaultSkin != null) { + skeletonData.defaultSkin = defaultSkin; + skeletonData.skins.push(defaultSkin); + } + { + var i = skeletonData.skins.length; + spine.Utils.setArraySize(skeletonData.skins, n = i + input.readInt(true)); + for (; i < n; i++) + skeletonData.skins[i] = this.readSkin(input, skeletonData, false, nonessential); + } + n = this.linkedMeshes.length; + for (var i = 0; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_3 : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var data = new spine.EventData(input.readStringRef()); + data.intValue = input.readInt(false); + data.floatValue = input.readFloat(); + data.stringValue = input.readString(); + data.audioPath = input.readString(); + if (data.audioPath != null) { + data.volume = input.readFloat(); + data.balance = input.readFloat(); + } + skeletonData.events.push(data); + } + n = input.readInt(true); + for (var i = 0; i < n; i++) + skeletonData.animations.push(this.readAnimation(input, input.readString(), skeletonData)); + return skeletonData; + }; + SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) { + var skin = null; + var slotCount = 0; + if (defaultSkin) { + slotCount = input.readInt(true); + if (slotCount == 0) + return null; + skin = new spine.Skin("default"); + } + else { + skin = new spine.Skin(input.readStringRef()); + skin.bones.length = input.readInt(true); + for (var i = 0, n = skin.bones.length; i < n; i++) + skin.bones[i] = skeletonData.bones[input.readInt(true)]; + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); + slotCount = input.readInt(true); + } + for (var i = 0; i < slotCount; i++) { + var slotIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var name_3 = input.readStringRef(); + var attachment = this.readAttachment(input, skeletonData, skin, slotIndex, name_3, nonessential); + if (attachment != null) + skin.setAttachment(slotIndex, name_3, attachment); + } + } + return skin; + }; + SkeletonBinary.prototype.readAttachment = function (input, skeletonData, skin, slotIndex, attachmentName, nonessential) { + var scale = this.scale; + var name = input.readStringRef(); + if (name == null) + name = attachmentName; + var typeIndex = input.readByte(); + var type = SkeletonBinary.AttachmentTypeValues[typeIndex]; + switch (type) { + case spine.AttachmentType.Region: { + var path = input.readStringRef(); + var rotation = input.readFloat(); + var x = input.readFloat(); + var y = input.readFloat(); + var scaleX = input.readFloat(); + var scaleY = input.readFloat(); + var width = input.readFloat(); + var height = input.readFloat(); + var color = input.readInt32(); + if (path == null) + path = name; + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = x * scale; + region.y = y * scale; + region.scaleX = scaleX; + region.scaleY = scaleY; + region.rotation = rotation; + region.width = width * scale; + region.height = height * scale; + spine.Color.rgba8888ToColor(region.color, color); + region.updateOffset(); + return region; + } + case spine.AttachmentType.BoundingBox: { + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var color = nonessential ? input.readInt32() : 0; + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + box.worldVerticesLength = vertexCount << 1; + box.vertices = vertices.vertices; + box.bones = vertices.bones; + if (nonessential) + spine.Color.rgba8888ToColor(box.color, color); + return box; + } + case spine.AttachmentType.Mesh: { + var path = input.readStringRef(); + var color = input.readInt32(); + var vertexCount = input.readInt(true); + var uvs = this.readFloatArray(input, vertexCount << 1, 1); + var triangles = this.readShortArray(input); + var vertices = this.readVertices(input, vertexCount); + var hullLength = input.readInt(true); + var edges = null; + var width = 0, height = 0; + if (nonessential) { + edges = this.readShortArray(input); + width = input.readFloat(); + height = input.readFloat(); + } + if (path == null) + path = name; + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + spine.Color.rgba8888ToColor(mesh.color, color); + mesh.bones = vertices.bones; + mesh.vertices = vertices.vertices; + mesh.worldVerticesLength = vertexCount << 1; + mesh.triangles = triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = hullLength << 1; + if (nonessential) { + mesh.edges = edges; + mesh.width = width * scale; + mesh.height = height * scale; + } + return mesh; + } + case spine.AttachmentType.LinkedMesh: { + var path = input.readStringRef(); + var color = input.readInt32(); + var skinName = input.readStringRef(); + var parent_4 = input.readStringRef(); + var inheritDeform = input.readBoolean(); + var width = 0, height = 0; + if (nonessential) { + width = input.readFloat(); + height = input.readFloat(); + } + if (path == null) + path = name; + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + spine.Color.rgba8888ToColor(mesh.color, color); + if (nonessential) { + mesh.width = width * scale; + mesh.height = height * scale; + } + this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent_4, inheritDeform)); + return mesh; + } + case spine.AttachmentType.Path: { + var closed_1 = input.readBoolean(); + var constantSpeed = input.readBoolean(); + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0, n = lengths.length; i < n; i++) + lengths[i] = input.readFloat() * scale; + var color = nonessential ? input.readInt32() : 0; + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = closed_1; + path.constantSpeed = constantSpeed; + path.worldVerticesLength = vertexCount << 1; + path.vertices = vertices.vertices; + path.bones = vertices.bones; + path.lengths = lengths; + if (nonessential) + spine.Color.rgba8888ToColor(path.color, color); + return path; + } + case spine.AttachmentType.Point: { + var rotation = input.readFloat(); + var x = input.readFloat(); + var y = input.readFloat(); + var color = nonessential ? input.readInt32() : 0; + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = x * scale; + point.y = y * scale; + point.rotation = rotation; + if (nonessential) + spine.Color.rgba8888ToColor(point.color, color); + return point; + } + case spine.AttachmentType.Clipping: { + var endSlotIndex = input.readInt(true); + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var color = nonessential ? input.readInt32() : 0; + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + clip.endSlot = skeletonData.slots[endSlotIndex]; + clip.worldVerticesLength = vertexCount << 1; + clip.vertices = vertices.vertices; + clip.bones = vertices.bones; + if (nonessential) + spine.Color.rgba8888ToColor(clip.color, color); + return clip; + } + } + return null; + }; + SkeletonBinary.prototype.readVertices = function (input, vertexCount) { + var verticesLength = vertexCount << 1; + var vertices = new Vertices(); + var scale = this.scale; + if (!input.readBoolean()) { + vertices.vertices = this.readFloatArray(input, verticesLength, scale); + return vertices; + } + var weights = new Array(); + var bonesArray = new Array(); + for (var i = 0; i < vertexCount; i++) { + var boneCount = input.readInt(true); + bonesArray.push(boneCount); + for (var ii = 0; ii < boneCount; ii++) { + bonesArray.push(input.readInt(true)); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat()); + } + } + vertices.vertices = spine.Utils.toFloatArray(weights); + vertices.bones = bonesArray; + return vertices; + }; + SkeletonBinary.prototype.readFloatArray = function (input, n, scale) { + var array = new Array(n); + if (scale == 1) { + for (var i = 0; i < n; i++) + array[i] = input.readFloat(); + } + else { + for (var i = 0; i < n; i++) + array[i] = input.readFloat() * scale; + } + return array; + }; + SkeletonBinary.prototype.readShortArray = function (input) { + var n = input.readInt(true); + var array = new Array(n); + for (var i = 0; i < n; i++) + array[i] = input.readShort(); + return array; + }; + SkeletonBinary.prototype.readAnimation = function (input, name, skeletonData) { + var timelines = new Array(); + var scale = this.scale; + var duration = 0; + var tempColor1 = new spine.Color(); + var tempColor2 = new spine.Color(); + for (var i = 0, n = input.readInt(true); i < n; i++) { + var slotIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var timelineType = input.readByte(); + var frameCount = input.readInt(true); + switch (timelineType) { + case SkeletonBinary.SLOT_ATTACHMENT: { + var timeline = new spine.AttachmentTimeline(frameCount); + timeline.slotIndex = slotIndex; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) + timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[frameCount - 1]); + break; + } + case SkeletonBinary.SLOT_COLOR: { + var timeline = new spine.ColorTimeline(frameCount); + timeline.slotIndex = slotIndex; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + var time = input.readFloat(); + spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); + timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.ColorTimeline.ENTRIES]); + break; + } + case SkeletonBinary.SLOT_TWO_COLOR: { + var timeline = new spine.TwoColorTimeline(frameCount); + timeline.slotIndex = slotIndex; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + var time = input.readFloat(); + spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); + spine.Color.rgb888ToColor(tempColor2, input.readInt32()); + timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a, tempColor2.r, tempColor2.g, tempColor2.b); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TwoColorTimeline.ENTRIES]); + break; + } + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var boneIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var timelineType = input.readByte(); + var frameCount = input.readInt(true); + switch (timelineType) { + case SkeletonBinary.BONE_ROTATE: { + var timeline = new spine.RotateTimeline(frameCount); + timeline.boneIndex = boneIndex; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat()); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.RotateTimeline.ENTRIES]); + break; + } + case SkeletonBinary.BONE_TRANSLATE: + case SkeletonBinary.BONE_SCALE: + case SkeletonBinary.BONE_SHEAR: { + var timeline = void 0; + var timelineScale = 1; + if (timelineType == SkeletonBinary.BONE_SCALE) + timeline = new spine.ScaleTimeline(frameCount); + else if (timelineType == SkeletonBinary.BONE_SHEAR) + timeline = new spine.ShearTimeline(frameCount); + else { + timeline = new spine.TranslateTimeline(frameCount); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale, input.readFloat() * timelineScale); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TranslateTimeline.ENTRIES]); + break; + } + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var frameCount = input.readInt(true); + var timeline = new spine.IkConstraintTimeline(frameCount); + timeline.ikConstraintIndex = index; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat() * scale, input.readByte(), input.readBoolean(), input.readBoolean()); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var frameCount = input.readInt(true); + var timeline = new spine.TransformConstraintTimeline(frameCount); + timeline.transformConstraintIndex = index; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var data = skeletonData.pathConstraints[index]; + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var timelineType = input.readByte(); + var frameCount = input.readInt(true); + switch (timelineType) { + case SkeletonBinary.PATH_POSITION: + case SkeletonBinary.PATH_SPACING: { + var timeline = void 0; + var timelineScale = 1; + if (timelineType == SkeletonBinary.PATH_SPACING) { + timeline = new spine.PathConstraintSpacingTimeline(frameCount); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(frameCount); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + break; + } + case SkeletonBinary.PATH_MIX: { + var timeline = new spine.PathConstraintMixTimeline(frameCount); + timeline.pathConstraintIndex = index; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat()); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + break; + } + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var skin = skeletonData.skins[input.readInt(true)]; + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var slotIndex = input.readInt(true); + for (var iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { + var attachment = skin.getAttachment(slotIndex, input.readStringRef()); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var frameCount = input.readInt(true); + var timeline = new spine.DeformTimeline(frameCount); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { + var time = input.readFloat(); + var deform = void 0; + var end = input.readInt(true); + if (end == 0) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = input.readInt(true); + end += start; + if (scale == 1) { + for (var v = start; v < end; v++) + deform[v] = input.readFloat(); + } + else { + for (var v = start; v < end; v++) + deform[v] = input.readFloat() * scale; + } + if (!weighted) { + for (var v = 0, vn = deform.length; v < vn; v++) + deform[v] += vertices[v]; + } + } + timeline.setFrame(frameIndex, time, deform); + if (frameIndex < frameCount - 1) + this.readCurve(input, frameIndex, timeline); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[frameCount - 1]); + } + } + } + var drawOrderCount = input.readInt(true); + if (drawOrderCount > 0) { + var timeline = new spine.DrawOrderTimeline(drawOrderCount); + var slotCount = skeletonData.slots.length; + for (var i = 0; i < drawOrderCount; i++) { + var time = input.readFloat(); + var offsetCount = input.readInt(true); + var drawOrder = spine.Utils.newArray(slotCount, 0); + for (var ii = slotCount - 1; ii >= 0; ii--) + drawOrder[ii] = -1; + var unchanged = spine.Utils.newArray(slotCount - offsetCount, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var ii = 0; ii < offsetCount; ii++) { + var slotIndex = input.readInt(true); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + input.readInt(true)] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var ii = slotCount - 1; ii >= 0; ii--) + if (drawOrder[ii] == -1) + drawOrder[ii] = unchanged[--unchangedIndex]; + timeline.setFrame(i, time, drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[drawOrderCount - 1]); + } + var eventCount = input.readInt(true); + if (eventCount > 0) { + var timeline = new spine.EventTimeline(eventCount); + for (var i = 0; i < eventCount; i++) { + var time = input.readFloat(); + var eventData = skeletonData.events[input.readInt(true)]; + var event_4 = new spine.Event(time, eventData); + event_4.intValue = input.readInt(false); + event_4.floatValue = input.readFloat(); + event_4.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue; + if (event_4.data.audioPath != null) { + event_4.volume = input.readFloat(); + event_4.balance = input.readFloat(); + } + timeline.setFrame(i, event_4); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[eventCount - 1]); + } + return new spine.Animation(name, timelines, duration); + }; + SkeletonBinary.prototype.readCurve = function (input, frameIndex, timeline) { + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frameIndex); + break; + case SkeletonBinary.CURVE_BEZIER: + this.setCurve(timeline, frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); + break; + } + }; + SkeletonBinary.prototype.setCurve = function (timeline, frameIndex, cx1, cy1, cx2, cy2) { + timeline.setCurve(frameIndex, cx1, cy1, cx2, cy2); + }; + SkeletonBinary.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6]; + SkeletonBinary.TransformModeValues = [spine.TransformMode.Normal, spine.TransformMode.OnlyTranslation, spine.TransformMode.NoRotationOrReflection, spine.TransformMode.NoScale, spine.TransformMode.NoScaleOrReflection]; + SkeletonBinary.PositionModeValues = [spine.PositionMode.Fixed, spine.PositionMode.Percent]; + SkeletonBinary.SpacingModeValues = [spine.SpacingMode.Length, spine.SpacingMode.Fixed, spine.SpacingMode.Percent]; + SkeletonBinary.RotateModeValues = [spine.RotateMode.Tangent, spine.RotateMode.Chain, spine.RotateMode.ChainScale]; + SkeletonBinary.BlendModeValues = [spine.BlendMode.Normal, spine.BlendMode.Additive, spine.BlendMode.Multiply, spine.BlendMode.Screen]; + SkeletonBinary.BONE_ROTATE = 0; + SkeletonBinary.BONE_TRANSLATE = 1; + SkeletonBinary.BONE_SCALE = 2; + SkeletonBinary.BONE_SHEAR = 3; + SkeletonBinary.SLOT_ATTACHMENT = 0; + SkeletonBinary.SLOT_COLOR = 1; + SkeletonBinary.SLOT_TWO_COLOR = 2; + SkeletonBinary.PATH_POSITION = 0; + SkeletonBinary.PATH_SPACING = 1; + SkeletonBinary.PATH_MIX = 2; + SkeletonBinary.CURVE_LINEAR = 0; + SkeletonBinary.CURVE_STEPPED = 1; + SkeletonBinary.CURVE_BEZIER = 2; + return SkeletonBinary; + }()); + spine.SkeletonBinary = SkeletonBinary; + var BinaryInput = (function () { + function BinaryInput(data, strings, index, buffer) { + if (strings === void 0) { strings = new Array(); } + if (index === void 0) { index = 0; } + if (buffer === void 0) { buffer = new DataView(data.buffer); } + this.strings = strings; + this.index = index; + this.buffer = buffer; + } + BinaryInput.prototype.readByte = function () { + return this.buffer.getInt8(this.index++); + }; + BinaryInput.prototype.readShort = function () { + var value = this.buffer.getInt16(this.index); + this.index += 2; + return value; + }; + BinaryInput.prototype.readInt32 = function () { + var value = this.buffer.getInt32(this.index); + this.index += 4; + return value; + }; + BinaryInput.prototype.readInt = function (optimizePositive) { + var b = this.readByte(); + var result = b & 0x7F; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 7; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 14; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 21; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 28; + } + } + } + } + return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); + }; + BinaryInput.prototype.readStringRef = function () { + var index = this.readInt(true); + return index == 0 ? null : this.strings[index - 1]; + }; + BinaryInput.prototype.readString = function () { + var byteCount = this.readInt(true); + switch (byteCount) { + case 0: + return null; + case 1: + return ""; + } + byteCount--; + var chars = ""; + var charCount = 0; + for (var i = 0; i < byteCount;) { + var b = this.readByte(); + switch (b >> 4) { + case 12: + case 13: + chars += String.fromCharCode(((b & 0x1F) << 6 | this.readByte() & 0x3F)); + i += 2; + break; + case 14: + chars += String.fromCharCode(((b & 0x0F) << 12 | (this.readByte() & 0x3F) << 6 | this.readByte() & 0x3F)); + i += 3; + break; + default: + chars += String.fromCharCode(b); + i++; + } + } + return chars; + }; + BinaryInput.prototype.readFloat = function () { + var value = this.buffer.getFloat32(this.index); + this.index += 4; + return value; + }; + BinaryInput.prototype.readBoolean = function () { + return this.readByte() != 0; + }; + return BinaryInput; + }()); + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } + return LinkedMesh; + }()); + var Vertices = (function () { + function Vertices(bones, vertices) { + if (bones === void 0) { bones = null; } + if (vertices === void 0) { vertices = null; } + this.bones = bones; + this.vertices = vertices; + } + return Vertices; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); - if (Math.abs(s) > 0.000001) { - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else { - output.push(edgeX); - output.push(edgeY); - } - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); - if (Math.abs(s) > 0.000001) { - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else { - output.push(edgeX); - output.push(edgeY); - } - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else { + output.push(edgeX); + output.push(edgeY); + } + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else { + output.push(edgeX); + output.push(edgeY); + } + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_5 = events[i]; - if (event_5.name == eventDataName) - return event_5; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_5 = events[i]; + if (event_5.name == eventDataName) + return event_5; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - skeletonData.x = skeletonMap.x; - skeletonData.y = skeletonMap.y; - 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_5 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_5 = skeletonData.findBone(parentName); - if (parent_5 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_5); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - data.skinRequired = this.getValue(boneMap, "skin", false); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.mix = this.getValue(constraintMap, "mix", 1); - data.softness = this.getValue(constraintMap, "softness", 0) * scale; - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.compress = this.getValue(constraintMap, "compress", false); - data.stretch = this.getValue(constraintMap, "stretch", false); - data.uniform = this.getValue(constraintMap, "uniform", false); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var i = 0; i < root.skins.length; i++) { - var skinMap = root.skins[i]; - var skin = new spine.Skin(skinMap.name); - if (skinMap.bones) { - for (var ii = 0; ii < skinMap.bones.length; ii++) { - var bone = skeletonData.findBone(skinMap.bones[ii]); - if (bone == null) - throw new Error("Skin bone not found: " + skinMap.bones[i]); - skin.bones.push(bone); - } - } - if (skinMap.ik) { - for (var ii = 0; ii < skinMap.ik.length; ii++) { - var constraint = skeletonData.findIkConstraint(skinMap.ik[ii]); - if (constraint == null) - throw new Error("Skin IK constraint not found: " + skinMap.ik[i]); - skin.constraints.push(constraint); - } - } - if (skinMap.transform) { - for (var ii = 0; ii < skinMap.transform.length; ii++) { - var constraint = skeletonData.findTransformConstraint(skinMap.transform[ii]); - if (constraint == null) - throw new Error("Skin transform constraint not found: " + skinMap.transform[i]); - skin.constraints.push(constraint); - } - } - if (skinMap.path) { - for (var ii = 0; ii < skinMap.path.length; ii++) { - var constraint = skeletonData.findPathConstraint(skinMap.path[ii]); - if (constraint == null) - throw new Error("Skin path constraint not found: " + skinMap.path[i]); - skin.constraints.push(constraint); - } - } - for (var slotName in skinMap.attachments) { - var slot = skeletonData.findSlot(slotName); - if (slot == null) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap.attachments[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slot.index, entryName, skeletonData); - if (attachment != null) - skin.setAttachment(slot.index, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_6 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_6 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_6 : linkedMesh.mesh; - linkedMesh.mesh.setParentMesh(parent_6); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - data.audioPath = this.getValue(eventMap, "audio", null); - if (data.audioPath != null) { - data.volume = this.getValue(eventMap, "volume", 1); - data.balance = this.getValue(eventMap, "balance", 0); - } - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - mesh.width = this.getValue(map, "width", 0) * scale; - mesh.height = this.getValue(map, "height", 0) * scale; - var parent_7 = this.getValue(map, "parent", null); - if (parent_7 != null) { - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_7, this.getValue(map, "deform", true))); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.edges = this.getValue(map, "edges", null); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, this.getValue(valueMap, "time", 0), valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "angle", 0)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1, defaultValue = 0; - if (timelineName === "scale") { - timeline = new spine.ScaleTimeline(timelineMap.length); - defaultValue = 1; - } - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", defaultValue), y = this.getValue(valueMap, "y", defaultValue); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "softness", 0) * scale, this.getValue(valueMap, "bendPositive", true) ? 1 : -1, this.getValue(valueMap, "compress", false), this.getValue(valueMap, "stretch", false)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.path) { - for (var constraintName in map.path) { - var constraintMap = map.path[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, this.getValue(drawOrderMap, "time", 0), drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_6 = new spine.Event(spine.Utils.toSinglePrecision(this.getValue(eventMap, "time", 0)), eventData); - event_6.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_6.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_6.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - if (event_6.data.audioPath != null) { - event_6.volume = this.getValue(eventMap, "volume", 1); - event_6.balance = this.getValue(eventMap, "balance", 0); - } - timeline.setFrame(frameIndex++, event_6); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.hasOwnProperty("curve")) - return; - if (map.curve == "stepped") - timeline.setStepped(frameIndex); - else { - var curve = map.curve; - timeline.setCurve(frameIndex, curve, this.getValue(map, "c2", 0), this.getValue(map, "c3", 1), this.getValue(map, "c4", 1)); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - this.inheritDeform = inheritDeform; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); + skeletonData.x = skeletonMap.x; + skeletonData.y = skeletonMap.y; + 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_5 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_5 = skeletonData.findBone(parentName); + if (parent_5 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_5); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + data.skinRequired = this.getValue(boneMap, "skin", false); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.mix = this.getValue(constraintMap, "mix", 1); + data.softness = this.getValue(constraintMap, "softness", 0) * scale; + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.compress = this.getValue(constraintMap, "compress", false); + data.stretch = this.getValue(constraintMap, "stretch", false); + data.uniform = this.getValue(constraintMap, "uniform", false); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var i = 0; i < root.skins.length; i++) { + var skinMap = root.skins[i]; + var skin = new spine.Skin(skinMap.name); + if (skinMap.bones) { + for (var ii = 0; ii < skinMap.bones.length; ii++) { + var bone = skeletonData.findBone(skinMap.bones[ii]); + if (bone == null) + throw new Error("Skin bone not found: " + skinMap.bones[i]); + skin.bones.push(bone); + } + } + if (skinMap.ik) { + for (var ii = 0; ii < skinMap.ik.length; ii++) { + var constraint = skeletonData.findIkConstraint(skinMap.ik[ii]); + if (constraint == null) + throw new Error("Skin IK constraint not found: " + skinMap.ik[i]); + skin.constraints.push(constraint); + } + } + if (skinMap.transform) { + for (var ii = 0; ii < skinMap.transform.length; ii++) { + var constraint = skeletonData.findTransformConstraint(skinMap.transform[ii]); + if (constraint == null) + throw new Error("Skin transform constraint not found: " + skinMap.transform[i]); + skin.constraints.push(constraint); + } + } + if (skinMap.path) { + for (var ii = 0; ii < skinMap.path.length; ii++) { + var constraint = skeletonData.findPathConstraint(skinMap.path[ii]); + if (constraint == null) + throw new Error("Skin path constraint not found: " + skinMap.path[i]); + skin.constraints.push(constraint); + } + } + for (var slotName in skinMap.attachments) { + var slot = skeletonData.findSlot(slotName); + if (slot == null) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap.attachments[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slot.index, entryName, skeletonData); + if (attachment != null) + skin.setAttachment(slot.index, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_6 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_6 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_6 : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent_6); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + data.audioPath = this.getValue(eventMap, "audio", null); + if (data.audioPath != null) { + data.volume = this.getValue(eventMap, "volume", 1); + data.balance = this.getValue(eventMap, "balance", 0); + } + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + mesh.width = this.getValue(map, "width", 0) * scale; + mesh.height = this.getValue(map, "height", 0) * scale; + var parent_7 = this.getValue(map, "parent", null); + if (parent_7 != null) { + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_7, this.getValue(map, "deform", true))); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.edges = this.getValue(map, "edges", null); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + var duration = 0; + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex++, this.getValue(valueMap, "time", 0), valueMap.name); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var color = new spine.Color(); + color.setFromString(valueMap.color); + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), color.r, color.g, color.b, color.a); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var light = new spine.Color(); + var dark = new spine.Color(); + light.setFromString(valueMap.light); + dark.setFromString(valueMap.dark); + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + if (timelineName === "rotate") { + var timeline = new spine.RotateTimeline(timelineMap.length); + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "angle", 0)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); + } + else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { + var timeline = null; + var timelineScale = 1, defaultValue = 0; + if (timelineName === "scale") { + timeline = new spine.ScaleTimeline(timelineMap.length); + defaultValue = 1; + } + else if (timelineName === "shear") + timeline = new spine.ShearTimeline(timelineMap.length); + else { + timeline = new spine.TranslateTimeline(timelineMap.length); + timelineScale = scale; + } + timeline.boneIndex = boneIndex; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + var x = this.getValue(valueMap, "x", defaultValue), y = this.getValue(valueMap, "y", defaultValue); + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), x * timelineScale, y * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); + } + else + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var constraint = skeletonData.findIkConstraint(constraintName); + var timeline = new spine.IkConstraintTimeline(constraintMap.length); + timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "softness", 0) * scale, this.getValue(valueMap, "bendPositive", true) ? 1 : -1, this.getValue(valueMap, "compress", false), this.getValue(valueMap, "stretch", false)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var constraint = skeletonData.findTransformConstraint(constraintName); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length); + timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var frameIndex = 0; + for (var i = 0; i < constraintMap.length; i++) { + var valueMap = constraintMap[i]; + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); + } + } + if (map.path) { + for (var constraintName in map.path) { + var constraintMap = map.path[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + if (timelineName === "position" || timelineName === "spacing") { + var timeline = null; + var timelineScale = 1; + if (timelineName === "spacing") { + timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + timelineScale = scale; + } + else { + timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); + if (data.positionMode == spine.PositionMode.Fixed) + timelineScale = scale; + } + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, timelineName, 0) * timelineScale); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); + timeline.pathConstraintIndex = index; + var frameIndex = 0; + for (var i = 0; i < timelineMap.length; i++) { + var valueMap = timelineMap[i]; + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length); + timeline.slotIndex = slotIndex; + timeline.attachment = attachment; + var frameIndex = 0; + for (var j = 0; j < timelineMap.length; j++) { + var valueMap = timelineMap[j]; + var deform = void 0; + var verticesValue = this.getValue(valueMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(valueMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), deform); + this.readCurve(valueMap, timeline, frameIndex); + frameIndex++; + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frameIndex = 0; + for (var j = 0; j < drawOrderNode.length; j++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frameIndex++, this.getValue(drawOrderMap, "time", 0), drawOrder); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frameIndex = 0; + for (var i = 0; i < map.events.length; i++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_6 = new spine.Event(spine.Utils.toSinglePrecision(this.getValue(eventMap, "time", 0)), eventData); + event_6.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_6.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_6.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + if (event_6.data.audioPath != null) { + event_6.volume = this.getValue(eventMap, "volume", 1); + event_6.balance = this.getValue(eventMap, "balance", 0); + } + timeline.setFrame(frameIndex++, event_6); + } + timelines.push(timeline); + duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { + if (!map.hasOwnProperty("curve")) + return; + if (map.curve == "stepped") + timeline.setStepped(frameIndex); + else { + var curve = map.curve; + timeline.setCurve(frameIndex, curve, this.getValue(map, "c2", 0), this.getValue(map, "c3", 1), this.getValue(map, "c4", 1)); + } + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var SkinEntry = (function () { - function SkinEntry(slotIndex, name, attachment) { - this.slotIndex = slotIndex; - this.name = name; - this.attachment = attachment; - } - return SkinEntry; - }()); - spine.SkinEntry = SkinEntry; - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - this.bones = Array(); - this.constraints = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.setAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.addSkin = function (skin) { - for (var i = 0; i < skin.bones.length; i++) { - var bone = skin.bones[i]; - var contained = false; - for (var j = 0; j < this.bones.length; j++) { - if (this.bones[j] == bone) { - contained = true; - break; - } - } - if (!contained) - this.bones.push(bone); - } - for (var i = 0; i < skin.constraints.length; i++) { - var constraint = skin.constraints[i]; - var contained = false; - for (var j = 0; j < this.constraints.length; j++) { - if (this.constraints[j] == constraint) { - contained = true; - break; - } - } - if (!contained) - this.constraints.push(constraint); - } - var attachments = skin.getAttachments(); - for (var i = 0; i < attachments.length; i++) { - var attachment = attachments[i]; - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - }; - Skin.prototype.copySkin = function (skin) { - for (var i = 0; i < skin.bones.length; i++) { - var bone = skin.bones[i]; - var contained = false; - for (var j = 0; j < this.bones.length; j++) { - if (this.bones[j] == bone) { - contained = true; - break; - } - } - if (!contained) - this.bones.push(bone); - } - for (var i = 0; i < skin.constraints.length; i++) { - var constraint = skin.constraints[i]; - var contained = false; - for (var j = 0; j < this.constraints.length; j++) { - if (this.constraints[j] == constraint) { - contained = true; - break; - } - } - if (!contained) - this.constraints.push(constraint); - } - var attachments = skin.getAttachments(); - for (var i = 0; i < attachments.length; i++) { - var attachment = attachments[i]; - if (attachment.attachment == null) - continue; - if (attachment.attachment instanceof spine.MeshAttachment) { - attachment.attachment = attachment.attachment.newLinkedMesh(); - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - else { - attachment.attachment = attachment.attachment.copy(); - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - } - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.removeAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - if (dictionary) - dictionary[name] = null; - }; - Skin.prototype.getAttachments = function () { - var entries = new Array(); - for (var i = 0; i < this.attachments.length; i++) { - var slotAttachments = this.attachments[i]; - if (slotAttachments) { - for (var name_4 in slotAttachments) { - var attachment = slotAttachments[name_4]; - if (attachment) - entries.push(new SkinEntry(i, name_4, attachment)); - } - } - } - return entries; - }; - Skin.prototype.getAttachmentsForSlot = function (slotIndex, attachments) { - var slotAttachments = this.attachments[slotIndex]; - if (slotAttachments) { - for (var name_5 in slotAttachments) { - var attachment = slotAttachments[name_5]; - if (attachment) - attachments.push(new SkinEntry(slotIndex, name_5, attachment)); - } - } - }; - Skin.prototype.clear = function () { - this.attachments.length = 0; - this.bones.length = 0; - this.constraints.length = 0; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var SkinEntry = (function () { + function SkinEntry(slotIndex, name, attachment) { + this.slotIndex = slotIndex; + this.name = name; + this.attachment = attachment; + } + return SkinEntry; + }()); + spine.SkinEntry = SkinEntry; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + this.bones = Array(); + this.constraints = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.setAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.addSkin = function (skin) { + for (var i = 0; i < skin.bones.length; i++) { + var bone = skin.bones[i]; + var contained = false; + for (var j = 0; j < this.bones.length; j++) { + if (this.bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (var i = 0; i < skin.constraints.length; i++) { + var constraint = skin.constraints[i]; + var contained = false; + for (var j = 0; j < this.constraints.length; j++) { + if (this.constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + var attachments = skin.getAttachments(); + for (var i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + }; + Skin.prototype.copySkin = function (skin) { + for (var i = 0; i < skin.bones.length; i++) { + var bone = skin.bones[i]; + var contained = false; + for (var j = 0; j < this.bones.length; j++) { + if (this.bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (var i = 0; i < skin.constraints.length; i++) { + var constraint = skin.constraints[i]; + var contained = false; + for (var j = 0; j < this.constraints.length; j++) { + if (this.constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + var attachments = skin.getAttachments(); + for (var i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + if (attachment.attachment == null) + continue; + if (attachment.attachment instanceof spine.MeshAttachment) { + attachment.attachment = attachment.attachment.newLinkedMesh(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + else { + attachment.attachment = attachment.attachment.copy(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.removeAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + if (dictionary) + dictionary[name] = null; + }; + Skin.prototype.getAttachments = function () { + var entries = new Array(); + for (var i = 0; i < this.attachments.length; i++) { + var slotAttachments = this.attachments[i]; + if (slotAttachments) { + for (var name_4 in slotAttachments) { + var attachment = slotAttachments[name_4]; + if (attachment) + entries.push(new SkinEntry(i, name_4, attachment)); + } + } + } + return entries; + }; + Skin.prototype.getAttachmentsForSlot = function (slotIndex, attachments) { + var slotAttachments = this.attachments[slotIndex]; + if (slotAttachments) { + for (var name_5 in slotAttachments) { + var attachment = slotAttachments[name_5]; + if (attachment) + attachments.push(new SkinEntry(slotIndex, name_5, attachment)); + } + } + }; + Skin.prototype.clear = function () { + this.attachments.length = 0; + this.bones.length = 0; + this.constraints.length = 0; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.deform = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getSkeleton = function () { - return this.bone.skeleton; - }; - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.deform.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.deform = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getSkeleton = function () { + return this.bone.skeleton; + }; + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.deform.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - var TextureFilter; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; - var FakeTexture = (function (_super) { - __extends(FakeTexture, _super); - function FakeTexture() { - return _super !== null && _super.apply(this, arguments) || this; - } - FakeTexture.prototype.setFilters = function (minFilter, magFilter) { }; - FakeTexture.prototype.setWraps = function (uWrap, vWrap) { }; - FakeTexture.prototype.dispose = function () { }; - return FakeTexture; - }(Texture)); - spine.FakeTexture = FakeTexture; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + var TextureFilter; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); + var TextureWrap; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; + var FakeTexture = (function (_super) { + __extends(FakeTexture, _super); + function FakeTexture() { + return _super !== null && _super.apply(this, arguments) || this; + } + FakeTexture.prototype.setFilters = function (minFilter, magFilter) { }; + FakeTexture.prototype.setWraps = function (uWrap, vWrap) { }; + FakeTexture.prototype.dispose = function () { }; + return FakeTexture; + }(Texture)); + spine.FakeTexture = FakeTexture; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - var rotateValue = reader.readValue(); - if (rotateValue.toLocaleLowerCase() == "true") { - region.degrees = 90; - } - else if (rotateValue.toLocaleLowerCase() == "false") { - region.degrees = 0; - } - else { - region.degrees = parseFloat(rotateValue); - } - region.rotate = region.degrees == 90; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + var rotateValue = reader.readValue(); + if (rotateValue.toLocaleLowerCase() == "true") { + region.degrees = 90; + } + else if (rotateValue.toLocaleLowerCase() == "false") { + region.degrees = 0; + } + else { + region.degrees = parseFloat(rotateValue); + } + region.rotate = region.degrees == 90; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + return _super !== null && _super.apply(this, arguments) || this; + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.isActive = function () { - return this.active; - }; - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix != 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix != 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix != 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix != 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.isActive = function () { + return this.active; + }; + TransformConstraint.prototype.apply = function () { + this.update(); + }; + TransformConstraint.prototype.update = function () { + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + var modified = false; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + modified = true; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + modified = true; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + modified = true; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + modified = true; + } + if (modified) + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix != 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix != 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix != 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix != 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function (_super) { - __extends(TransformConstraintData, _super); - function TransformConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - _this.rotateMix = 0; - _this.translateMix = 0; - _this.scaleMix = 0; - _this.shearMix = 0; - _this.offsetRotation = 0; - _this.offsetX = 0; - _this.offsetY = 0; - _this.offsetScaleX = 0; - _this.offsetScaleY = 0; - _this.offsetShearY = 0; - _this.relative = false; - _this.local = false; - return _this; - } - return TransformConstraintData; - }(spine.ConstraintData)); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function (_super) { + __extends(TransformConstraintData, _super); + function TransformConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + _this.rotateMix = 0; + _this.translateMix = 0; + _this.scaleMix = 0; + _this.shearMix = 0; + _this.offsetRotation = 0; + _this.offsetX = 0; + _this.offsetY = 0; + _this.offsetScaleX = 0; + _this.offsetScaleY = 0; + _this.offsetShearY = 0; + _this.relative = false; + _this.local = false; + return _this; + } + return TransformConstraintData; + }(spine.ConstraintData)); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.rgba8888ToColor = function (color, value) { - color.r = ((value & 0xff000000) >>> 24) / 255; - color.g = ((value & 0x00ff0000) >>> 16) / 255; - color.b = ((value & 0x0000ff00) >>> 8) / 255; - color.a = ((value & 0x000000ff)) / 255; - }; - Color.rgb888ToColor = function (color, value) { - color.r = ((value & 0x00ff0000) >>> 16) / 255; - color.g = ((value & 0x0000ff00) >>> 8) / 255; - color.b = ((value & 0x000000ff)) / 255; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.randomTriangular = function (min, max) { - return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5); - }; - MathUtils.randomTriangularWith = function (min, max, mode) { - var u = Math.random(); - var d = max - min; - if (u <= (mode - min) / d) - return min + Math.sqrt(u * d * (mode - min)); - return max - Math.sqrt((1 - u) * d * (max - mode)); - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Interpolation = (function () { - function Interpolation() { - } - Interpolation.prototype.apply = function (start, end, a) { - return start + (end - start) * this.applyInternal(a); - }; - return Interpolation; - }()); - spine.Interpolation = Interpolation; - var Pow = (function (_super) { - __extends(Pow, _super); - function Pow(power) { - var _this = _super.call(this) || this; - _this.power = 2; - _this.power = power; - return _this; - } - Pow.prototype.applyInternal = function (a) { - if (a <= 0.5) - return Math.pow(a * 2, this.power) / 2; - return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1; - }; - return Pow; - }(Interpolation)); - spine.Pow = Pow; - var PowOut = (function (_super) { - __extends(PowOut, _super); - function PowOut(power) { - return _super.call(this, power) || this; - } - PowOut.prototype.applyInternal = function (a) { - return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1; - }; - return PowOut; - }(Pow)); - spine.PowOut = PowOut; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.toSinglePrecision = function (value) { - return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value; - }; - Utils.webkit602BugfixHelper = function (alpha, blend) { - }; - Utils.contains = function (array, element, identity) { - if (identity === void 0) { identity = true; } - for (var i = 0; i < array.length; i++) { - if (array[i] == element) - return true; - } - return false; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - if (items[i].reset) - items[i].reset(); - this.items[i] = items[i]; - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.rgba8888ToColor = function (color, value) { + color.r = ((value & 0xff000000) >>> 24) / 255; + color.g = ((value & 0x00ff0000) >>> 16) / 255; + color.b = ((value & 0x0000ff00) >>> 8) / 255; + color.a = ((value & 0x000000ff)) / 255; + }; + Color.rgb888ToColor = function (color, value) { + color.r = ((value & 0x00ff0000) >>> 16) / 255; + color.g = ((value & 0x0000ff00) >>> 8) / 255; + color.b = ((value & 0x000000ff)) / 255; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.randomTriangular = function (min, max) { + return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5); + }; + MathUtils.randomTriangularWith = function (min, max, mode) { + var u = Math.random(); + var d = max - min; + if (u <= (mode - min) / d) + return min + Math.sqrt(u * d * (mode - min)); + return max - Math.sqrt((1 - u) * d * (max - mode)); + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Interpolation = (function () { + function Interpolation() { + } + Interpolation.prototype.apply = function (start, end, a) { + return start + (end - start) * this.applyInternal(a); + }; + return Interpolation; + }()); + spine.Interpolation = Interpolation; + var Pow = (function (_super) { + __extends(Pow, _super); + function Pow(power) { + var _this = _super.call(this) || this; + _this.power = 2; + _this.power = power; + return _this; + } + Pow.prototype.applyInternal = function (a) { + if (a <= 0.5) + return Math.pow(a * 2, this.power) / 2; + return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1; + }; + return Pow; + }(Interpolation)); + spine.Pow = Pow; + var PowOut = (function (_super) { + __extends(PowOut, _super); + function PowOut(power) { + return _super.call(this, power) || this; + } + PowOut.prototype.applyInternal = function (a) { + return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1; + }; + return PowOut; + }(Pow)); + spine.PowOut = PowOut; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.toSinglePrecision = function (value) { + return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value; + }; + Utils.webkit602BugfixHelper = function (alpha, blend) { + }; + Utils.contains = function (array, element, identity) { + if (identity === void 0) { identity = true; } + for (var i = 0; i < array.length; i++) { + if (array[i] == element) + return true; + } + return false; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].reset) + items[i].reset(); + this.items[i] = items[i]; + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); (function () { - if (!Math.fround) { - Math.fround = (function (array) { - return function (x) { - return array[0] = x, array[0]; - }; - })(new Float32Array(1)); - } + if (!Math.fround) { + Math.fround = (function (array) { + return function (x) { + return array[0] = x, array[0]; + }; + })(new Float32Array(1)); + } })(); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.id = (VertexAttachment.nextID++ & 65535) << 11; - _this.worldVerticesLength = 0; - _this.deformAttachment = _this; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.deform; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.copyTo = function (attachment) { - if (this.bones != null) { - attachment.bones = new Array(this.bones.length); - spine.Utils.arrayCopy(this.bones, 0, attachment.bones, 0, this.bones.length); - } - else - attachment.bones = null; - if (this.vertices != null) { - attachment.vertices = spine.Utils.newFloatArray(this.vertices.length); - spine.Utils.arrayCopy(this.vertices, 0, attachment.vertices, 0, this.vertices.length); - } - else - attachment.vertices = null; - attachment.worldVerticesLength = this.worldVerticesLength; - attachment.deformAttachment = this.deformAttachment; - }; - VertexAttachment.nextID = 0; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + var _this = _super.call(this, name) || this; + _this.id = (VertexAttachment.nextID++ & 65535) << 11; + _this.worldVerticesLength = 0; + _this.deformAttachment = _this; + return _this; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.deform; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.copyTo = function (attachment) { + if (this.bones != null) { + attachment.bones = new Array(this.bones.length); + spine.Utils.arrayCopy(this.bones, 0, attachment.bones, 0, this.bones.length); + } + else + attachment.bones = null; + if (this.vertices != null) { + attachment.vertices = spine.Utils.newFloatArray(this.vertices.length); + spine.Utils.arrayCopy(this.vertices, 0, attachment.vertices, 0, this.vertices.length); + } + else + attachment.vertices = null; + attachment.worldVerticesLength = this.worldVerticesLength; + attachment.deformAttachment = this.deformAttachment; + }; + VertexAttachment.nextID = 0; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - AttachmentType[AttachmentType["Clipping"] = 6] = "Clipping"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + AttachmentType[AttachmentType["Clipping"] = 6] = "Clipping"; + })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - BoundingBoxAttachment.prototype.copy = function () { - var copy = new BoundingBoxAttachment(name); - this.copyTo(copy); - copy.color.setFromColor(this.color); - return copy; - }; - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(1, 1, 1, 1); + return _this; + } + BoundingBoxAttachment.prototype.copy = function () { + var copy = new BoundingBoxAttachment(name); + this.copyTo(copy); + copy.color.setFromColor(this.color); + return copy; + }; + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - ClippingAttachment.prototype.copy = function () { - var copy = new ClippingAttachment(name); - this.copyTo(copy); - copy.endSlot = this.endSlot; - copy.color.setFromColor(this.color); - return copy; - }; - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + return _this; + } + ClippingAttachment.prototype.copy = function () { + var copy = new ClippingAttachment(name); + this.copyTo(copy); + copy.endSlot = this.endSlot; + copy.color.setFromColor(this.color); + return copy; + }; + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - var n = this.uvs.length; - var u = this.region.u, v = this.region.v, width = 0, height = 0; - if (this.region instanceof spine.TextureAtlasRegion) { - var region = this.region; - var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height; - switch (region.degrees) { - case 90: - u -= (region.originalHeight - region.offsetY - region.height) / textureWidth; - v -= (region.originalWidth - region.offsetX - region.width) / textureHeight; - width = region.originalHeight / textureWidth; - height = region.originalWidth / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + (1 - regionUVs[i]) * height; - } - return; - case 180: - u -= (region.originalWidth - region.offsetX - region.width) / textureWidth; - v -= region.offsetY / textureHeight; - width = region.originalWidth / textureWidth; - height = region.originalHeight / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + (1 - regionUVs[i]) * width; - uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; - } - return; - case 270: - u -= region.offsetY / textureWidth; - v -= region.offsetX / textureHeight; - width = region.originalHeight / textureWidth; - height = region.originalWidth / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + (1 - regionUVs[i + 1]) * width; - uvs[i + 1] = v + regionUVs[i] * height; - } - return; - } - u -= region.offsetX / textureWidth; - v -= (region.originalHeight - region.offsetY - region.height) / textureHeight; - width = region.originalWidth / textureWidth; - height = region.originalHeight / textureHeight; - } - else if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - width = this.region.u2 - u; - height = this.region.v2 - v; - } - for (var i = 0; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - MeshAttachment.prototype.copy = function () { - if (this.parentMesh != null) - return this.newLinkedMesh(); - var copy = new MeshAttachment(this.name); - copy.region = this.region; - copy.path = this.path; - copy.color.setFromColor(this.color); - this.copyTo(copy); - copy.regionUVs = new Array(this.regionUVs.length); - spine.Utils.arrayCopy(this.regionUVs, 0, copy.regionUVs, 0, this.regionUVs.length); - copy.uvs = new Array(this.uvs.length); - spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, this.uvs.length); - copy.triangles = new Array(this.triangles.length); - spine.Utils.arrayCopy(this.triangles, 0, copy.triangles, 0, this.triangles.length); - copy.hullLength = this.hullLength; - if (this.edges != null) { - copy.edges = new Array(this.edges.length); - spine.Utils.arrayCopy(this.edges, 0, copy.edges, 0, this.edges.length); - } - copy.width = this.width; - copy.height = this.height; - return copy; - }; - MeshAttachment.prototype.newLinkedMesh = function () { - var copy = new MeshAttachment(this.name); - copy.region = this.region; - copy.path = this.path; - copy.color.setFromColor(this.color); - copy.deformAttachment = this.deformAttachment; - copy.setParentMesh(this.parentMesh != null ? this.parentMesh : this); - copy.updateUVs(); - return copy; - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(1, 1, 1, 1); + _this.tempColor = new spine.Color(0, 0, 0, 0); + return _this; + } + MeshAttachment.prototype.updateUVs = function () { + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + var n = this.uvs.length; + var u = this.region.u, v = this.region.v, width = 0, height = 0; + if (this.region instanceof spine.TextureAtlasRegion) { + var region = this.region; + var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height; + switch (region.degrees) { + case 90: + u -= (region.originalHeight - region.offsetY - region.height) / textureWidth; + v -= (region.originalWidth - region.offsetX - region.width) / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + (1 - regionUVs[i]) * height; + } + return; + case 180: + u -= (region.originalWidth - region.offsetX - region.width) / textureWidth; + v -= region.offsetY / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i]) * width; + uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; + } + return; + case 270: + u -= region.offsetY / textureWidth; + v -= region.offsetX / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i + 1]) * width; + uvs[i + 1] = v + regionUVs[i] * height; + } + return; + } + u -= region.offsetX / textureWidth; + v -= (region.originalHeight - region.offsetY - region.height) / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + } + else if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + width = this.region.u2 - u; + height = this.region.v2 - v; + } + for (var i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + MeshAttachment.prototype.copy = function () { + if (this.parentMesh != null) + return this.newLinkedMesh(); + var copy = new MeshAttachment(this.name); + copy.region = this.region; + copy.path = this.path; + copy.color.setFromColor(this.color); + this.copyTo(copy); + copy.regionUVs = new Array(this.regionUVs.length); + spine.Utils.arrayCopy(this.regionUVs, 0, copy.regionUVs, 0, this.regionUVs.length); + copy.uvs = new Array(this.uvs.length); + spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, this.uvs.length); + copy.triangles = new Array(this.triangles.length); + spine.Utils.arrayCopy(this.triangles, 0, copy.triangles, 0, this.triangles.length); + copy.hullLength = this.hullLength; + if (this.edges != null) { + copy.edges = new Array(this.edges.length); + spine.Utils.arrayCopy(this.edges, 0, copy.edges, 0, this.edges.length); + } + copy.width = this.width; + copy.height = this.height; + return copy; + }; + MeshAttachment.prototype.newLinkedMesh = function () { + var copy = new MeshAttachment(this.name); + copy.region = this.region; + copy.path = this.path; + copy.color.setFromColor(this.color); + copy.deformAttachment = this.deformAttachment; + copy.setParentMesh(this.parentMesh != null ? this.parentMesh : this); + copy.updateUVs(); + return copy; + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - PathAttachment.prototype.copy = function () { - var copy = new PathAttachment(name); - this.copyTo(copy); - copy.lengths = new Array(this.lengths.length); - spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length); - copy.closed = closed; - copy.constantSpeed = this.constantSpeed; - copy.color.setFromColor(this.color); - return copy; - }; - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + var _this = _super.call(this, name) || this; + _this.closed = false; + _this.constantSpeed = false; + _this.color = new spine.Color(1, 1, 1, 1); + return _this; + } + PathAttachment.prototype.copy = function () { + var copy = new PathAttachment(name); + this.copyTo(copy); + copy.lengths = new Array(this.lengths.length); + spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length); + copy.closed = closed; + copy.constantSpeed = this.constantSpeed; + copy.color.setFromColor(this.color); + return copy; + }; + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - PointAttachment.prototype.copy = function () { - var copy = new PointAttachment(name); - copy.x = this.x; - copy.y = this.y; - copy.rotation = this.rotation; - copy.color.setFromColor(this.color); - return copy; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(0.38, 0.94, 0, 1); + return _this; + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + PointAttachment.prototype.copy = function () { + var copy = new PointAttachment(name); + copy.x = this.x; + copy.y = this.y; + copy.rotation = this.rotation; + copy.color.setFromColor(this.color); + return copy; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.prototype.copy = function () { - var copy = new RegionAttachment(name); - copy.region = this.region; - copy.rendererObject = this.rendererObject; - copy.path = this.path; - copy.x = this.x; - copy.y = this.y; - copy.scaleX = this.scaleX; - copy.scaleY = this.scaleY; - copy.rotation = this.rotation; - copy.width = this.width; - copy.height = this.height; - spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8); - spine.Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8); - copy.color.setFromColor(this.color); - return copy; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + var _this = _super.call(this, name) || this; + _this.x = 0; + _this.y = 0; + _this.scaleX = 1; + _this.scaleY = 1; + _this.rotation = 0; + _this.width = 0; + _this.height = 0; + _this.color = new spine.Color(1, 1, 1, 1); + _this.offset = spine.Utils.newFloatArray(8); + _this.uvs = spine.Utils.newFloatArray(8); + _this.tempColor = new spine.Color(1, 1, 1, 1); + return _this; + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.prototype.copy = function () { + var copy = new RegionAttachment(name); + copy.region = this.region; + copy.rendererObject = this.rendererObject; + copy.path = this.path; + copy.x = this.x; + copy.y = this.y; + copy.scaleX = this.scaleX; + copy.scaleY = this.scaleY; + copy.rotation = this.rotation; + copy.width = this.width; + copy.height = this.height; + spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8); + spine.Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8); + copy.color.setFromColor(this.color); + return copy; + }; + 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 JitterEffect = (function () { - function JitterEffect(jitterX, jitterY) { - this.jitterX = 0; - this.jitterY = 0; - this.jitterX = jitterX; - this.jitterY = jitterY; - } - JitterEffect.prototype.begin = function (skeleton) { - }; - JitterEffect.prototype.transform = function (position, uv, light, dark) { - position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); - position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); - }; - JitterEffect.prototype.end = function () { - }; - return JitterEffect; - }()); - spine.JitterEffect = JitterEffect; + var JitterEffect = (function () { + function JitterEffect(jitterX, jitterY) { + this.jitterX = 0; + this.jitterY = 0; + this.jitterX = jitterX; + this.jitterY = jitterY; + } + JitterEffect.prototype.begin = function (skeleton) { + }; + JitterEffect.prototype.transform = function (position, uv, light, dark) { + position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); + position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); + }; + JitterEffect.prototype.end = function () { + }; + return JitterEffect; + }()); + spine.JitterEffect = JitterEffect; })(spine || (spine = {})); var spine; (function (spine) { - var SwirlEffect = (function () { - function SwirlEffect(radius) { - this.centerX = 0; - this.centerY = 0; - this.radius = 0; - this.angle = 0; - this.worldX = 0; - this.worldY = 0; - this.radius = radius; - } - SwirlEffect.prototype.begin = function (skeleton) { - this.worldX = skeleton.x + this.centerX; - this.worldY = skeleton.y + this.centerY; - }; - SwirlEffect.prototype.transform = function (position, uv, light, dark) { - var radAngle = this.angle * spine.MathUtils.degreesToRadians; - var x = position.x - this.worldX; - var y = position.y - this.worldY; - var dist = Math.sqrt(x * x + y * y); - if (dist < this.radius) { - var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius); - var cos = Math.cos(theta); - var sin = Math.sin(theta); - position.x = cos * x - sin * y + this.worldX; - position.y = sin * x + cos * y + this.worldY; - } - }; - SwirlEffect.prototype.end = function () { - }; - SwirlEffect.interpolation = new spine.PowOut(2); - return SwirlEffect; - }()); - spine.SwirlEffect = SwirlEffect; + var SwirlEffect = (function () { + function SwirlEffect(radius) { + this.centerX = 0; + this.centerY = 0; + this.radius = 0; + this.angle = 0; + this.worldX = 0; + this.worldY = 0; + this.radius = radius; + } + SwirlEffect.prototype.begin = function (skeleton) { + this.worldX = skeleton.x + this.centerX; + this.worldY = skeleton.y + this.centerY; + }; + SwirlEffect.prototype.transform = function (position, uv, light, dark) { + var radAngle = this.angle * spine.MathUtils.degreesToRadians; + var x = position.x - this.worldX; + var y = position.y - this.worldY; + var dist = Math.sqrt(x * x + y * y); + if (dist < this.radius) { + var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius); + var cos = Math.cos(theta); + var sin = Math.sin(theta); + position.x = cos * x - sin * y + this.worldX; + position.y = sin * x + cos * y + this.worldY; + } + }; + SwirlEffect.prototype.end = function () { + }; + SwirlEffect.interpolation = new spine.PowOut(2); + return SwirlEffect; + }()); + spine.SwirlEffect = SwirlEffect; })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { - return new threejs.ThreeJsTexture(image); - }, pathPrefix) || this; - } - return AssetManager; - }(spine.AssetManager)); - threejs.AssetManager = AssetManager; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + return _super.call(this, function (image) { + return new threejs.ThreeJsTexture(image); + }, pathPrefix) || this; + } + return AssetManager; + }(spine.AssetManager)); + threejs.AssetManager = AssetManager; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var MeshBatcher = (function (_super) { - __extends(MeshBatcher, _super); - function MeshBatcher(maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - var _this = _super.call(this) || this; - _this.verticesLength = 0; - _this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - var vertices = _this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); - var indices = _this.indices = new Uint16Array(maxVertices * 3); - var geo = new THREE.BufferGeometry(); - var vertexBuffer = _this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); - vertexBuffer.usage = WebGLRenderingContext.DYNAMIC_DRAW; - geo.setAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); - geo.setAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); - geo.setAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); - geo.setIndex(new THREE.BufferAttribute(indices, 1)); - geo.getIndex().usage = WebGLRenderingContext.DYNAMIC_DRAW; - ; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - _this.geometry = geo; - _this.material = new threejs.SkeletonMeshMaterial(); - return _this; - } - MeshBatcher.prototype.dispose = function () { - this.geometry.dispose(); - if (this.material instanceof THREE.Material) - this.material.dispose(); - else if (this.material) { - for (var i = 0; i < this.material.length; i++) { - var material = this.material[i]; - if (material instanceof THREE.Material) - material.dispose(); - } - } - }; - MeshBatcher.prototype.clear = function () { - var geo = this.geometry; - geo.drawRange.start = 0; - geo.drawRange.count = 0; - this.material.uniforms.map.value = null; - }; - MeshBatcher.prototype.begin = function () { - this.verticesLength = 0; - this.indicesLength = 0; - }; - MeshBatcher.prototype.canBatch = function (verticesLength, indicesLength) { - if (this.indicesLength + indicesLength >= this.indices.byteLength / 2) - return false; - if (this.verticesLength + verticesLength >= this.vertices.byteLength / 2) - return false; - return true; - }; - MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { - if (z === void 0) { z = 0; } - var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; - var vertexBuffer = this.vertices; - var i = this.verticesLength; - var j = 0; - for (; j < verticesLength;) { - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = z; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - vertexBuffer[i++] = vertices[j++]; - } - this.verticesLength = i; - var indicesArray = this.indices; - for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indicesLength; - }; - MeshBatcher.prototype.end = function () { - this.vertexBuffer.needsUpdate = this.verticesLength > 0; - this.vertexBuffer.updateRange.offset = 0; - this.vertexBuffer.updateRange.count = this.verticesLength; - var geo = this.geometry; - geo.getIndex().needsUpdate = this.indicesLength > 0; - geo.getIndex().updateRange.offset = 0; - geo.getIndex().updateRange.count = this.indicesLength; - geo.drawRange.start = 0; - geo.drawRange.count = this.indicesLength; - }; - MeshBatcher.VERTEX_SIZE = 9; - return MeshBatcher; - }(THREE.Mesh)); - threejs.MeshBatcher = MeshBatcher; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var MeshBatcher = (function (_super) { + __extends(MeshBatcher, _super); + function MeshBatcher(maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + var _this = _super.call(this) || this; + _this.verticesLength = 0; + _this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + var vertices = _this.vertices = new Float32Array(maxVertices * MeshBatcher.VERTEX_SIZE); + var indices = _this.indices = new Uint16Array(maxVertices * 3); + var geo = new THREE.BufferGeometry(); + var vertexBuffer = _this.vertexBuffer = new THREE.InterleavedBuffer(vertices, MeshBatcher.VERTEX_SIZE); + vertexBuffer.usage = WebGLRenderingContext.DYNAMIC_DRAW; + geo.setAttribute("position", new THREE.InterleavedBufferAttribute(vertexBuffer, 3, 0, false)); + geo.setAttribute("color", new THREE.InterleavedBufferAttribute(vertexBuffer, 4, 3, false)); + geo.setAttribute("uv", new THREE.InterleavedBufferAttribute(vertexBuffer, 2, 7, false)); + geo.setIndex(new THREE.BufferAttribute(indices, 1)); + geo.getIndex().usage = WebGLRenderingContext.DYNAMIC_DRAW; + ; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + _this.geometry = geo; + _this.material = new threejs.SkeletonMeshMaterial(); + return _this; + } + MeshBatcher.prototype.dispose = function () { + this.geometry.dispose(); + if (this.material instanceof THREE.Material) + this.material.dispose(); + else if (this.material) { + for (var i = 0; i < this.material.length; i++) { + var material = this.material[i]; + if (material instanceof THREE.Material) + material.dispose(); + } + } + }; + MeshBatcher.prototype.clear = function () { + var geo = this.geometry; + geo.drawRange.start = 0; + geo.drawRange.count = 0; + this.material.uniforms.map.value = null; + }; + MeshBatcher.prototype.begin = function () { + this.verticesLength = 0; + this.indicesLength = 0; + }; + MeshBatcher.prototype.canBatch = function (verticesLength, indicesLength) { + if (this.indicesLength + indicesLength >= this.indices.byteLength / 2) + return false; + if (this.verticesLength + verticesLength >= this.vertices.byteLength / 2) + return false; + return true; + }; + MeshBatcher.prototype.batch = function (vertices, verticesLength, indices, indicesLength, z) { + if (z === void 0) { z = 0; } + var indexStart = this.verticesLength / MeshBatcher.VERTEX_SIZE; + var vertexBuffer = this.vertices; + var i = this.verticesLength; + var j = 0; + for (; j < verticesLength;) { + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = z; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + vertexBuffer[i++] = vertices[j++]; + } + this.verticesLength = i; + var indicesArray = this.indices; + for (i = this.indicesLength, j = 0; j < indicesLength; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indicesLength; + }; + MeshBatcher.prototype.end = function () { + this.vertexBuffer.needsUpdate = this.verticesLength > 0; + this.vertexBuffer.updateRange.offset = 0; + this.vertexBuffer.updateRange.count = this.verticesLength; + var geo = this.geometry; + geo.getIndex().needsUpdate = this.indicesLength > 0; + geo.getIndex().updateRange.offset = 0; + geo.getIndex().updateRange.count = this.indicesLength; + geo.drawRange.start = 0; + geo.drawRange.count = this.indicesLength; + }; + MeshBatcher.VERTEX_SIZE = 9; + return MeshBatcher; + }(THREE.Mesh)); + threejs.MeshBatcher = MeshBatcher; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var SkeletonMeshMaterial = (function (_super) { - __extends(SkeletonMeshMaterial, _super); - function SkeletonMeshMaterial() { - var _this = this; - var vertexShader = "\n\t\t\t\tattribute vec4 color;\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvarying vec4 vColor;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tvColor = color;\n\t\t\t\t\tgl_Position = projectionMatrix*modelViewMatrix*vec4(position,1.0);\n\t\t\t\t}\n\t\t\t"; - var fragmentShader = "\n\t\t\t\tuniform sampler2D map;\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvarying vec4 vColor;\n\t\t\t\tvoid main(void) {\n\t\t\t\t\tgl_FragColor = texture2D(map, vUv)*vColor;\n\t\t\t\t}\n\t\t\t"; - var parameters = { - uniforms: { - map: { type: "t", value: null } - }, - vertexShader: vertexShader, - fragmentShader: fragmentShader, - side: THREE.DoubleSide, - transparent: true, - alphaTest: 0.5 - }; - _this = _super.call(this, parameters) || this; - return _this; - } - ; - return SkeletonMeshMaterial; - }(THREE.ShaderMaterial)); - threejs.SkeletonMeshMaterial = SkeletonMeshMaterial; - var SkeletonMesh = (function (_super) { - __extends(SkeletonMesh, _super); - function SkeletonMesh(skeletonData) { - var _this = _super.call(this) || this; - _this.tempPos = new spine.Vector2(); - _this.tempUv = new spine.Vector2(); - _this.tempLight = new spine.Color(); - _this.tempDark = new spine.Color(); - _this.zOffset = 0.1; - _this.batches = new Array(); - _this.nextBatchIndex = 0; - _this.clipper = new spine.SkeletonClipping(); - _this.vertices = spine.Utils.newFloatArray(1024); - _this.tempColor = new spine.Color(); - _this.skeleton = new spine.Skeleton(skeletonData); - var animData = new spine.AnimationStateData(skeletonData); - _this.state = new spine.AnimationState(animData); - return _this; - } - SkeletonMesh.prototype.update = function (deltaTime) { - var state = this.state; - var skeleton = this.skeleton; - state.update(deltaTime); - state.apply(skeleton); - skeleton.updateWorldTransform(); - this.updateGeometry(); - }; - SkeletonMesh.prototype.dispose = function () { - for (var i = 0; i < this.batches.length; i++) { - this.batches[i].dispose(); - } - }; - SkeletonMesh.prototype.clearBatches = function () { - for (var i = 0; i < this.batches.length; i++) { - this.batches[i].clear(); - this.batches[i].visible = false; - } - this.nextBatchIndex = 0; - }; - SkeletonMesh.prototype.nextBatch = function () { - if (this.batches.length == this.nextBatchIndex) { - var batch_1 = new threejs.MeshBatcher(); - this.add(batch_1); - this.batches.push(batch_1); - } - var batch = this.batches[this.nextBatchIndex++]; - batch.visible = true; - return batch; - }; - SkeletonMesh.prototype.updateGeometry = function () { - this.clearBatches(); - var tempPos = this.tempPos; - var tempUv = this.tempUv; - var tempLight = this.tempLight; - var tempDark = this.tempDark; - var numVertices = 0; - var verticesLength = 0; - var indicesLength = 0; - var blendMode = null; - var clipper = this.clipper; - var vertices = this.vertices; - var triangles = null; - var uvs = null; - var drawOrder = this.skeleton.drawOrder; - var batch = this.nextBatch(); - batch.begin(); - var z = 0; - var zOffset = this.zOffset; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; - var slot = drawOrder[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - var attachmentColor = null; - var texture = null; - var numFloats = 0; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - attachmentColor = region.color; - vertices = this.vertices; - numFloats = vertexSize * 4; - region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); - triangles = SkeletonMesh.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - attachmentColor = mesh.color; - vertices = this.vertices; - numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; - if (numFloats > vertices.length) { - vertices = this.vertices = spine.Utils.newFloatArray(numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); - triangles = mesh.triangles; - uvs = mesh.uvs; - texture = mesh.region.renderObject.texture; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else - continue; - if (texture != null) { - var skeleton = slot.bone.skeleton; - var skeletonColor = skeleton.color; - var slotColor = slot.color; - var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; - var color = this.tempColor; - color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); - var finalVertices = void 0; - var finalVerticesLength = void 0; - var finalIndices = void 0; - var finalIndicesLength = void 0; - if (clipper.isClipping()) { - clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); - var clippedVertices = clipper.clippedVertices; - var clippedTriangles = clipper.clippedTriangles; - if (this.vertexEffect != null) { - var vertexEffect = this.vertexEffect; - var verts = clippedVertices; - for (var v = 0, n_2 = clippedVertices.length; v < n_2; v += vertexSize) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempLight.setFromColor(color); - tempDark.set(0, 0, 0, 0); - tempUv.x = verts[v + 6]; - tempUv.y = verts[v + 7]; - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - } - } - finalVertices = clippedVertices; - finalVerticesLength = clippedVertices.length; - finalIndices = clippedTriangles; - finalIndicesLength = clippedTriangles.length; - } - else { - var verts = vertices; - if (this.vertexEffect != null) { - var vertexEffect = this.vertexEffect; - for (var v = 0, u = 0, n_3 = numFloats; v < n_3; v += vertexSize, u += 2) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempLight.setFromColor(color); - tempDark.set(0, 0, 0, 0); - tempUv.x = uvs[u]; - tempUv.y = uvs[u + 1]; - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - } - } - else { - for (var v = 2, u = 0, n_4 = numFloats; v < n_4; v += vertexSize, u += 2) { - verts[v] = color.r; - verts[v + 1] = color.g; - verts[v + 2] = color.b; - verts[v + 3] = color.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - finalVertices = vertices; - finalVerticesLength = numFloats; - finalIndices = triangles; - finalIndicesLength = triangles.length; - } - if (finalVerticesLength == 0 || finalIndicesLength == 0) - continue; - if (!batch.canBatch(finalVerticesLength, finalIndicesLength)) { - batch.end(); - batch = this.nextBatch(); - batch.begin(); - } - var batchMaterial = batch.material; - if (batchMaterial.uniforms.map.value == null) { - batchMaterial.uniforms.map.value = texture.texture; - } - if (batchMaterial.uniforms.map.value != texture.texture) { - batch.end(); - batch = this.nextBatch(); - batch.begin(); - batchMaterial = batch.material; - batchMaterial.uniforms.map.value = texture.texture; - } - batchMaterial.needsUpdate = true; - batch.batch(finalVertices, finalVerticesLength, finalIndices, finalIndicesLength, z); - z += zOffset; - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - batch.end(); - }; - SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; - return SkeletonMesh; - }(THREE.Object3D)); - threejs.SkeletonMesh = SkeletonMesh; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var SkeletonMeshMaterial = (function (_super) { + __extends(SkeletonMeshMaterial, _super); + function SkeletonMeshMaterial() { + var _this = this; + var vertexShader = "\n\t\t\t\tattribute vec4 color;\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvarying vec4 vColor;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tvColor = color;\n\t\t\t\t\tgl_Position = projectionMatrix*modelViewMatrix*vec4(position,1.0);\n\t\t\t\t}\n\t\t\t"; + var fragmentShader = "\n\t\t\t\tuniform sampler2D map;\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tvarying vec4 vColor;\n\t\t\t\tvoid main(void) {\n\t\t\t\t\tgl_FragColor = texture2D(map, vUv)*vColor;\n\t\t\t\t}\n\t\t\t"; + var parameters = { + uniforms: { + map: { type: "t", value: null } + }, + vertexShader: vertexShader, + fragmentShader: fragmentShader, + side: THREE.DoubleSide, + transparent: true, + alphaTest: 0.5 + }; + _this = _super.call(this, parameters) || this; + return _this; + } + ; + return SkeletonMeshMaterial; + }(THREE.ShaderMaterial)); + threejs.SkeletonMeshMaterial = SkeletonMeshMaterial; + var SkeletonMesh = (function (_super) { + __extends(SkeletonMesh, _super); + function SkeletonMesh(skeletonData) { + var _this = _super.call(this) || this; + _this.tempPos = new spine.Vector2(); + _this.tempUv = new spine.Vector2(); + _this.tempLight = new spine.Color(); + _this.tempDark = new spine.Color(); + _this.zOffset = 0.1; + _this.batches = new Array(); + _this.nextBatchIndex = 0; + _this.clipper = new spine.SkeletonClipping(); + _this.vertices = spine.Utils.newFloatArray(1024); + _this.tempColor = new spine.Color(); + _this.skeleton = new spine.Skeleton(skeletonData); + var animData = new spine.AnimationStateData(skeletonData); + _this.state = new spine.AnimationState(animData); + return _this; + } + SkeletonMesh.prototype.update = function (deltaTime) { + var state = this.state; + var skeleton = this.skeleton; + state.update(deltaTime); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.updateGeometry(); + }; + SkeletonMesh.prototype.dispose = function () { + for (var i = 0; i < this.batches.length; i++) { + this.batches[i].dispose(); + } + }; + SkeletonMesh.prototype.clearBatches = function () { + for (var i = 0; i < this.batches.length; i++) { + this.batches[i].clear(); + this.batches[i].visible = false; + } + this.nextBatchIndex = 0; + }; + SkeletonMesh.prototype.nextBatch = function () { + if (this.batches.length == this.nextBatchIndex) { + var batch_1 = new threejs.MeshBatcher(); + this.add(batch_1); + this.batches.push(batch_1); + } + var batch = this.batches[this.nextBatchIndex++]; + batch.visible = true; + return batch; + }; + SkeletonMesh.prototype.updateGeometry = function () { + this.clearBatches(); + var tempPos = this.tempPos; + var tempUv = this.tempUv; + var tempLight = this.tempLight; + var tempDark = this.tempDark; + var numVertices = 0; + var verticesLength = 0; + var indicesLength = 0; + var blendMode = null; + var clipper = this.clipper; + var vertices = this.vertices; + var triangles = null; + var uvs = null; + var drawOrder = this.skeleton.drawOrder; + var batch = this.nextBatch(); + batch.begin(); + var z = 0; + var zOffset = this.zOffset; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var vertexSize = clipper.isClipping() ? 2 : SkeletonMesh.VERTEX_SIZE; + var slot = drawOrder[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + var attachmentColor = null; + var texture = null; + var numFloats = 0; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + attachmentColor = region.color; + vertices = this.vertices; + numFloats = vertexSize * 4; + region.computeWorldVertices(slot.bone, vertices, 0, vertexSize); + triangles = SkeletonMesh.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + attachmentColor = mesh.color; + vertices = this.vertices; + numFloats = (mesh.worldVerticesLength >> 1) * vertexSize; + if (numFloats > vertices.length) { + vertices = this.vertices = spine.Utils.newFloatArray(numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); + triangles = mesh.triangles; + uvs = mesh.uvs; + texture = mesh.region.renderObject.texture; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else + continue; + if (texture != null) { + var skeleton = slot.bone.skeleton; + var skeletonColor = skeleton.color; + var slotColor = slot.color; + var alpha = skeletonColor.a * slotColor.a * attachmentColor.a; + var color = this.tempColor; + color.set(skeletonColor.r * slotColor.r * attachmentColor.r, skeletonColor.g * slotColor.g * attachmentColor.g, skeletonColor.b * slotColor.b * attachmentColor.b, alpha); + var finalVertices = void 0; + var finalVerticesLength = void 0; + var finalIndices = void 0; + var finalIndicesLength = void 0; + if (clipper.isClipping()) { + clipper.clipTriangles(vertices, numFloats, triangles, triangles.length, uvs, color, null, false); + var clippedVertices = clipper.clippedVertices; + var clippedTriangles = clipper.clippedTriangles; + if (this.vertexEffect != null) { + var vertexEffect = this.vertexEffect; + var verts = clippedVertices; + for (var v = 0, n_2 = clippedVertices.length; v < n_2; v += vertexSize) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempLight.setFromColor(color); + tempDark.set(0, 0, 0, 0); + tempUv.x = verts[v + 6]; + tempUv.y = verts[v + 7]; + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + } + } + finalVertices = clippedVertices; + finalVerticesLength = clippedVertices.length; + finalIndices = clippedTriangles; + finalIndicesLength = clippedTriangles.length; + } + else { + var verts = vertices; + if (this.vertexEffect != null) { + var vertexEffect = this.vertexEffect; + for (var v = 0, u = 0, n_3 = numFloats; v < n_3; v += vertexSize, u += 2) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempLight.setFromColor(color); + tempDark.set(0, 0, 0, 0); + tempUv.x = uvs[u]; + tempUv.y = uvs[u + 1]; + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + } + } + else { + for (var v = 2, u = 0, n_4 = numFloats; v < n_4; v += vertexSize, u += 2) { + verts[v] = color.r; + verts[v + 1] = color.g; + verts[v + 2] = color.b; + verts[v + 3] = color.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + finalVertices = vertices; + finalVerticesLength = numFloats; + finalIndices = triangles; + finalIndicesLength = triangles.length; + } + if (finalVerticesLength == 0 || finalIndicesLength == 0) + continue; + if (!batch.canBatch(finalVerticesLength, finalIndicesLength)) { + batch.end(); + batch = this.nextBatch(); + batch.begin(); + } + var batchMaterial = batch.material; + if (batchMaterial.uniforms.map.value == null) { + batchMaterial.uniforms.map.value = texture.texture; + } + if (batchMaterial.uniforms.map.value != texture.texture) { + batch.end(); + batch = this.nextBatch(); + batch.begin(); + batchMaterial = batch.material; + batchMaterial.uniforms.map.value = texture.texture; + } + batchMaterial.needsUpdate = true; + batch.batch(finalVertices, finalVerticesLength, finalIndices, finalIndicesLength, z); + z += zOffset; + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + batch.end(); + }; + SkeletonMesh.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + SkeletonMesh.VERTEX_SIZE = 2 + 2 + 4; + return SkeletonMesh; + }(THREE.Object3D)); + threejs.SkeletonMesh = SkeletonMesh; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); var spine; (function (spine) { - var threejs; - (function (threejs) { - var ThreeJsTexture = (function (_super) { - __extends(ThreeJsTexture, _super); - function ThreeJsTexture(image) { - var _this = _super.call(this, image) || this; - _this.texture = new THREE.Texture(image); - _this.texture.flipY = false; - _this.texture.needsUpdate = true; - return _this; - } - ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { - this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); - this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); - }; - ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { - this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); - this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); - }; - ThreeJsTexture.prototype.dispose = function () { - this.texture.dispose(); - }; - ThreeJsTexture.toThreeJsTextureFilter = function (filter) { - if (filter === spine.TextureFilter.Linear) - return THREE.LinearFilter; - else if (filter === spine.TextureFilter.MipMap) - return THREE.LinearMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapLinearNearest) - return THREE.LinearMipMapNearestFilter; - else if (filter === spine.TextureFilter.MipMapNearestLinear) - return THREE.NearestMipMapLinearFilter; - else if (filter === spine.TextureFilter.MipMapNearestNearest) - return THREE.NearestMipMapNearestFilter; - else if (filter === spine.TextureFilter.Nearest) - return THREE.NearestFilter; - else - throw new Error("Unknown texture filter: " + filter); - }; - ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { - if (wrap === spine.TextureWrap.ClampToEdge) - return THREE.ClampToEdgeWrapping; - else if (wrap === spine.TextureWrap.MirroredRepeat) - return THREE.MirroredRepeatWrapping; - else if (wrap === spine.TextureWrap.Repeat) - return THREE.RepeatWrapping; - else - throw new Error("Unknown texture wrap: " + wrap); - }; - return ThreeJsTexture; - }(spine.Texture)); - threejs.ThreeJsTexture = ThreeJsTexture; - })(threejs = spine.threejs || (spine.threejs = {})); + var threejs; + (function (threejs) { + var ThreeJsTexture = (function (_super) { + __extends(ThreeJsTexture, _super); + function ThreeJsTexture(image) { + var _this = _super.call(this, image) || this; + _this.texture = new THREE.Texture(image); + _this.texture.flipY = false; + _this.texture.needsUpdate = true; + return _this; + } + ThreeJsTexture.prototype.setFilters = function (minFilter, magFilter) { + this.texture.minFilter = ThreeJsTexture.toThreeJsTextureFilter(minFilter); + this.texture.magFilter = ThreeJsTexture.toThreeJsTextureFilter(magFilter); + }; + ThreeJsTexture.prototype.setWraps = function (uWrap, vWrap) { + this.texture.wrapS = ThreeJsTexture.toThreeJsTextureWrap(uWrap); + this.texture.wrapT = ThreeJsTexture.toThreeJsTextureWrap(vWrap); + }; + ThreeJsTexture.prototype.dispose = function () { + this.texture.dispose(); + }; + ThreeJsTexture.toThreeJsTextureFilter = function (filter) { + if (filter === spine.TextureFilter.Linear) + return THREE.LinearFilter; + else if (filter === spine.TextureFilter.MipMap) + return THREE.LinearMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapLinearNearest) + return THREE.LinearMipMapNearestFilter; + else if (filter === spine.TextureFilter.MipMapNearestLinear) + return THREE.NearestMipMapLinearFilter; + else if (filter === spine.TextureFilter.MipMapNearestNearest) + return THREE.NearestMipMapNearestFilter; + else if (filter === spine.TextureFilter.Nearest) + return THREE.NearestFilter; + else + throw new Error("Unknown texture filter: " + filter); + }; + ThreeJsTexture.toThreeJsTextureWrap = function (wrap) { + if (wrap === spine.TextureWrap.ClampToEdge) + return THREE.ClampToEdgeWrapping; + else if (wrap === spine.TextureWrap.MirroredRepeat) + return THREE.MirroredRepeatWrapping; + else if (wrap === spine.TextureWrap.Repeat) + return THREE.RepeatWrapping; + else + throw new Error("Unknown texture wrap: " + wrap); + }; + return ThreeJsTexture; + }(spine.Texture)); + threejs.ThreeJsTexture = ThreeJsTexture; + })(threejs = spine.threejs || (spine.threejs = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-threejs.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-threejs.js.map b/spine-ts/build/spine-threejs.js.map index 5402a4e3f..b52ae645d 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/ConstraintData.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/SkeletonBinary.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/VertexEffect.ts","../core/src/polyfills.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/vertexeffects/JitterEffect.ts","../core/src/vertexeffects/SwirlEffect.ts","../threejs/src/AssetManager.ts","../threejs/src/MeshBatcher.ts","../threejs/src/SkeletonMesh.ts","../threejs/src/ThreeJsTexture.ts"],"names":[],"mappings":";;;;;;;;;;;;;AA6BA,IAAO,KAAK,CAq/CX;AAr/CD,WAAO,KAAK;IAGX;QASC,mBAAa,IAAY,EAAE,SAA0B,EAAE,QAAgB;YACtE,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,SAAS,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;gBACxC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,+BAAW,GAAX,UAAa,EAAU;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QACrC,CAAC;QAOD,yBAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAa,EAAE,MAAoB,EAAE,KAAa,EAAE,KAAe,EAAE,SAAuB;YACtJ,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAElE,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;gBAC/B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACtB,IAAI,QAAQ,GAAG,CAAC;oBAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;aAC5C;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,KAAK,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,KAAK,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;QAIM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAgB;YAAhB,qBAAA,EAAA,QAAgB;YAC/E,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YACpC,IAAI,IAAI,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC;YACzB,OAAO,IAAI,EAAE;gBACZ,IAAI,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM;oBACzC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;;oBAElB,IAAI,GAAG,OAAO,CAAC;gBAChB,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBACzC,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B;QACF,CAAC;QAEM,sBAAY,GAAnB,UAAqB,MAAyB,EAAE,MAAc,EAAE,IAAY;YAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI;gBAChE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM;oBAAE,OAAO,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACF,gBAAC;IAAD,CAAC,AAhED,IAgEC;IAhEY,eAAS,YAgErB,CAAA;IA+BD,IAAY,QAsBX;IAtBD,WAAY,QAAQ;QAGnB,yCAAK,CAAA;QAML,yCAAK,CAAA;QAKL,6CAAO,CAAA;QAOP,qCAAG,CAAA;IACJ,CAAC,EAtBW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAsBnB;IAMD,IAAY,YAEX;IAFD,WAAY,YAAY;QACvB,iDAAK,CAAA;QAAE,mDAAM,CAAA;IACd,CAAC,EAFW,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAEvB;IAED,IAAY,YAOX;IAPD,WAAY,YAAY;QACvB,mDAAM,CAAA;QAAE,yDAAS,CAAA;QAAE,iDAAK,CAAA;QAAE,iDAAK,CAAA;QAC/B,2DAAU,CAAA;QAAE,iDAAK,CAAA;QAAE,mDAAM,CAAA;QACzB,iDAAK,CAAA;QAAE,yDAAS,CAAA;QAChB,+DAAY,CAAA;QAAE,8EAAmB,CAAA;QACjC,oFAAsB,CAAA;QAAE,kFAAqB,CAAA;QAAE,0EAAiB,CAAA;QAChE,wDAAQ,CAAA;IACT,CAAC,EAPW,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAOvB;IAGD;QAQC,uBAAa,UAAkB;YAC9B,IAAI,UAAU,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjF,CAAC;QAGD,qCAAa,GAAb;YACC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3D,CAAC;QAGD,iCAAS,GAAT,UAAW,UAAkB;YAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QAC5E,CAAC;QAGD,kCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAC7E,CAAC;QAID,oCAAY,GAAZ,UAAc,UAAkB;YAC/B,IAAI,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YACnD,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,aAAa,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM;gBAAE,OAAO,aAAa,CAAC,MAAM,CAAC;YAC9D,IAAI,IAAI,IAAI,aAAa,CAAC,OAAO;gBAAE,OAAO,aAAa,CAAC,OAAO,CAAC;YAChE,OAAO,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,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC9D,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;aACT;QACF,CAAC;QAGD,uCAAe,GAAf,UAAiB,UAAkB,EAAE,OAAe;YACnD,OAAO,GAAG,MAAA,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;YAC/C,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC;YACjD,IAAI,IAAI,IAAI,aAAa,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACzE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,OAAO,EAAE;oBACjB,IAAI,KAAK,SAAQ,EAAE,KAAK,SAAQ,CAAC;oBACjC,IAAI,CAAC,IAAI,KAAK,EAAE;wBACf,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,GAAG,CAAC,CAAC;qBACV;yBAAM;wBACN,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtB,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBACtB;oBACD,OAAO,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;iBACzE;aACD;YACD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QA1FM,oBAAM,GAAG,CAAC,CAAC;QAAQ,qBAAO,GAAG,CAAC,CAAC;QAAQ,oBAAM,GAAG,CAAC,CAAC;QAClD,yBAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QA4FjC,oBAAC;KAAA,AA9FD,IA8FC;IA9FqB,mBAAa,gBA8FlC,CAAA;IAGD;QAAoC,kCAAa;QAWhD,wBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;;QACpD,CAAC;QAED,sCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACnC,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,GAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;iBACpF;gBACD,OAAO;aACP;YAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE;gBAC3D,IAAI,GAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC7D,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAC,GAAG,KAAK,CAAC;wBAC/C,MAAM;oBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;oBACpB,KAAK,QAAQ,CAAC,OAAO;wBACpB,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACxC,GAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC3D,KAAK,QAAQ,CAAC,GAAG;wBAChB,IAAI,CAAC,QAAQ,IAAI,GAAC,GAAG,KAAK,CAAC;iBAC3B;gBACD,OAAO;aACP;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,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;YACxF,QAAQ,KAAK,EAAE;gBACf,KAAK,QAAQ,CAAC,KAAK;oBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxG,MAAM;gBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;gBACpB,KAAK,QAAQ,CAAC,OAAO;oBACpB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACzC,KAAK,QAAQ,CAAC,GAAG;oBAChB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;aACpF;QACF,CAAC;QA9EM,sBAAO,GAAG,CAAC,CAAC;QACZ,wBAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,4BAAa,GAAG,CAAC,CAAC,CAAC;QAC1C,uBAAQ,GAAG,CAAC,CAAC;QA6ErB,qBAAC;KAAA,AAhFD,CAAoC,aAAa,GAgFhD;IAhFY,oBAAc,iBAgF1B,CAAA;IAGD;QAAuC,qCAAa;QAWnD,2BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;;QAC3E,CAAC;QAED,yCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACrB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACrB,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wBACzC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBACzC;gBACD,OAAO;aACP;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBAC9D,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;aACrD;iBAAM;gBAEN,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;aACzD;YACD,QAAQ,KAAK,EAAE;gBACf,KAAK,QAAQ,CAAC,KAAK;oBAClB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACjC,MAAM;gBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;gBACpB,KAAK,QAAQ,CAAC,OAAO;oBACpB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,MAAM;gBACP,KAAK,QAAQ,CAAC,GAAG;oBAChB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBACpB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aACpB;QACF,CAAC;QA3EM,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;QA0E5B,wBAAC;KAAA,AA7ED,CAAuC,aAAa,GA6EnD;IA7EY,uBAAiB,oBA6E7B,CAAA;IAGD;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC/B,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;wBACxD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;iBACxD;gBACD,OAAO;aACP;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC1D,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;aACpE;iBAAM;gBAEN,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;aAC7E;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACpC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;iBACpC;qBAAM;oBACN,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;iBAChB;aACD;iBAAM;gBACN,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnB,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,EAAE;oBACrC,QAAQ,KAAK,EAAE;wBACf,KAAK,QAAQ,CAAC,KAAK;4BAClB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;4BACtB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;4BACtB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACrE,MAAM;wBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;wBACpB,KAAK,QAAQ,CAAC,OAAO;4BACpB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;4BACjB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;4BACjB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACrE,MAAM;wBACP,KAAK,QAAQ,CAAC,GAAG;4BAChB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;4BACjB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;4BACjB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;4BACnF,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;qBACnF;iBACD;qBAAM;oBACN,QAAQ,KAAK,EAAE;wBACf,KAAK,QAAQ,CAAC,KAAK;4BAClB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACpC,MAAM;wBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;wBACpB,KAAK,QAAQ,CAAC,OAAO;4BACpB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACjD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACjD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACpC,MAAM;wBACP,KAAK,QAAQ,CAAC,GAAG;4BAChB,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACzB,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;4BACzF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;qBACzF;iBACD;aACD;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AAlGD,CAAmC,iBAAiB,GAkGnD;IAlGY,mBAAa,gBAkGzB,CAAA;IAGD;QAAmC,iCAAiB;QACnD,uBAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC/B,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;wBACxD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;iBACxD;gBACD,OAAO;aACP;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC1D,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;aACjD;iBAAM;gBAEN,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;aACxD;YACD,QAAQ,KAAK,EAAE;gBACf,KAAK,QAAQ,CAAC,KAAK;oBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;oBAC3C,MAAM;gBACP,KAAK,QAAQ,CAAC,KAAK,CAAC;gBACpB,KAAK,QAAQ,CAAC,OAAO;oBACpB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAC5D,MAAM;gBACP,KAAK,QAAQ,CAAC,GAAG;oBAChB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC;aACzB;QACF,CAAC;QACF,oBAAC;IAAD,CAAC,AA1DD,CAAmC,iBAAiB,GA0DnD;IA1DY,mBAAa,gBA0DzB,CAAA;IAGD;QAAmC,iCAAa;QAW/C,uBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;;QACvE,CAAC;QAED,qCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACzC,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;wBAChD,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAC9F,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;iBAC9B;gBACD,OAAO;aACP;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC1D,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;aACrC;iBAAM;gBAEN,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;aACrD;YACD,IAAI,KAAK,IAAI,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBACvB;gBACJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK;oBAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjE,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;aACtG;QACF,CAAC;QA5EM,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;QA2ExD,oBAAC;KAAA,AA9ED,CAAmC,aAAa,GA8E/C;IA9EY,mBAAa,gBA8EzB,CAAA;IAGD;QAAsC,oCAAa;QAalD,0BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;;QAC1E,CAAC;QAED,wCAAa,GAAb;YACC,OAAO,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvD,CAAC;QAGD,mCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YACzH,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACpD,CAAC;QAED,gCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,KAAa,EAAE,KAAe,EAAE,SAAuB;YACvI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACzC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACjD,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC7G,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAC7G,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;wBACnC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC5G;gBACD,OAAO;aACP;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE;gBAC7D,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACxC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC1C,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;aAC1C;iBAAM;gBAEN,IAAI,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3E,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,EACtE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBAEpF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxD,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC3D,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;aAC3D;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAClC;iBAAM;gBACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9C,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAC5B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACvC;gBACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACtG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;aACjF;QACF,CAAC;QAjGM,wBAAO,GAAG,CAAC,CAAC;QACZ,0BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,uBAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QAAQ,wBAAO,GAAG,CAAC,CAAC,CAAC;QACvD,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,kBAAC,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QAAQ,mBAAE,GAAG,CAAC,CAAC;QA+FrG,uBAAC;KAAA,AAnGD,CAAsC,aAAa,GAmGlD;IAnGY,sBAAgB,mBAmG5B,CAAA;IAGD;QAUC,4BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,0CAAa,GAAb;YACC,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC;QAGD,0CAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YACvI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAC9B,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAChE,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;gBAC3G,OAAO;aACP;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACvD,IAAI,gBAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC9C,IAAI,CAAC,aAAa,CAAC,gBAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAc,CAAC,CAAC,CAAC;iBAC3G;gBACD,OAAO;aACP;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;;gBAE/B,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,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QACzG,CAAC;QACF,yBAAC;IAAD,CAAC,AA1DD,IA0DC;IA1DY,wBAAkB,qBA0D9B,CAAA;IAED,IAAI,KAAK,GAAuB,IAAI,CAAC;IAGrC;QAAoC,kCAAa;QAahD,wBAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAIjB;YAHA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,KAAI,CAAC,aAAa,GAAG,IAAI,KAAK,CAAoB,UAAU,CAAC,CAAC;YAC9D,IAAI,KAAK,IAAI,IAAI;gBAAE,KAAK,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;;QACpD,CAAC;QAED,sCAAa,GAAb;YACC,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5E,CAAC;QAID,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,IAAI,GAAS,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAC9B,IAAI,cAAc,GAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,cAAc,YAAY,MAAA,gBAAgB,CAAC,IAAI,CAAC,CAAoB,cAAe,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC;gBAAE,OAAO;YAEvI,IAAI,WAAW,GAAkB,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;gBAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAEpD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,gBAAgB,GAAqB,cAAc,CAAC;gBACxD,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;wBACvB,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,IAAI,KAAK,IAAI,CAAC,EAAE;4BACf,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;4BACvB,MAAM;yBACN;wBACD,IAAI,QAAM,GAAkB,MAAA,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;wBACzE,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;4BAEnC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;4BAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gCACnC,QAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;yBACrD;6BAAM;4BAEN,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;4BAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gCACnC,QAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;yBACpB;iBACD;gBACD,OAAO;aACP;YAED,IAAI,MAAM,GAAkB,MAAA,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACzE,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACtC,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpD,IAAI,KAAK,IAAI,CAAC,EAAE;oBACf,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;wBAC1B,IAAI,gBAAgB,GAAG,cAAkC,CAAC;wBAC1D,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;4BAEnC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;4BAC9C,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE,EAAE;gCACrC,MAAM,CAAC,GAAC,CAAC,IAAI,YAAY,CAAC,GAAC,CAAC,GAAG,aAAa,CAAC,GAAC,CAAC,CAAC;6BAChD;yBACD;6BAAM;4BAEN,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE;gCACnC,MAAM,CAAC,GAAC,CAAC,IAAI,YAAY,CAAC,GAAC,CAAC,CAAC;yBAC9B;qBACD;yBAAM;wBACN,MAAA,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;qBACzD;iBACD;qBAAM;oBACN,QAAQ,KAAK,EAAE;wBACf,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACpB,IAAI,kBAAgB,GAAG,cAAkC,CAAC;4BAC1D,IAAI,kBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;gCAEnC,IAAI,aAAa,GAAG,kBAAgB,CAAC,QAAQ,CAAC;gCAC9C,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE,EAAE;oCACrC,IAAI,KAAK,GAAG,aAAa,CAAC,GAAC,CAAC,CAAC;oCAC7B,MAAM,CAAC,GAAC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,CAAC,GAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;iCACtD;6BACD;iCAAM;gCAEN,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE;oCACnC,MAAM,CAAC,GAAC,CAAC,GAAG,YAAY,CAAC,GAAC,CAAC,GAAG,KAAK,CAAC;6BACrC;4BACD,MAAM;yBACN;wBACD,KAAK,QAAQ,CAAC,KAAK,CAAC;wBACpB,KAAK,QAAQ,CAAC,OAAO;4BACpB,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE;gCACnC,MAAM,CAAC,GAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAC,CAAC,GAAG,MAAM,CAAC,GAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACpD,MAAM;wBACP,KAAK,QAAQ,CAAC,GAAG;4BAChB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;4BAC1D,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;gCAEnC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;gCAC9C,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE,EAAE;oCACrC,MAAM,CAAC,GAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAC,CAAC,GAAG,aAAa,CAAC,GAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iCAC1D;6BACD;iCAAM;gCAEN,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE;oCACnC,MAAM,CAAC,GAAC,CAAC,IAAI,YAAY,CAAC,GAAC,CAAC,GAAG,KAAK,CAAC;6BACtC;qBACD;iBACD;gBACD,OAAO;aACP;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,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC1B,IAAI,gBAAgB,GAAG,cAAkC,CAAC;oBAC1D,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;wBAEnC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;wBAC9C,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE,EAAE;4BACrC,IAAI,IAAI,GAAG,YAAY,CAAC,GAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,GAAC,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,GAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,aAAa,CAAC,GAAC,CAAC,CAAC;yBAC1E;qBACD;yBAAM;wBAEN,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,WAAW,EAAE,GAAC,EAAE,EAAE;4BACrC,IAAI,IAAI,GAAG,YAAY,CAAC,GAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,GAAC,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,GAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;yBACvD;qBACD;iBACD;qBAAM;oBACN,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;wBACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC,IAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;qBACtD;iBACD;aACD;iBAAM;gBACN,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACpB,IAAI,kBAAgB,GAAG,cAAkC,CAAC;wBAC1D,IAAI,kBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;4BAEnC,IAAI,aAAa,GAAG,kBAAgB,CAAC,QAAQ,CAAC;4BAC9C,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;gCACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,IAAC,CAAC,CAAC;gCACrD,MAAM,CAAC,IAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;6BAChF;yBACD;6BAAM;4BAEN,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;gCACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,CAAC;gCAC3B,MAAM,CAAC,IAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;6BAChE;yBACD;wBACD,MAAM;qBACN;oBACD,KAAK,QAAQ,CAAC,KAAK,CAAC;oBACpB,KAAK,QAAQ,CAAC,OAAO;wBACpB,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;4BACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,CAAC;4BAC3B,MAAM,CAAC,IAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,IAAC,CAAC,CAAC,GAAG,KAAK,CAAC;yBAC7E;wBACD,MAAM;oBACP,KAAK,QAAQ,CAAC,GAAG;wBAChB,IAAI,gBAAgB,GAAG,cAAkC,CAAC;wBAC1D,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE;4BAEnC,IAAI,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC;4BAC9C,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;gCACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,CAAC;gCAC3B,MAAM,CAAC,IAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,aAAa,CAAC,IAAC,CAAC,CAAC,GAAG,KAAK,CAAC;6BACpF;yBACD;6BAAM;4BAEN,KAAK,IAAI,IAAC,GAAG,CAAC,EAAE,IAAC,GAAG,WAAW,EAAE,IAAC,EAAE,EAAE;gCACrC,IAAI,IAAI,GAAG,YAAY,CAAC,IAAC,CAAC,CAAC;gCAC3B,MAAM,CAAC,IAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAC,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC;6BACjE;yBACD;iBACD;aACD;QACF,CAAC;QACF,qBAAC;IAAD,CAAC,AAhND,CAAoC,aAAa,GAgNhD;IAhNY,oBAAc,iBAgN1B,CAAA;IAGD;QAOC,uBAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAQ,UAAU,CAAC,CAAC;QAC5C,CAAC;QAED,qCAAa,GAAb;YACC,OAAO,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,CAAC;QAGD,qCAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,WAAW,IAAI,IAAI;gBAAE,OAAO;YAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAEpC,IAAI,QAAQ,GAAG,IAAI,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBACvF,QAAQ,GAAG,CAAC,CAAC,CAAC;aACd;iBAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC5C,OAAO;YACR,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;gBACvB,KAAK,GAAG,CAAC,CAAC;iBACN;gBACJ,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;oBACjB,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS;wBAAE,MAAM;oBAC1C,KAAK,EAAE,CAAC;iBACR;aACD;YACD,OAAO,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,AAtDD,IAsDC;IAtDY,mBAAa,gBAsDzB,CAAA;IAGD;QAOC,2BAAa,UAAkB;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAgB,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,yCAAa,GAAb;YACC,OAAO,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,CAAC;QAGD,yCAAa,GAAb;YACC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,CAAC;QAKD,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,SAAS,GAAgB,QAAQ,CAAC,SAAS,CAAC;YAChD,IAAI,KAAK,GAAgB,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAChE,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjF,OAAO;aACP;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK;oBAAE,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzI,OAAO;aACP;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;;gBAE1B,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,IAAI,qBAAqB,IAAI,IAAI;gBAChC,MAAA,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;iBAClD;gBACJ,KAAK,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;aAChD;QACF,CAAC;QACF,wBAAC;IAAD,CAAC,AAzDD,IAyDC;IAzDY,uBAAiB,oBAyD7B,CAAA;IAID;QAA0C,wCAAa;QAWtD,8BAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;;QAC9E,CAAC;QAED,4CAAa,GAAb;YACC,OAAO,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnE,CAAC;QAGD,uCAAQ,GAAR,UAAU,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,QAAgB,EAAE,aAAqB,EAAE,QAAiB,EAAE,OAAgB;YACpI,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,QAAQ,CAAC,GAAG,QAAQ,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,oCAAK,GAAL,UAAO,QAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,WAAyB,EAAE,KAAa,EAAE,KAAe,EAAE,SAAuB;YAC5I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAiB,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;wBACrC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC/C,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;wBACzD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC/C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;wBAC7C,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBACjE,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;wBAChF,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;wBACzD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC/C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC7C;gBACD,OAAO;aACP;YAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,EAAE;gBACjE,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAC5B,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,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ;0BAC3C,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;oBACnG,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,EAAE;wBACrC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;wBACzD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC/C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;qBAC7C;yBAAM;wBACN,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;wBAC3F,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACtF,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;qBACpF;iBACD;qBAAM;oBACN,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACnG,UAAU,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;oBAClH,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,EAAE;wBACpC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;wBAC5F,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACtF,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;qBACpF;iBACD;gBACD,OAAO;aACP;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,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAClE,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,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC5B,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,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ;sBAC3C,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACxH,IAAI,SAAS,IAAI,YAAY,CAAC,MAAM,EAAE;oBACrC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;oBACzD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC/C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC7C;qBAAM;oBACN,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;oBACpF,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC9E,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC5E;aACD;iBAAM;gBACN,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,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBACvI,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,EAAE;oBACpC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;oBACpF,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC9E,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC5E;aACD;QACF,CAAC;QA7GM,4BAAO,GAAG,CAAC,CAAC;QACZ,8BAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,6BAAQ,GAAG,CAAC,CAAC,CAAC;QAAQ,kCAAa,GAAG,CAAC,CAAC,CAAC;QAAQ,wCAAmB,GAAG,CAAC,CAAC,CAAC;QAAQ,kCAAa,GAAG,CAAC,CAAC,CAAC;QAAQ,iCAAY,GAAG,CAAC,CAAC,CAAC;QACtJ,wBAAG,GAAG,CAAC,CAAC;QAAQ,6BAAQ,GAAG,CAAC,CAAC;QAAQ,mCAAc,GAAG,CAAC,CAAC;QAAQ,6BAAQ,GAAG,CAAC,CAAC;QAAQ,4BAAO,GAAG,CAAC,CAAC;QA4GzG,2BAAC;KAAA,AA/GD,CAA0C,aAAa,GA+GtD;IA/GY,0BAAoB,uBA+GhC,CAAA;IAID;QAAiD,+CAAa;QAW7D,qCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;;QACrF,CAAC;QAED,mDAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEzB,IAAI,UAAU,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnG,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC3B,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBACtC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;wBAC5C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;wBACxE,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;wBACjF,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;wBACrE,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;iBACrE;gBACD,OAAO;aACP;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;YACpD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC,EAAE;gBACxE,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;aAC3D;iBAAM;gBAEN,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;aAC/E;YACD,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC5B,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;aACtE;iBAAM;gBACN,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;aAC7D;QACF,CAAC;QAvFM,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;QAsF7E,kCAAC;KAAA,AAzFD,CAAiD,aAAa,GAyF7D;IAzFY,iCAA2B,8BAyFvC,CAAA;IAGD;QAAoD,kDAAa;QAWhE,wCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;;QACxF,CAAC;QAED,sDAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC/C,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;iBAChF;gBACD,OAAO;aACP;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC;gBACzE,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;iBACzE;gBAEJ,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;aACxF;YACD,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK;gBAC1B,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;;gBAE/F,UAAU,CAAC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAClE,CAAC;QA1DM,sCAAO,GAAG,CAAC,CAAC;QACZ,wCAAS,GAAG,CAAC,CAAC,CAAC;QAAQ,yCAAU,GAAG,CAAC,CAAC,CAAC;QACvC,oCAAK,GAAG,CAAC,CAAC;QAyDlB,qCAAC;KAAA,AA5DD,CAAoD,aAAa,GA4DhE;IA5DY,oCAA8B,iCA4D1C,CAAA;IAGD;QAAmD,iDAA8B;QAChF,uCAAa,UAAkB;mBAC9B,kBAAM,UAAU,CAAC;QAClB,CAAC;QAED,qDAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;wBAC7C,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;iBAC7E;gBACD,OAAO;aACP;YAED,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,OAAO,CAAC;gBACxE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;iBACvE;gBAEJ,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;aACrF;YAED,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK;gBAC1B,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;;gBAE3F,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC/D,CAAC;QACF,oCAAC;IAAD,CAAC,AA3CD,CAAmD,8BAA8B,GA2ChF;IA3CY,mCAA6B,gCA2CzC,CAAA;IAID;QAA+C,6CAAa;QAW3D,mCAAa,UAAkB;YAA/B,YACC,kBAAM,UAAU,CAAC,SAEjB;YADA,KAAI,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;;QACnF,CAAC;QAED,iDAAa,GAAb;YACC,OAAO,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,KAAe,EAAE,SAAuB;YAC5I,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,UAAU,GAAmB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpF,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACf,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;wBACvD,OAAO;oBACR,KAAK,QAAQ,CAAC,KAAK;wBAClB,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;wBACnF,UAAU,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;iBAC5F;gBACD,OAAO;aACP;YAED,IAAI,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,EAAE;gBACtE,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;aAC7E;iBAAM;gBAEN,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;aACzF;YAED,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC5B,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;aAC5G;iBAAM;gBACN,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;aACzE;QACF,CAAC;QApEM,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;QAmEzC,gCAAC;KAAA,AAtED,CAA+C,aAAa,GAsE3D;IAtEY,+BAAyB,4BAsErC,CAAA;AACF,CAAC,EAr/CM,KAAK,KAAL,KAAK,QAq/CX;ACr/CD,IAAO,KAAK,CAmmCX;AAnmCD,WAAO,KAAK;IAMX;QA4DC,wBAAa,IAAwB;YAhBrC,WAAM,GAAG,IAAI,KAAK,EAAc,CAAC;YAMjC,cAAS,GAAG,CAAC,CAAC;YAEd,WAAM,GAAG,IAAI,KAAK,EAAS,CAAC;YAC5B,cAAS,GAAG,IAAI,KAAK,EAA0B,CAAC;YAChD,UAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,gBAAW,GAAG,IAAI,MAAA,MAAM,EAAE,CAAC;YAC3B,sBAAiB,GAAG,KAAK,CAAC;YAE1B,mBAAc,GAAG,IAAI,MAAA,IAAI,CAAa,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAAC;YAG7D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGD,+BAAM,GAAN,UAAQ,KAAa;YACpB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,OAAO,IAAI,IAAI;oBAAE,SAAS;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,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;oBACtB,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;oBAC9B,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;wBAAE,SAAS;oBAChC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;iBAClB;gBAED,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,IAAI,IAAI,IAAI,IAAI,EAAE;oBAEjB,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9C,IAAI,QAAQ,IAAI,CAAC,EAAE;wBAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBACf,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;wBACvG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;wBAClC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC/B,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;4BAC/B,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;4BACtB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;yBACvB;wBACD,SAAS;qBACT;iBACD;qBAAM,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;oBAC/E,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,SAAS;iBACT;gBACD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAExE,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC1B,IAAI,IAAI,IAAI,IAAI;wBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACvC,OAAO,IAAI,IAAI,IAAI,EAAE;wBACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;qBACvB;iBACD;gBAED,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;aAClC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAGD,yCAAgB,GAAhB,UAAkB,EAAc,EAAE,KAAa;YAC9C,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YAE9B,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAElD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAGpC,IAAI,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,WAAW,EAAE;gBAEnD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE;oBAChD,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAChC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;wBAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;oBAC3D,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACrB;gBACD,OAAO,QAAQ,CAAC;aAChB;YAED,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC;YACpB,OAAO,KAAK,CAAC;QACd,CAAC;QAKD,8BAAK,GAAL,UAAO,QAAkB;YACxB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,iBAAiB;gBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEtD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;oBAAE,SAAS;gBACnD,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,KAAK,GAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAGjE,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxB,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI;oBAC7B,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;qBAClD,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI;oBACrE,GAAG,GAAG,CAAC,CAAC;gBAGT,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACtF,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;gBACvD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,MAAA,QAAQ,CAAC,GAAG,EAAE;oBAClD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE;wBAI1C,MAAA,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBACxC,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAA,YAAY,CAAC,KAAK,CAAC,CAAC;qBACpG;iBACD;qBAAM;oBACN,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;oBAExC,IAAI,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;oBACvD,IAAI,UAAU;wBAAE,MAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxF,IAAI,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;oBAElD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE;wBAC1C,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC7B,IAAI,aAAa,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,QAAQ,CAAC,KAAK,CAAC;wBAC7H,IAAI,QAAQ,YAAY,MAAA,cAAc,EAAE;4BACvC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;yBACxH;6BAAM;4BAEN,MAAA,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BACxC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,MAAA,YAAY,CAAC,KAAK,CAAC,CAAC;yBACvG;qBACD;iBACD;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC;gBAC1C,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;aAC1C;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,wCAAe,GAAf,UAAiB,EAAc,EAAE,QAAkB,EAAE,KAAe;YACnE,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEzE,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE;gBACxB,GAAG,GAAG,CAAC,CAAC;gBACR,IAAI,KAAK,IAAI,MAAA,QAAQ,CAAC,KAAK;oBAAE,KAAK,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC;aACpD;iBAAM;gBACN,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClC,IAAI,GAAG,GAAG,CAAC;oBAAE,GAAG,GAAG,CAAC,CAAC;gBACrB,IAAI,KAAK,IAAI,MAAA,QAAQ,CAAC,KAAK;oBAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;aACnD;YAED,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,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,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACjF,IAAI,KAAK,IAAI,MAAA,QAAQ,CAAC,GAAG,EAAE;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE;oBACrC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAA,YAAY,CAAC,MAAM,CAAC,CAAC;aAC1G;iBAAM;gBACN,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrC,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAE3C,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC;gBACpD,IAAI,UAAU;oBAAE,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBACrF,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAE/C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,SAAS,GAAG,MAAA,YAAY,CAAC,MAAM,CAAC;oBACpC,IAAI,aAAa,SAAU,CAAC;oBAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;wBACzD,KAAK,cAAc,CAAC,UAAU;4BAC7B,aAAa,GAAG,KAAK,CAAC;4BACtB,IAAI,CAAC,WAAW,IAAI,QAAQ,YAAY,MAAA,kBAAkB,EAAE;gCAC3D,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ;oCAAE,SAAS;gCACrF,aAAa,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC;6BAC/B;4BACD,IAAI,CAAC,SAAS,IAAI,QAAQ,YAAY,MAAA,iBAAiB;gCAAE,SAAS;4BAClE,KAAK,GAAG,QAAQ,CAAC;4BACjB,MAAM;wBACP,KAAK,cAAc,CAAC,KAAK;4BACxB,aAAa,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC;4BAC/B,KAAK,GAAG,QAAQ,CAAC;4BACjB,MAAM;wBACP,KAAK,cAAc,CAAC,IAAI;4BACvB,aAAa,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC;4BAC/B,KAAK,GAAG,SAAS,CAAC;4BAClB,MAAM;wBACP;4BACC,aAAa,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC;4BAC/B,IAAI,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;4BACjC,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;4BAC3E,MAAM;qBACN;oBACD,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;oBACzB,IAAI,QAAQ,YAAY,MAAA,cAAc;wBACrC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;yBACrH;wBAEJ,MAAA,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC1C,IAAI,aAAa,IAAI,MAAA,QAAQ,CAAC,KAAK,EAAE;4BACpC,IAAI,QAAQ,YAAY,MAAA,kBAAkB,EAAE;gCAC3C,IAAI,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ;oCAAE,SAAS,GAAG,MAAA,YAAY,CAAC,KAAK,CAAC;6BAC1H;iCAAM,IAAI,QAAQ,YAAY,MAAA,iBAAiB,EAAE;gCACjD,IAAI,SAAS;oCAAE,SAAS,GAAG,MAAA,YAAY,CAAC,KAAK,CAAC;6BAC9C;yBACD;wBACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;qBAChG;iBACD;aACD;YAED,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAEpC,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,4CAAmB,GAAnB,UAAqB,QAAkB,EAAE,QAAkB,EAAE,IAAY,EAAE,KAAa,EAAE,KAAe,EACxG,iBAAgC,EAAE,CAAS,EAAE,UAAmB;YAEhE,IAAI,UAAU;gBAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAA,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtE,OAAO;aACP;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,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACnB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrB,QAAQ,KAAK,EAAE;oBACd,KAAK,MAAA,QAAQ,CAAC,KAAK;wBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACpC;wBACC,OAAO;oBACR,KAAK,MAAA,QAAQ,CAAC,KAAK;wBAClB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACnB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACzB;aACD;iBAAM;gBACN,EAAE,GAAG,KAAK,IAAI,MAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClE,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAA,cAAc,CAAC,OAAO,CAAC;oBACzD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAA,cAAc,CAAC,aAAa,CAAC,CAAC;qBAC3E;oBAEJ,IAAI,KAAK,GAAG,MAAA,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC;oBACzE,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,aAAa,CAAC,CAAC;oBAChE,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAC5D,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oBAElF,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAA,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;oBAC5D,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC5D,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtD,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;iBAC5D;aACD;YAGD,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAChE,IAAI,IAAI,IAAI,CAAC,EAAE;gBACd,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;aAC7B;iBAAM;gBACN,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;gBAChC,IAAI,UAAU,EAAE;oBACf,SAAS,GAAG,CAAC,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;iBAChB;qBAAM;oBACN,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACjC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpC;gBACD,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC;gBAE7C,IAAI,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;oBAErF,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG;wBAAE,SAAS,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9E,GAAG,GAAG,OAAO,CAAC;iBACd;gBACD,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;gBAC3C,IAAI,GAAG,IAAI,OAAO;oBAAE,KAAK,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/D,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC7B;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,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,OAAK,CAAC,IAAI,GAAG,gBAAgB;oBAAE,MAAM;gBACzC,IAAI,OAAK,CAAC,IAAI,GAAG,YAAY;oBAAE,SAAS;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;aAC/B;YAGD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,KAAK,CAAC,IAAI;gBACb,QAAQ,GAAG,QAAQ,IAAI,CAAC,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;;gBAE1E,QAAQ,GAAG,aAAa,IAAI,YAAY,IAAI,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;YAChF,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAGzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClB,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,OAAK,CAAC,IAAI,GAAG,cAAc;oBAAE,SAAS;gBAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC;QACF,CAAC;QAMD,oCAAW,GAAX;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAMD,mCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO;YAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO;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;gBACZ,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC5B,IAAI,IAAI,IAAI,IAAI;oBAAE,MAAM;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,KAAK,GAAG,IAAI,CAAC;aACb;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAEvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,mCAAU,GAAV,UAAY,KAAa,EAAE,OAAmB,EAAE,SAAkB;YACjE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAE7B,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,IAAI,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAGpB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;oBAClD,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBAExE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAKD,qCAAY,GAAZ,UAAc,UAAkB,EAAE,aAAqB,EAAE,IAAa;YACrE,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACpE,IAAI,SAAS,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAQD,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa;YACxE,IAAI,SAAS,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACpE,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE;oBAEhC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;oBAC7B,SAAS,GAAG,KAAK,CAAC;iBAClB;;oBACA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3B;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACd,CAAC;QAKD,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,IAAI,SAAS,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,aAAa,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QAUD,yCAAgB,GAAhB,UAAkB,UAAkB,EAAE,SAAoB,EAAE,IAAa,EAAE,KAAa;YACvF,IAAI,SAAS,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEpE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;oBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClB;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/D,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACnB;iBAAM;gBACN,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,KAAK,IAAI,CAAC,EAAE;oBACf,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;oBACvD,IAAI,QAAQ,IAAI,CAAC,EAAE;wBAClB,IAAI,IAAI,CAAC,IAAI;4BACZ,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;4BAE5D,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC7C,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;qBACrD;;wBACA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;iBACxB;aACD;YAED,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,OAAO,KAAK,CAAC;QACd,CAAC;QAgBD,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,OAAO,KAAK,CAAC;QACd,CAAC;QAaD,0CAAiB,GAAjB,UAAmB,UAAkB,EAAE,WAAmB,EAAE,KAAa;YACxE,IAAI,KAAK,IAAI,CAAC;gBAAE,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,OAAO,KAAK,CAAC;QACd,CAAC;QAID,2CAAkB,GAAlB,UAAoB,WAAmB;YACtC,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,OAAO,IAAI,IAAI;oBAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;aAC7E;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAED,sCAAa,GAAb,UAAe,KAAa;YAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAA,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAGD,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;YAClB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;YAE3B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC9B,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAE7B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC;YACxC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;YAE7B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAClB,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,KAAK,CAAC,QAAQ,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC;YAClC,OAAO,KAAK,CAAC;QACd,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB;YAC7B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,OAAO,IAAI,IAAI,IAAI,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aACjB;YACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,2CAAkB,GAAlB;YACC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAE/B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,KAAK,IAAI,IAAI;oBAAE,SAAS;gBAC5B,OAAO,KAAK,CAAC,UAAU,IAAI,IAAI;oBAC9B,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;gBAE1B,GAAG;oBACF,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAA,QAAQ,CAAC,GAAG;wBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxF,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;iBACvB,QAAQ,KAAK,IAAI,IAAI,EAAC;aACvB;YAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,KAAK,IAAI,IAAI,EAAE;oBACrB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC3B,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;iBACzB;aACD;QACF,CAAC;QAED,oCAAW,GAAX,UAAa,KAAiB;YAC7B,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;YACxB,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1C,IAAI,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACtD,IAAI,YAAY,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAC1E,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,cAAc,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;YAC/E,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAEnC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;oBACxC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC9C,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;iBACtC;gBACD,OAAO;aACP;YAED,KAAK,EACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;qBACxC,IAAI,EAAE,IAAI,IAAI,IAAI,QAAQ,YAAY,MAAA,kBAAkB,IAAI,QAAQ,YAAY,MAAA,iBAAiB;uBAClG,QAAQ,YAAY,MAAA,aAAa,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBACvE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;iBACvC;qBAAM;oBACN,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;wBAChE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;4BAAE,SAAS;wBAC7C,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;4BAC1B,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC;4BAC1C,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;4BACzB,SAAS,KAAK,CAAC;yBACf;wBACD,MAAM;qBACN;oBACD,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;iBACtC;aACD;QACF,CAAC;QAED,uCAAc,GAAd,UAAgB,KAAiB;YAChC,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1C,IAAI,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;YACtD,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACtC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,MAAA,kBAAkB,EAAE;oBAC/C,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAuB,CAAC;oBAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAAE,YAAY,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC;iBACrF;aACD;QACF,CAAC;QAGD,mCAAU,GAAV,UAAY,UAAkB;YAC7B,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAClD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAGD,oCAAW,GAAX,UAAa,QAAgC;YAC5C,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAGD,uCAAc,GAAd;YACC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAKD,mDAA0B,GAA1B;YACC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QA7vBM,6BAAc,GAAG,IAAI,MAAA,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAKjD,yBAAU,GAAG,CAAC,CAAC;QAKf,oBAAK,GAAG,CAAC,CAAC;QAOV,mBAAI,GAAG,CAAC,CAAC;QAaT,uBAAQ,GAAG,CAAC,CAAC;QAOb,uBAAQ,GAAG,CAAC,CAAC;QAytBrB,qBAAC;KAAA,AA/vBD,IA+vBC;IA/vBY,oBAAc,iBA+vB1B,CAAA;IAKD;QAAA;YAkJC,aAAQ,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC;YAC5B,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,oBAAe,GAAG,IAAI,KAAK,EAAc,CAAC;YAC1C,sBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QA+CzC,CAAC;QA7CA,0BAAK,GAAL;YACC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAKD,qCAAgB,GAAhB;YACC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;gBACvD,IAAI,QAAQ,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC,cAAc,CAAC;gBAC9C,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;aACzD;YACD,OAAO,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;QAKD,+BAAU,GAAV;YACC,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAClE,CAAC;QASD,4CAAuB,GAAvB;YACC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QACF,iBAAC;IAAD,CAAC,AApMD,IAoMC;IApMY,gBAAU,aAoMtB,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,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO;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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC3C,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAc,CAAC;gBACnC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAe,CAAC;gBACzC,QAAQ,IAAI,EAAE;oBACd,KAAK,SAAS,CAAC,KAAK;wBACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK;4BAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAChF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrD,MAAM;oBACP,KAAK,SAAS,CAAC,SAAS;wBACvB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS;4BAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACxF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC7D,MAAM;oBACP,KAAK,SAAS,CAAC,GAAG;wBACjB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG;4BAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC5E,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAElD,KAAK,SAAS,CAAC,OAAO;wBACrB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO;4BAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACpF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1C,MAAM;oBACP,KAAK,SAAS,CAAC,QAAQ;wBACtB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ;4BAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACtF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3D,MAAM;oBACP,KAAK,SAAS,CAAC,KAAK;wBACnB,IAAI,OAAK,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,CAAC;wBACtC,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK;4BAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBACvF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE;4BAC3C,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK;gCAAE,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;wBAC5D,MAAM;iBACN;aACD;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,0BAAK,GAAL;YACC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACF,iBAAC;IAAD,CAAC,AA/FD,IA+FC;IA/FY,gBAAU,aA+FtB,CAAA;IAED,IAAY,SAEX;IAFD,WAAY,SAAS;QACpB,2CAAK,CAAA;QAAE,mDAAS,CAAA;QAAE,uCAAG,CAAA;QAAE,+CAAO,CAAA;QAAE,iDAAQ,CAAA;QAAE,2CAAK,CAAA;IAChD,CAAC,EAFW,SAAS,GAAT,eAAS,KAAT,eAAS,QAEpB;IA6BD;QAAA;QAkBA,CAAC;QAjBA,qCAAK,GAAL,UAAO,KAAiB;QACxB,CAAC;QAED,yCAAS,GAAT,UAAW,KAAiB;QAC5B,CAAC;QAED,mCAAG,GAAH,UAAK,KAAiB;QACtB,CAAC;QAED,uCAAO,GAAP,UAAS,KAAiB;QAC1B,CAAC;QAED,wCAAQ,GAAR,UAAU,KAAiB;QAC3B,CAAC;QAED,qCAAK,GAAL,UAAO,KAAiB,EAAE,KAAY;QACtC,CAAC;QACF,4BAAC;IAAD,CAAC,AAlBD,IAkBC;IAlBqB,2BAAqB,wBAkB1C,CAAA;AACF,CAAC,EAnmCM,KAAK,KAAL,KAAK,QAmmCX;ACnmCD,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK;IAGX;QASC,4BAAa,YAA0B;YALvC,uBAAkB,GAAgB,EAAG,CAAC;YAGtC,eAAU,GAAG,CAAC,CAAC;YAGd,IAAI,YAAY,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAClC,CAAC;QAKD,mCAAM,GAAN,UAAQ,QAAgB,EAAE,MAAc,EAAE,QAAgB;YACzD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;YACtE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;QAKD,uCAAU,GAAV,UAAY,IAAe,EAAE,EAAa,EAAE,QAAgB;YAC3D,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,EAAE,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzC,CAAC;QAID,mCAAM,GAAN,UAAQ,IAAe,EAAE,EAAa;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;YACpC,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACzC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,CAAC;QACF,yBAAC;IAAD,CAAC,AA1CD,IA0CC;IA1CY,wBAAkB,qBA0C9B,CAAA;AACF,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,IAAO,KAAK,CA8OX;AA9OD,WAAO,KAAK;IACX;QASC,sBAAa,aAA+C,EAAE,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YAN7E,WAAM,GAAa,EAAE,CAAC;YACtB,WAAM,GAAgB,EAAE,CAAC;YACzB,WAAM,GAAG,CAAC,CAAC;YACX,WAAM,GAAG,CAAC,CAAC;YACX,gBAAW,GAAgB,EAAE,CAAC;YAGrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAEO,mCAAY,GAApB,UAAsB,GAAW,EAAE,OAA+B,EAAE,KAAqD;YACxH,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,GAAG;gBAChB,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;oBAC1B,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC9B;qBAAM;oBACN,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC5C;YACF,CAAC,CAAA;YACD,OAAO,CAAC,OAAO,GAAG;gBACjB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC,CAAA;YACD,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAEO,qCAAc,GAAtB,UAAwB,GAAW,EAAE,OAAmC,EAAE,KAAqD;YAC9H,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,aAAa,CAAC;YACrC,OAAO,CAAC,MAAM,GAAG;gBAChB,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;oBAC1B,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,QAAuB,CAAC,CAAC,CAAC;iBACzD;qBAAM;oBACN,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC5C;YACF,CAAC,CAAA;YACD,OAAO,CAAC,OAAO,GAAG;gBACjB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC,CAAA;YACD,OAAO,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,oCAAa,GAAb,UAAc,IAAY,EAAE,IAAY;YACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACjD,CAAC;QAED,iCAAU,GAAV,UAAW,IAAY,EACtB,OAA0D,EAC1D,KAAmD;YAFpD,iBAiBC;YAhBA,wBAAA,EAAA,cAA0D;YAC1D,sBAAA,EAAA,YAAmD;YACnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAC,IAAgB;gBAC1C,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACzB,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,EAAE,UAAC,KAAa,EAAE,YAAoB;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,0BAAwB,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC;gBACtF,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,0BAAwB,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC,CAAC;gBAC1F,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,+BAAQ,GAAR,UAAS,IAAY,EACpB,OAAoD,EACpD,KAAmD;YAFpD,iBAiBC;YAhBA,wBAAA,EAAA,cAAoD;YACpD,sBAAA,EAAA,YAAmD;YACnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAC,IAAY;gBACpC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACzB,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,EAAE,UAAC,KAAa,EAAE,YAAoB;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC;gBACpF,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,wBAAsB,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC,CAAC;gBACxF,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,kCAAW,GAAX,UAAa,IAAY,EACxB,OAA+D,EAC/D,KAAmD;YAFpD,iBAuBC;YAtBA,wBAAA,EAAA,cAA+D;YAC/D,sBAAA,EAAA,YAAmD;YACnD,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAC9B,GAAG,CAAC,MAAM,GAAG,UAAC,EAAE;gBACf,IAAI,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;gBACnC,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,OAAO;oBAAE,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,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,yBAAuB,IAAM,CAAC,CAAC;YACvD,CAAC,CAAA;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1D,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,uCAAgB,GAAhB,UAAkB,IAAY,EAC7B,OAA2D,EAC3D,KAAmD;YAFpD,iBA2EC;YA1EA,wBAAA,EAAA,cAA2D;YAC3D,sBAAA,EAAA,YAAmD;YAEnD,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAC,SAAiB;gBACzC,IAAI,WAAW,GAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpC,IAAI,UAAU,GAAG,IAAI,KAAK,EAAU,CAAC;gBACrC,IAAI;oBACH,IAAI,KAAK,GAAG,IAAI,MAAA,YAAY,CAAC,SAAS,EAAE,UAAC,IAAY;wBACpD,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;wBAC3D,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAqB,CAAC;wBAC9D,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;wBACjB,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;wBAClB,OAAO,IAAI,MAAA,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACX,IAAI,EAAE,GAAG,CAAU,CAAC;oBACpB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,iCAA+B,IAAI,UAAK,EAAE,CAAC,OAAS,CAAC;oBACzE,IAAI,KAAK;wBAAE,KAAK,CAAC,IAAI,EAAE,iCAA+B,IAAI,UAAK,EAAE,CAAC,OAAS,CAAC,CAAC;oBAC7E,KAAI,CAAC,MAAM,EAAE,CAAC;oBACd,KAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;iBACP;wCAEQ,SAAS;oBACjB,IAAI,aAAa,GAAG,KAAK,CAAC;oBAC1B,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAC,SAAiB,EAAE,KAAuB;wBACtE,WAAW,CAAC,KAAK,EAAE,CAAC;wBAEpB,IAAI,WAAW,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE;4BAC3C,IAAI,CAAC,aAAa,EAAE;gCACnB,IAAI;oCACH,IAAI,KAAK,GAAG,IAAI,MAAA,YAAY,CAAC,SAAS,EAAE,UAAC,IAAY;wCACpD,OAAO,KAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;oCAC5D,CAAC,CAAC,CAAC;oCACH,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oCAC1B,IAAI,OAAO;wCAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oCAClC,KAAI,CAAC,MAAM,EAAE,CAAC;oCACd,KAAI,CAAC,MAAM,EAAE,CAAC;iCACd;gCAAC,OAAO,CAAC,EAAE;oCACX,IAAI,EAAE,GAAG,CAAU,CAAC;oCACpB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,iCAA+B,IAAI,UAAK,EAAE,CAAC,OAAS,CAAC;oCACzE,IAAI,KAAK;wCAAE,KAAK,CAAC,IAAI,EAAE,iCAA+B,IAAI,UAAK,EAAE,CAAC,OAAS,CAAC,CAAC;oCAC7E,KAAI,CAAC,MAAM,EAAE,CAAC;oCACd,KAAI,CAAC,MAAM,EAAE,CAAC;iCACd;6BACD;iCAAM;gCACN,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,sCAAoC,SAAS,mBAAc,IAAM,CAAC;gCACtF,IAAI,KAAK;oCAAE,KAAK,CAAC,IAAI,EAAE,sCAAoC,SAAS,kBAAa,IAAM,CAAC,CAAC;gCACzF,KAAI,CAAC,MAAM,EAAE,CAAC;gCACd,KAAI,CAAC,MAAM,EAAE,CAAC;6BACd;yBACD;oBACF,CAAC,EAAE,UAAC,SAAiB,EAAE,YAAoB;wBAC1C,aAAa,GAAG,IAAI,CAAC;wBACrB,WAAW,CAAC,KAAK,EAAE,CAAC;wBAEpB,IAAI,WAAW,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE;4BAC3C,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,sCAAoC,SAAS,mBAAc,IAAM,CAAC;4BACtF,IAAI,KAAK;gCAAE,KAAK,CAAC,IAAI,EAAE,sCAAoC,SAAS,kBAAa,IAAM,CAAC,CAAC;4BACzF,KAAI,CAAC,MAAM,EAAE,CAAC;4BACd,KAAI,CAAC,MAAM,EAAE,CAAC;yBACd;oBACF,CAAC,CAAC,CAAC;;gBAvCJ,KAAsB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;oBAA3B,IAAI,SAAS,mBAAA;4BAAT,SAAS;iBAwCjB;YACF,CAAC,EAAE,UAAC,KAAa,EAAE,YAAoB;gBACtC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,iCAA+B,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC;gBAC7F,IAAI,KAAK;oBAAE,KAAK,CAAC,IAAI,EAAE,iCAA+B,IAAI,iBAAY,MAAM,UAAK,YAAc,CAAC,CAAC;gBACjG,KAAI,CAAC,MAAM,EAAE,CAAC;gBACd,KAAI,CAAC,MAAM,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,0BAAG,GAAH,UAAK,IAAY;YAChB,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,OAAO,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,IAAU,KAAM,CAAC,OAAO;gBAAQ,KAAM,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,gCAAS,GAAT;YACC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAU,KAAM,CAAC,OAAO;oBAAQ,KAAM,CAAC,OAAO,EAAE,CAAC;aACjD;YACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,wCAAiB,GAAjB;YACC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,gCAAS,GAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,gCAAS,GAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAED,8BAAO,GAAP;YACC,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT;YACC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,gCAAS,GAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACF,mBAAC;IAAD,CAAC,AA5OD,IA4OC;IA5OY,kBAAY,eA4OxB,CAAA;AACF,CAAC,EA9OM,KAAK,KAAL,KAAK,QA8OX;AC9OD,IAAO,KAAK,CA8CX;AA9CD,WAAO,KAAK;IAKX;QAGC,+BAAa,KAAmB;YAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,mDAAmB,GAAnB,UAAqB,IAAU,EAAE,IAAY,EAAE,IAAY;YAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACjH,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,MAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,UAAU,CAAC;QACnB,CAAC;QAED,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY,EAAE,IAAY;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YAC/G,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,OAAO,UAAU,CAAC;QACnB,CAAC;QAED,wDAAwB,GAAxB,UAA0B,IAAU,EAAE,IAAY;YACjD,OAAO,IAAI,MAAA,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,iDAAiB,GAAjB,UAAmB,IAAU,EAAE,IAAY;YAC1C,OAAO,IAAI,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,kDAAkB,GAAlB,UAAmB,IAAU,EAAE,IAAY;YAC1C,OAAO,IAAI,MAAA,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,qDAAqB,GAArB,UAAsB,IAAU,EAAE,IAAY;YAC7C,OAAO,IAAI,MAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACF,4BAAC;IAAD,CAAC,AAxCD,IAwCC;IAxCY,2BAAqB,wBAwCjC,CAAA;AACF,CAAC,EA9CM,KAAK,KAAL,KAAK,QA8CX;AC9CD,IAAO,KAAK,CASX;AATD,WAAO,KAAK;IAGX,IAAY,SAKX;IALD,WAAY,SAAS;QACpB,6CAAM,CAAA;QACN,iDAAQ,CAAA;QACR,iDAAQ,CAAA;QACR,6CAAM,CAAA;IACP,CAAC,EALW,SAAS,GAAT,eAAS,KAAT,eAAS,QAKpB;AACF,CAAC,EATM,KAAK,KAAL,KAAK,QASX;ACTD,IAAO,KAAK,CA+VX;AA/VD,WAAO,KAAK;IAOX;QAiFC,cAAa,IAAc,EAAE,QAAkB,EAAE,MAAY;YAtE7D,aAAQ,GAAG,IAAI,KAAK,EAAQ,CAAC;YAG7B,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGN,aAAQ,GAAG,CAAC,CAAC;YAGb,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,OAAE,GAAG,CAAC,CAAC;YAGP,OAAE,GAAG,CAAC,CAAC;YAGP,cAAS,GAAG,CAAC,CAAC;YAGd,YAAO,GAAG,CAAC,CAAC;YAGZ,YAAO,GAAG,CAAC,CAAC;YAGZ,YAAO,GAAG,CAAC,CAAC;YAGZ,YAAO,GAAG,CAAC,CAAC;YAIZ,iBAAY,GAAG,KAAK,CAAC;YAGrB,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGN,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAEX,WAAM,GAAG,KAAK,CAAC;YACf,WAAM,GAAG,KAAK,CAAC;YAId,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,IAAI;gBAAE,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;QAID,uBAAQ,GAAR;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,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;QAKD,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;QAMD,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,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;gBACvC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACzB,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;gBAC3D,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;gBACnD,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;gBAC3D,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;gBACnD,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAClC,OAAO;aACP;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,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACjC,KAAK,MAAA,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC1B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,OAAO;iBACP;gBACD,KAAK,MAAA,aAAa,CAAC,eAAe,CAAC,CAAC;oBACnC,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBACtD,IAAI,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;oBAC9C,MAAM;iBACN;gBACD,KAAK,MAAA,aAAa,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC1B,IAAI,GAAG,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,GAAG,MAAM,EAAE;wBACf,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;wBACpC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACZ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;qBAC5C;yBAAM;wBACN,EAAE,GAAG,CAAC,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC;wBACP,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;qBACjD;oBACD,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;oBACjC,IAAI,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;oBACtC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACvC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,MAAM;iBACN;gBACD,KAAK,MAAA,aAAa,CAAC,OAAO,CAAC;gBAC3B,KAAK,MAAA,aAAa,CAAC,mBAAmB,CAAC,CAAC;oBACvC,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtD,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,IAAI,CAAC,GAAG,OAAO;wBAAE,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,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,MAAA,aAAa,CAAC,OAAO;2BAChD,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;wBAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;oBAC3C,IAAI,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC3B,MAAM;iBACN;aACA;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChC,CAAC;QAGD,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;QAGD,gCAAiB,GAAjB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAGD,gCAAiB,GAAjB;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QACtD,CAAC;QAGD,6BAAc,GAAd;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAGD,6BAAc,GAAd;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QAUD,qCAAsB,GAAtB;YACC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBACnH,OAAO;aACP;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,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE;gBAC1B,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;gBACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;aACvD;iBAAM;gBACN,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;aAC5D;QACF,CAAC;QAGD,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,OAAO,KAAK,CAAC;QACd,CAAC;QAGD,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,OAAO,KAAK,CAAC;QACd,CAAC;QAGD,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9H,CAAC;QAGD,mCAAoB,GAApB,UAAsB,aAAqB;YAC1C,aAAa,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QAChG,CAAC;QAID,0BAAW,GAAX,UAAa,OAAe;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC3B,CAAC;QACF,WAAC;IAAD,CAAC,AAvVD,IAuVC;IAvVY,UAAI,OAuVhB,CAAA;AACF,CAAC,EA/VM,KAAK,KAAL,KAAK,QA+VX;AC/VD,IAAO,KAAK,CA8DX;AA9DD,WAAO,KAAK;IAGX;QA8CC,kBAAa,KAAa,EAAE,IAAY,EAAE,MAAgB;YAhC1D,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGN,aAAQ,GAAG,CAAC,CAAC;YAGb,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,WAAM,GAAG,CAAC,CAAC;YAGX,kBAAa,GAAG,aAAa,CAAC,MAAM,CAAC;YAKrC,iBAAY,GAAG,KAAK,CAAC;YAIrB,UAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YAGnB,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,IAAI,IAAI,IAAI,IAAI;gBAAE,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,AArDD,IAqDC;IArDY,cAAQ,WAqDpB,CAAA;IAGD,IAAY,aAEX;IAFD,WAAY,aAAa;QACxB,qDAAM,CAAA;QAAE,uEAAe,CAAA;QAAE,qFAAsB,CAAA;QAAE,uDAAO,CAAA;QAAE,+EAAmB,CAAA;IAC9E,CAAC,EAFW,aAAa,GAAb,mBAAa,KAAb,mBAAa,QAExB;AACF,CAAC,EA9DM,KAAK,KAAL,KAAK,QA8DX;AC9DD,IAAO,KAAK,CAKX;AALD,WAAO,KAAK;IAEX;QACC,wBAAmB,IAAY,EAAS,KAAa,EAAS,YAAqB;YAAhE,SAAI,GAAJ,IAAI,CAAQ;YAAS,UAAK,GAAL,KAAK,CAAQ;YAAS,iBAAY,GAAZ,YAAY,CAAS;QAAI,CAAC;QACzF,qBAAC;IAAD,CAAC,AAFD,IAEC;IAFqB,oBAAc,iBAEnC,CAAA;AACF,CAAC,EALM,KAAK,KAAL,KAAK,QAKX;ACLD,IAAO,KAAK,CAsBX;AAtBD,WAAO,KAAK;IAOX;QASC,eAAa,IAAY,EAAE,IAAe;YACzC,IAAI,IAAI,IAAI,IAAI;gBAAE,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,AAdD,IAcC;IAdY,WAAK,QAcjB,CAAA;AACF,CAAC,EAtBM,KAAK,KAAL,KAAK,QAsBX;ACtBD,IAAO,KAAK,CAiBX;AAjBD,WAAO,KAAK;IAIX;QASC,mBAAa,IAAY;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QACF,gBAAC;IAAD,CAAC,AAZD,IAYC;IAZY,eAAS,YAYrB,CAAA;AACF,CAAC,EAjBM,KAAK,KAAL,KAAK,QAiBX;ACjBD,IAAO,KAAK,CAiPX;AAjPD,WAAO,KAAK;IAMX;QA2BC,sBAAa,IAAsB,EAAE,QAAkB;YAhBvD,kBAAa,GAAG,CAAC,CAAC;YAGlB,aAAQ,GAAG,KAAK,CAAC;YAIjB,YAAO,GAAG,KAAK,CAAC;YAGhB,QAAG,GAAG,CAAC,CAAC;YAGR,aAAQ,GAAG,CAAC,CAAC;YACb,WAAM,GAAG,KAAK,CAAC;YAGd,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,KAAK,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,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAGD,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,QAAQ,KAAK,CAAC,MAAM,EAAE;gBACtB,KAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC9G,MAAM;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,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzH,MAAM;aACN;QACF,CAAC;QAGD,6BAAM,GAAN,UAAQ,IAAU,EAAE,OAAe,EAAE,OAAe,EAAE,QAAiB,EAAE,OAAgB,EAAE,OAAgB,EAAE,KAAa;YACzH,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACvF,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;gBAAE,UAAU,IAAI,GAAG,CAAC;YACxC,IAAI,UAAU,GAAG,GAAG;gBACnB,UAAU,IAAI,GAAG,CAAC;iBACd,IAAI,UAAU,GAAG,CAAC,GAAG;gBAAE,UAAU,IAAI,GAAG,CAAC;YAC9C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACzC,IAAI,QAAQ,IAAI,OAAO,EAAE;gBACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE;oBAC9D,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;oBACjC,EAAE,IAAI,CAAC,CAAC;oBACR,IAAI,OAAO;wBAAE,EAAE,IAAI,CAAC,CAAC;iBACrB;aACD;YACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EACxG,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC;QAID,6BAAM,GAAN,UAAQ,MAAY,EAAE,KAAW,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,OAAgB,EAAE,QAAgB,EAAE,KAAa;YACtI,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC7B,OAAO;aACP;YACD,IAAI,CAAC,MAAM,CAAC,YAAY;gBAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,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,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9G,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,EAAE;gBACZ,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;gBACV,EAAE,GAAG,CAAC,CAAC,CAAC;aACR;iBAAM;gBACN,GAAG,GAAG,CAAC,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;aACP;YACD,IAAI,GAAG,GAAG,CAAC,EAAE;gBACZ,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,EAAE,GAAG,CAAC,EAAE,CAAC;aACT;YACD,IAAI,GAAG,GAAG,CAAC,EAAE;gBACZ,GAAG,GAAG,CAAC,GAAG,CAAC;gBACX,GAAG,GAAG,GAAG,CAAC;aACV;;gBACA,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,IAAI,CAAC,CAAC,EAAE;gBACP,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;aAC7B;iBAAM;gBACN,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;aACtC;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,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;YACvE,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,EAAE,EAAE,CAAC;YAC5E,IAAI,EAAE,GAAG,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACpE,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtG,OAAO;aACP;YACD,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YACxB,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;YACxB,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,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC3B,IAAI,QAAQ,IAAI,CAAC,EAAE;gBAClB,QAAQ,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;gBAC3D,IAAI,EAAE,GAAG,CAAC,EAAE;oBACX,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7C,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACvC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;iBACvB;aACD;YACD,KAAK,EACL,IAAI,CAAC,EAAE;gBACN,EAAE,IAAI,GAAG,CAAC;gBACV,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnD,IAAI,GAAG,GAAG,CAAC,CAAC;oBACX,GAAG,GAAG,CAAC,CAAC,CAAC;qBACL,IAAI,GAAG,GAAG,CAAC,EAAE;oBACjB,GAAG,GAAG,CAAC,CAAC;oBACR,IAAI,OAAO;wBAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;iBAC/D;gBACD,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;aAClD;iBAAM;gBACN,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,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,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,IAAI,CAAC,IAAI,CAAC,EAAE;oBACX,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,EAAE,GAAG,CAAC;wBAAE,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,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;wBAChB,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,MAAM,KAAK,CAAC;qBACZ;iBACD;gBACD,IAAI,QAAQ,GAAG,MAAA,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBAC5E,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;gBACjE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,OAAO,EAAE;wBAChB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;qBACT;oBACD,IAAI,CAAC,GAAG,OAAO,EAAE;wBAChB,QAAQ,GAAG,CAAC,CAAC;wBACb,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;qBACT;iBACD;gBACD,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE;oBAClC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;iBACxB;qBAAM;oBACN,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC3C,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;iBACxB;aACD;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;YACnD,IAAI,EAAE,GAAG,GAAG;gBACX,EAAE,IAAI,GAAG,CAAC;iBACN,IAAI,EAAE,GAAG,CAAC,GAAG;gBAAE,EAAE,IAAI,GAAG,CAAC;YAC9B,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzF,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC1E,IAAI,EAAE,GAAG,GAAG;gBACX,EAAE,IAAI,GAAG,CAAC;iBACN,IAAI,EAAE,GAAG,CAAC,GAAG;gBAAE,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,AA1OD,IA0OC;IA1OY,kBAAY,eA0OxB,CAAA;AACF,CAAC,EAjPM,KAAK,KAAL,KAAK,QAiPX;ACjPD,IAAO,KAAK,CAoCX;AApCD,WAAO,KAAK;IAKX;QAAsC,oCAAc;QA2BnD,0BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SACrB;YA3BD,WAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAM9B,mBAAa,GAAG,CAAC,CAAC;YAGlB,cAAQ,GAAG,KAAK,CAAC;YAIjB,aAAO,GAAG,KAAK,CAAC;YAIhB,aAAO,GAAG,KAAK,CAAC;YAGhB,SAAG,GAAG,CAAC,CAAC;YAGR,cAAQ,GAAG,CAAC,CAAC;;QAIb,CAAC;QACF,uBAAC;IAAD,CAAC,AA9BD,CAAsC,MAAA,cAAc,GA8BnD;IA9BY,sBAAgB,mBA8B5B,CAAA;AACF,CAAC,EApCM,KAAK,KAAL,KAAK,QAoCX;ACpCD,IAAO,KAAK,CAmaX;AAnaD,WAAO,KAAK;IAMX;QA+BC,wBAAa,IAAwB,EAAE,QAAkB;YAjBzD,aAAQ,GAAG,CAAC,CAAC;YAGb,YAAO,GAAG,CAAC,CAAC;YAGZ,cAAS,GAAG,CAAC,CAAC;YAGd,iBAAY,GAAG,CAAC,CAAC;YAEjB,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;YAE/B,WAAM,GAAG,KAAK,CAAC;YAGd,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,KAAK,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,iCAAQ,GAAR;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAGD,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,IAAI,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC;gBAAE,OAAO;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,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;gBAAE,OAAO;YAElC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,OAAO,CAAC;YAC7D,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,IAAI,QAAQ,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,UAAU,CAAC;YAC7F,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YACtF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,MAAM,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAkB,IAAI,CAAC;YACzF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC3B,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE;gBAC7B,IAAI,KAAK;oBAAE,OAAO,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,CAAC;gBAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;oBAC5C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnC,IAAI,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE;wBACzC,IAAI,KAAK;4BAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;qBAChB;yBAAM,IAAI,cAAc,EAAE;wBAC1B,IAAI,KAAK,EAAE;4BACV,IAAI,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;4BACvD,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;4BACtC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;yBACpB;wBACD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;qBACtB;yBAAM;wBACN,IAAI,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;wBACvD,IAAI,QAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtC,IAAI,KAAK;4BAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAM,CAAC;wBAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,QAAM,GAAG,WAAW,CAAC;qBACvF;iBACD;aACD;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACrB;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAiB,UAAU,EAAE,WAAW,EAAE,QAAQ,EAC3F,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC5D,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,IAAI,cAAc,IAAI,CAAC;gBACtB,GAAG,GAAG,UAAU,IAAI,MAAA,UAAU,CAAC,KAAK,CAAC;iBACjC;gBACJ,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,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;aACnF;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;gBAClD,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,IAAI,KAAK,EAAE;oBACV,IAAI,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,QAAM,IAAI,CAAC,EAAE;wBAChB,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;qBACZ;iBACD;gBACD,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,CAAC,CAAC;gBACV,IAAI,MAAM,EAAE;oBACX,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,IAAI,QAAQ;wBACX,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;yBACjB,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;wBAErB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtB,IAAI,GAAG,EAAE;wBACR,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;qBACzD;yBAAM;wBACN,CAAC,IAAI,cAAc,CAAC;qBACpB;oBACD,IAAI,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE;wBACnB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE;wBACzB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;iBAC3B;gBACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC1B;QACF,CAAC;QAED,8CAAqB,GAArB,UAAuB,IAAoB,EAAE,WAAmB,EAAE,QAAiB,EAAE,eAAwB,EAC5G,cAAuB;YACvB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAkB,IAAI,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;YAEhH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACxB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,YAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrC,IAAI,eAAe;oBAAE,QAAQ,IAAI,YAAU,CAAC;gBAC5C,IAAI,cAAc,EAAE;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;wBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAU,CAAC;iBACzB;gBACD,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC/D,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,QAAQ,IAAI,KAAK,CAAC;oBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAEjB,IAAI,MAAM,EAAE;wBACX,CAAC,IAAI,YAAU,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC;4BAAE,CAAC,IAAI,YAAU,CAAC;wBAC3B,KAAK,GAAG,CAAC,CAAC;qBACV;yBAAM,IAAI,CAAC,GAAG,CAAC,EAAE;wBACjB,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE;4BACvC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;4BAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;yBACrD;wBACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5C,SAAS;qBACT;yBAAM,IAAI,CAAC,GAAG,YAAU,EAAE;wBAC1B,IAAI,SAAS,IAAI,cAAc,CAAC,KAAK,EAAE;4BACtC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;4BACjC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;yBACtE;wBACD,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,YAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACxD,SAAS;qBACT;oBAGD,QAAQ,KAAK,EAAE,EAAE;wBAChB,IAAI,QAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC5B,IAAI,CAAC,GAAG,QAAM;4BAAE,SAAS;wBACzB,IAAI,KAAK,IAAI,CAAC;4BACb,CAAC,IAAI,QAAM,CAAC;6BACR;4BACJ,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;yBACjC;wBACD,MAAM;qBACN;oBACD,IAAI,KAAK,IAAI,SAAS,EAAE;wBACvB,SAAS,GAAG,KAAK,CAAC;wBAClB,IAAI,MAAM,IAAI,KAAK,IAAI,UAAU,EAAE;4BAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;yBACrD;;4BACA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClE;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;iBACpC;gBACD,OAAO,GAAG,CAAC;aACX;YAGD,IAAI,MAAM,EAAE;gBACX,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtE,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACN,UAAU,EAAE,CAAC;gBACb,cAAc,IAAI,CAAC,CAAC;gBACpB,KAAK,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAClE;YAGD,IAAI,MAAM,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrF,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;gBACnD,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;aACR;YACD,IAAI,eAAe;gBAClB,QAAQ,IAAI,UAAU,CAAC;;gBAEvB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,cAAc,EAAE;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;aACzB;YAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,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;gBAC5E,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,IAAI,KAAK,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAEjB,IAAI,MAAM,EAAE;oBACX,CAAC,IAAI,UAAU,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC;wBAAE,CAAC,IAAI,UAAU,CAAC;oBAC3B,KAAK,GAAG,CAAC,CAAC;iBACV;qBAAM,IAAI,CAAC,GAAG,CAAC,EAAE;oBACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,SAAS;iBACT;qBAAM,IAAI,CAAC,GAAG,UAAU,EAAE;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzE,SAAS;iBACT;gBAGD,QAAQ,KAAK,EAAE,EAAE;oBAChB,IAAI,QAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,QAAM;wBAAE,SAAS;oBACzB,IAAI,KAAK,IAAI,CAAC;wBACb,CAAC,IAAI,QAAM,CAAC;yBACR;wBACJ,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;qBACjC;oBACD,MAAM;iBACN;gBAGD,IAAI,KAAK,IAAI,SAAS,EAAE;oBACvB,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,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC1B,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;qBAC3B;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;iBACZ;gBAGD,CAAC,IAAI,WAAW,CAAC;gBACjB,QAAQ,OAAO,EAAE,EAAE;oBAClB,IAAI,QAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/B,IAAI,CAAC,GAAG,QAAM;wBAAE,SAAS;oBACzB,IAAI,OAAO,IAAI,CAAC;wBACf,CAAC,IAAI,QAAM,CAAC;yBACR;wBACJ,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;qBAC3C;oBACD,MAAM;iBACN;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;aAC9G;YACD,OAAO,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,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACZ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;gBAC5C,OAAO;aACP;YACD,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,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,GAAG,KAAK;oBACZ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;;oBAE5C,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;aAC3G;QACF,CAAC;QA1ZM,mBAAI,GAAG,CAAC,CAAC,CAAC;QAAQ,qBAAM,GAAG,CAAC,CAAC,CAAC;QAAQ,oBAAK,GAAG,CAAC,CAAC,CAAC;QACjD,sBAAO,GAAG,OAAO,CAAC;QA0Z1B,qBAAC;KAAA,AA5ZD,IA4ZC;IA5ZY,oBAAc,iBA4Z1B,CAAA;AACF,CAAC,EAnaM,KAAK,KAAL,KAAK,QAmaX;ACnaD,IAAO,KAAK,CA8DX;AA9DD,WAAO,KAAK;IAKX;QAAwC,sCAAc;QAgCrD,4BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SACrB;YA/BD,WAAK,GAAG,IAAI,KAAK,EAAY,CAAC;;QA+B9B,CAAC;QACF,yBAAC;IAAD,CAAC,AAnCD,CAAwC,MAAA,cAAc,GAmCrD;IAnCY,wBAAkB,qBAmC9B,CAAA;IAKD,IAAY,YAEX;IAFD,WAAY,YAAY;QACvB,iDAAK,CAAA;QAAE,qDAAO,CAAA;IACf,CAAC,EAFW,YAAY,GAAZ,kBAAY,KAAZ,kBAAY,QAEvB;IAKD,IAAY,WAEX;IAFD,WAAY,WAAW;QACtB,iDAAM,CAAA;QAAE,+CAAK,CAAA;QAAE,mDAAO,CAAA;IACvB,CAAC,EAFW,WAAW,GAAX,iBAAW,KAAX,iBAAW,QAEtB;IAKD,IAAY,UAEX;IAFD,WAAY,UAAU;QACrB,iDAAO,CAAA;QAAE,6CAAK,CAAA;QAAE,uDAAU,CAAA;IAC3B,CAAC,EAFW,UAAU,GAAV,gBAAU,KAAV,gBAAU,QAErB;AACF,CAAC,EA9DM,KAAK,KAAL,KAAK,QA8DX;AC9DD,IAAO,KAAK,CA2JX;AA3JD,WAAO,KAAK;IACX;QAMC,gBAAY,QAAgB;YAJ5B,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAC7B,WAAM,GAAa,EAAE,CAAC;YAIrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,uBAAM,GAAN;YACC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;gBAAE,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC;QACV,CAAC;QACF,aAAC;IAAD,CAAC,AAfD,IAeC;IAED;QAOC,4BAAa,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YAL5B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,iBAAY,GAAgB,EAAE,CAAC;YAC/B,cAAS,GAAa,EAAE,CAAA;YACxB,WAAM,GAAgB,EAAE,CAAC;YAGhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,CAAC;QAEO,uCAAU,GAAlB,UAAmB,QAAgB,EAAE,aAA+C,EAAE,IAAY;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE;gBACxD,YAAY,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;aAC3C;YACD,IAAI,aAAa,KAAK,IAAI;gBAAE,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;YACvE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAI/B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACrC,OAAO,KAAK,CAAC;aACb;iBAAM;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC/B,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;QAED,qCAAQ,GAAR,UAAS,QAAgB,EAAE,IAAY;YAAvC,iBAeC;YAdA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,IAAI,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,EAAE;oBAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;wBAClD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;qBAC5C;yBAAM;wBACN,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;qBACpG;iBACD;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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO;YACnD,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,kBAAkB,GAAG;gBAC5B,IAAI,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,EAAE;oBAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;wBAClD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;qBACxD;yBAAM;wBACN,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAsB,IAAI,iBAAY,OAAO,CAAC,MAAM,UAAK,OAAO,CAAC,YAAc,CAAC;qBACpG;iBACD;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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC;gBAAE,OAAO;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,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrE,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAEO,+CAAkB,GAA1B,UAA2B,YAAoB;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;oBAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS;wBAAE,SAAS;oBAC1D,IAAI,QAAQ,YAAY,gBAAgB,EAAE;wBACzC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,aAAa,CAAmB,QAAQ,CAAC,CAAC;qBACnF;yBAAM;wBACN,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;qBACrC;iBACD;aACD;QACF,CAAC;QAED,8CAAiB,GAAjB,UAAmB,QAAgB;YAClC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtC,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAE5D,CAAC;QAiBD,oCAAO,GAAP;QAEA,CAAC;QAED,sCAAS,GAAT;YACC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,sCAAS,GAAT;YACC,OAAO,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,CAskBX;AAtkBD,WAAO,KAAK;IAKX;QAmDC,kBAAa,IAAkB;YA5B/B,iBAAY,GAAG,IAAI,KAAK,EAAa,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAa,CAAC;YAW1C,SAAI,GAAG,CAAC,CAAC;YAIT,WAAM,GAAG,CAAC,CAAC;YAIX,WAAM,GAAG,CAAC,CAAC;YAGX,MAAC,GAAG,CAAC,CAAC;YAGN,MAAC,GAAG,CAAC,CAAC;YAGL,IAAI,IAAI,IAAI,IAAI;gBAAE,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,SAAM,CAAC;gBACf,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI;oBAC1B,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;qBAClC;oBACJ,IAAI,QAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC/C,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAM,CAAC,CAAC;oBACxC,QAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC3B;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAQ,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAgB,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAA,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;aAClE;YAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,KAAK,EAAuB,CAAC;YAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAI,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,MAAA,mBAAmB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;aACvF;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,KAAK,EAAkB,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,MAAA,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;aACxE;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAID,8BAAW,GAAX;YACC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACrC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B;YAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACtB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACvD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1C,GAAG;wBACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;wBACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;qBACnB,QAAQ,IAAI,IAAI,IAAI,EAAE;iBACvB;aACD;YAGD,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;gBACzC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,EAAE;oBACpC,IAAI,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;wBAC/B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBAClC,SAAS,KAAK,CAAC;qBACf;iBACD;gBACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,EAAE,EAAE;oBAC3C,IAAI,UAAU,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;wBAC/B,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;wBACzC,SAAS,KAAK,CAAC;qBACf;iBACD;gBACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE;oBACtC,IAAI,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;oBACrC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;wBAC/B,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACpC,SAAS,KAAK,CAAC;qBACf;iBACD;aACD;YAED,KAAK,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,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3K,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAE/B,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,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChF;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,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAChL,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAE/B,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,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;gBAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI;gBACtE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE5E,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,UAAU,YAAY,MAAA,cAAc;gBAAE,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;gBACjC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,0CAAuB,GAAvB,UAAyB,UAA+B;YACvD,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,MAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3K,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAE/B,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,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChF;aACD;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9B;aACD;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,KAAK,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,KAAK,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,IAAI,CAAC,WAAW;gBAAE,OAAO;YACzB,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;gBAC5B,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClE;QACF,CAAC;QAED,mDAAgC,GAAhC,UAAkC,UAAsB,EAAE,QAAc;YACvE,IAAI,CAAC,CAAC,UAAU,YAAY,MAAA,cAAc,CAAC;gBAAE,OAAO;YACpD,IAAI,SAAS,GAAoB,UAAW,CAAC,KAAK,CAAC;YACnD,IAAI,SAAS,IAAI,IAAI;gBACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACpB;gBACJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;oBAC5B,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBACvC,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;qBAChC;iBACD;aACD;QACF,CAAC;QAED,2BAAQ,GAAR,UAAU,IAAU;YACnB,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI;gBAAE,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAC3B,IAAI,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACpB;QACF,CAAC;QAMD,uCAAoB,GAApB;YACC,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxD,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;aACzB;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,KAAK,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,KAAK,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBACrC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/C,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;gBACzD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7C;YAED,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5D,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;aACpC;YAED,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,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;aAC5C;QACF,CAAC;QAGD,sCAAmB,GAAnB;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,MAAA,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3D,KAAK,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,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAGD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;aAC5C;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QAKD,2BAAQ,GAAR,UAAU,QAAgB;YACzB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;aAC5C;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAGD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QAKD,gCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAYD,0BAAO,GAAP,UAAS,OAAa;YACrB,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO;YACjC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;oBACpB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC/B;oBACJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,MAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;wBACpC,IAAI,MAAI,IAAI,IAAI,EAAE;4BACjB,IAAI,UAAU,GAAe,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,MAAI,CAAC,CAAC;4BAC5D,IAAI,UAAU,IAAI,IAAI;gCAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;yBACvD;qBACD;iBACD;aACD;YACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QAQD,sCAAmB,GAAnB,UAAqB,QAAgB,EAAE,cAAsB;YAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QAC9E,CAAC;QAOD,gCAAa,GAAb,UAAe,SAAiB,EAAE,cAAsB;YACvD,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACtB,IAAI,UAAU,GAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAChF,IAAI,UAAU,IAAI,IAAI;oBAAE,OAAO,UAAU,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACzG,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,gCAAa,GAAb,UAAe,QAAgB,EAAE,cAAsB;YACtD,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;oBAC/B,IAAI,UAAU,GAAe,IAAI,CAAC;oBAClC,IAAI,cAAc,IAAI,IAAI,EAAE;wBAC3B,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;wBACnD,IAAI,UAAU,IAAI,IAAI;4BACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;qBACxF;oBACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC/B,OAAO;iBACP;aACD;YACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;QAChD,CAAC;QAMD,mCAAgB,GAAhB,UAAkB,cAAsB;YACvC,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,YAAY,CAAC;aAClE;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,0CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,UAAU,CAAC;aAC9D;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,qCAAkB,GAAlB,UAAoB,cAAsB;YACzC,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,UAAU,CAAC;aAC9D;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAMD,4BAAS,GAAT,UAAW,MAAe,EAAE,IAAa,EAAE,IAA0C;YAA1C,qBAAA,EAAA,WAA0B,KAAK,CAAS,CAAC,CAAC;YACpF,IAAI,MAAM,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9D,IAAI,IAAI,IAAI,IAAI;gBAAE,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAChC,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,QAAQ,GAAsB,IAAI,CAAC;gBACvC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,UAAU,YAAY,MAAA,gBAAgB,EAAE;oBAC3C,cAAc,GAAG,CAAC,CAAC;oBACnB,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpC,UAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/E;qBAAM,IAAI,UAAU,YAAY,MAAA,cAAc,EAAE;oBAChD,IAAI,IAAI,GAAoB,UAAW,CAAC;oBACxC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBAC1C,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBACnE;gBACD,IAAI,QAAQ,IAAI,IAAI,EAAE;oBACrB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;wBACxD,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;qBACzB;iBACD;aACD;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;QAGD,yBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QACpB,CAAC;QACF,eAAC;IAAD,CAAC,AAhkBD,IAgkBC;IAhkBY,cAAQ,WAgkBpB,CAAA;AACF,CAAC,EAtkBM,KAAK,KAAL,KAAK,QAskBX;ACtkBD,IAAO,KAAK,CAs2BX;AAt2BD,WAAO,KAAK;IAMX;QAkCC,wBAAa,gBAAkC;YAL/C,UAAK,GAAG,CAAC,CAAC;YAGF,iBAAY,GAAG,IAAI,KAAK,EAAc,CAAC;YAG9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,CAAC;QAED,yCAAgB,GAAhB,UAAkB,MAAkB;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,IAAI,YAAY,GAAG,IAAI,MAAA,YAAY,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;YAEvB,IAAI,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEpC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YACvC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1C,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAExC,IAAI,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,YAAY,EAAE;gBACjB,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAErC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC7C,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;aAC5C;YAED,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACzB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAGxC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,MAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC9B,IAAI,QAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrE,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,CAAC,EAAE,MAAI,EAAE,QAAM,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,YAAY;oBAAE,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBACvE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;YAGD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC/C,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAErD,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,SAAS,IAAI,CAAC,CAAC;oBAAE,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,MAAA,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;gBAElF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5C,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;YAGD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAA,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,GAAG,IAAI,MAAA,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBAC1C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACnC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;YAGD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAA,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,GAAG,IAAI,MAAA,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;gBACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7C;YAGD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAA,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,IAAI,GAAG,IAAI,MAAA,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK;oBAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;gBACpE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK;oBAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;gBAC3G,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxC;YAGD,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACzE,IAAI,WAAW,IAAI,IAAI,EAAE;gBACxB,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;gBACvC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACrC;YAGD;gBACC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAClC,MAAA,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChB,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;aACjF;YAGD,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvG,IAAI,IAAI,IAAI,IAAI;oBAAE,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,IAAI,QAAM,IAAI,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,QAA0B,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC3G,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAwB,CAAC,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAG7B,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,IAAI,GAAG,IAAI,MAAA,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;gBAChD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;oBAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;iBACjC;gBACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;YAGD,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACzB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC3F,OAAO,YAAY,CAAC;QACrB,CAAC;QAEO,iCAAQ,GAAhB,UAAkB,KAAkB,EAAE,YAA0B,EAAE,WAAoB,EAAE,YAAqB;YAC5G,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,IAAI,WAAW,EAAE;gBAChB,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC/B,IAAI,SAAS,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAChC,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,SAAS,CAAC,CAAC;aAC3B;iBAAM;gBACN,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE1E,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAChC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;oBACzD,IAAI,MAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACjC,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAI,EAAE,YAAY,CAAC,CAAC;oBAC/F,IAAI,UAAU,IAAI,IAAI;wBAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAI,EAAE,UAAU,CAAC,CAAC;iBACxE;aACD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAEO,uCAAc,GAAtB,UAAuB,KAAkB,EAAE,YAA0B,EAAE,IAAU,EAAE,SAAiB,EAAE,cAAsB,EAAE,YAAqB;YAClJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI;gBAAE,IAAI,GAAG,cAAc,CAAC;YAExC,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,IAAI,GAAG,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC1D,QAAQ,IAAI,EAAE;gBACd,KAAK,MAAA,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC/B,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC/B,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC/B,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAE9B,IAAI,IAAI,IAAI,IAAI;wBAAE,IAAI,GAAG,IAAI,CAAC;oBAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzE,IAAI,MAAM,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACrB,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;oBACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;oBACvB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC3B,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;oBAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;oBAC/B,MAAA,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC3C,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,OAAO,MAAM,CAAC;iBACd;gBACD,KAAK,MAAA,cAAc,CAAC,WAAW,CAAC,CAAC;oBAChC,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACrD,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,IAAI,GAAG,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC7B,GAAG,CAAC,mBAAmB,GAAG,WAAW,IAAI,CAAC,CAAC;oBAC3C,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBACjC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC3B,IAAI,YAAY;wBAAE,MAAA,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC1D,OAAO,GAAG,CAAC;iBACX;gBACD,KAAK,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACjC,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1D,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACrD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,KAAK,GAAG,IAAI,CAAC;oBACjB,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;oBAC1B,IAAI,YAAY,EAAE;wBACjB,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;wBACnC,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;wBAC1B,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;qBAC3B;oBAED,IAAI,IAAI,IAAI,IAAI;wBAAE,IAAI,GAAG,IAAI,CAAC;oBAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBACjB,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAClC,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;oBAClC,IAAI,YAAY,EAAE;wBACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;wBACnB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;qBAC7B;oBACD,OAAO,IAAI,CAAC;iBACZ;gBACD,KAAK,MAAA,cAAc,CAAC,UAAU,CAAC,CAAC;oBAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACjC,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACrC,IAAI,QAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACnC,IAAI,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACxC,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;oBAC1B,IAAI,YAAY,EAAE;wBACjB,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;wBAC1B,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;qBAC3B;oBAED,IAAI,IAAI,IAAI,IAAI;wBAAE,IAAI,GAAG,IAAI,CAAC;oBAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBACjB,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,YAAY,EAAE;wBACjB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;qBAC7B;oBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAM,EAAE,aAAa,CAAC,CAAC,CAAC;oBACzF,OAAO,IAAI,CAAC;iBACZ;gBACD,KAAK,MAAA,cAAc,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,QAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACjC,IAAI,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACxC,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACrD,IAAI,OAAO,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBAC7C,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;oBACxC,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/D,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,QAAM,CAAC;oBACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;oBACnC,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,IAAI,YAAY;wBAAE,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC3D,OAAO,IAAI,CAAC;iBACZ;gBACD,KAAK,MAAA,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,KAAK,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC/B,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACpB,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACpB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC1B,IAAI,YAAY;wBAAE,MAAA,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC5D,OAAO,KAAK,CAAC;iBACb;gBACD,KAAK,MAAA,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAC7B,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACrD,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjD,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC9B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAChD,IAAI,CAAC,mBAAmB,GAAG,WAAW,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC5B,IAAI,YAAY;wBAAE,MAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC3D,OAAO,IAAI,CAAC;iBACZ;aACA;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAEO,qCAAY,GAApB,UAAsB,KAAkB,EAAE,WAAmB;YAC5D,IAAI,cAAc,GAAG,WAAW,IAAI,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;gBACzB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;gBACtE,OAAO,QAAQ,CAAC;aAChB;YACD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YAClC,IAAI,UAAU,GAAG,IAAI,KAAK,EAAU,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE;oBACtC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;iBAChC;aACD;YACD,QAAQ,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAChD,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;YAC5B,OAAO,QAAQ,CAAC;QACjB,CAAC;QAEO,uCAAc,GAAtB,UAAwB,KAAkB,EAAE,CAAS,EAAE,KAAa;YACnE,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YACjC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACzB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;aAC9B;iBAAM;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACzB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;aACtC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAEO,uCAAc,GAAtB,UAAwB,KAAkB;YACzC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACzB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACd,CAAC;QAEO,sCAAa,GAArB,UAAuB,KAAkB,EAAE,IAAY,EAAE,YAA0B;YAClF,IAAI,SAAS,GAAG,IAAI,KAAK,EAAY,CAAC;YACtC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,UAAU,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YAG7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;oBACzD,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrC,QAAQ,YAAY,EAAE;wBACtB,KAAK,cAAc,CAAC,eAAe,CAAC,CAAC;4BACpC,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,UAAU,CAAC,CAAC;4BAClD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE;gCAC7D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;4BACzE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC/D,MAAM;yBACN;wBACD,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC;4BAC/B,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,UAAU,CAAC,CAAC;4BAC7C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gCAC7B,MAAA,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gCACrD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gCAC5F,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;4BACzF,MAAM;yBACN;wBACD,KAAK,cAAc,CAAC,cAAc,CAAC,CAAC;4BACnC,IAAI,QAAQ,GAAG,IAAI,MAAA,gBAAgB,CAAC,UAAU,CAAC,CAAC;4BAChD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gCAC7B,MAAA,KAAK,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gCACrD,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gCACnD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EACvG,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gCAC7B,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC5F,MAAM;yBACN;qBACA;iBACD;aACD;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;oBACzD,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrC,QAAQ,YAAY,EAAE;wBACtB,KAAK,cAAc,CAAC,WAAW,CAAC,CAAC;4BAChC,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,UAAU,CAAC,CAAC;4BAC9C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gCACpE,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC1F,MAAM;yBACN;wBACD,KAAK,cAAc,CAAC,cAAc,CAAC;wBACnC,KAAK,cAAc,CAAC,UAAU,CAAC;wBAC/B,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC;4BAC/B,IAAI,QAAQ,SAAA,CAAC;4BACb,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,IAAI,YAAY,IAAI,cAAc,CAAC,UAAU;gCAC5C,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,UAAU,CAAC,CAAC;iCACrC,IAAI,YAAY,IAAI,cAAc,CAAC,UAAU;gCACjD,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,UAAU,CAAC,CAAC;iCACrC;gCACJ,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAC7C,aAAa,GAAG,KAAK,CAAC;6BACtB;4BACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,aAAa,EACjF,KAAK,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC,CAAC;gCACpC,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC7F,MAAM;yBACN;qBACA;iBACD;aACD;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,GAAG,IAAI,MAAA,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBACpD,QAAQ,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBACnC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;oBAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,EACnI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBACtB,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;wBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;iBAC7E;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;aAChG;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,GAAG,IAAI,MAAA,2BAA2B,CAAC,UAAU,CAAC,CAAC;gBAC3D,QAAQ,CAAC,wBAAwB,GAAG,KAAK,CAAC;gBAC1C,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;oBAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EACvG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBACpB,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;wBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;iBAC7E;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;aACvG;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC/C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;oBACzD,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrC,QAAQ,YAAY,EAAE;wBACtB,KAAK,cAAc,CAAC,aAAa,CAAC;wBAClC,KAAK,cAAc,CAAC,YAAY,CAAC,CAAC;4BACjC,IAAI,QAAQ,SAAA,CAAC;4BACb,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,IAAI,YAAY,IAAI,cAAc,CAAC,YAAY,EAAE;gCAChD,QAAQ,GAAG,IAAI,MAAA,6BAA6B,CAAC,UAAU,CAAC,CAAC;gCACzD,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK;oCAAE,aAAa,GAAG,KAAK,CAAC;6BAC3G;iCAAM;gCACN,QAAQ,GAAG,IAAI,MAAA,8BAA8B,CAAC,UAAU,CAAC,CAAC;gCAC1D,IAAI,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK;oCAAE,aAAa,GAAG,KAAK,CAAC;6BACnE;4BACD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC,CAAC;gCACpF,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC1G,MAAM;yBACN;wBACD,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC;4BAC7B,IAAI,QAAQ,GAAG,IAAI,MAAA,yBAAyB,CAAC,UAAU,CAAC,CAAC;4BACzD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;gCAC/D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gCACvF,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;oCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;6BAC7E;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAA,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;4BACrG,MAAM;yBACN;qBACA;iBACD;aACD;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;oBACzD,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;wBAC9D,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,CAAqB,CAAC;wBAC1F,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;wBACxC,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;wBACnC,IAAI,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAExE,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACrC,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,UAAU,CAAC,CAAC;wBAC9C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;wBAEjC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE;4BAC/D,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;4BAC7B,IAAI,MAAM,SAAA,CAAC;4BACX,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC9B,IAAI,GAAG,IAAI,CAAC;gCACX,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iCAC7D;gCACJ,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gCAC3C,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCAChC,GAAG,IAAI,KAAK,CAAC;gCACb,IAAI,KAAK,IAAI,CAAC,EAAE;oCACf,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;wCAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;iCAC/B;qCAAM;oCACN,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;wCAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;iCACvC;gCACD,IAAI,CAAC,QAAQ,EAAE;oCACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;wCAC9C,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;iCAC1B;6BACD;4BAED,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;4BAC5C,IAAI,UAAU,GAAG,UAAU,GAAG,CAAC;gCAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;yBAC7E;wBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC/D;iBACD;aACD;YAGD,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,cAAc,GAAG,CAAC,EAAE;gBACvB,IAAI,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBACrD,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;oBACxC,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC7B,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC7C,KAAK,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;wBACzC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC3D,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;oBAC1C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAE;wBACxC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAEpC,OAAO,aAAa,IAAI,SAAS;4BAChC,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;wBAE/C,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC;qBACjE;oBAED,OAAO,aAAa,GAAG,SAAS;wBAC/B,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;oBAE/C,KAAK,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;wBACzC,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BAAE,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;oBACtE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;iBACtC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;aACnE;YAGD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,UAAU,GAAG,CAAC,EAAE;gBACnB,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,IAAI,OAAK,GAAG,IAAI,MAAA,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACvC,OAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtC,OAAK,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;oBACrF,IAAI,OAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;wBACjC,OAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;wBACjC,OAAK,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;qBAClC;oBACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAK,CAAC,CAAC;iBAC5B;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/D;YAED,OAAO,IAAI,MAAA,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QAEO,kCAAS,GAAjB,UAAmB,KAAkB,EAAE,UAAkB,EAAE,QAAuB;YACjF,QAAQ,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1B,KAAK,cAAc,CAAC,aAAa;oBAChC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,cAAc,CAAC,YAAY;oBAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAChH,MAAM;aACN;QACF,CAAC;QAED,iCAAQ,GAAR,UAAU,QAAuB,EAAE,UAAkB,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACxG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QAhvBM,mCAAoB,GAAG,CAAE,CAAC,EAA4B,CAAC,EAAgC,CAAC,EAAyB,CAAC,EAA+B,CAAC,EAAyB,CAAC,EAA0B,CAAC,CAA6B,CAAC;QACrO,kCAAmB,GAAG,CAAC,MAAA,aAAa,CAAC,MAAM,EAAE,MAAA,aAAa,CAAC,eAAe,EAAE,MAAA,aAAa,CAAC,sBAAsB,EAAE,MAAA,aAAa,CAAC,OAAO,EAAE,MAAA,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC5K,iCAAkB,GAAG,CAAE,MAAA,YAAY,CAAC,KAAK,EAAE,MAAA,YAAY,CAAC,OAAO,CAAE,CAAC;QAClE,gCAAiB,GAAG,CAAE,MAAA,WAAW,CAAC,MAAM,EAAE,MAAA,WAAW,CAAC,KAAK,EAAE,MAAA,WAAW,CAAC,OAAO,CAAC,CAAC;QAClF,+BAAgB,GAAG,CAAE,MAAA,UAAU,CAAC,OAAO,EAAE,MAAA,UAAU,CAAC,KAAK,EAAE,MAAA,UAAU,CAAC,UAAU,CAAE,CAAC;QACnF,8BAAe,GAAG,CAAE,MAAA,SAAS,CAAC,MAAM,EAAE,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAA,SAAS,CAAC,QAAQ,EAAE,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhG,0BAAW,GAAG,CAAC,CAAC;QAChB,6BAAc,GAAG,CAAC,CAAC;QACnB,yBAAU,GAAG,CAAC,CAAC;QACf,yBAAU,GAAG,CAAC,CAAC;QAEf,8BAAe,GAAG,CAAC,CAAC;QACpB,yBAAU,GAAG,CAAC,CAAC;QACf,6BAAc,GAAG,CAAC,CAAC;QAEnB,4BAAa,GAAG,CAAC,CAAC;QAClB,2BAAY,GAAG,CAAC,CAAC;QACjB,uBAAQ,GAAG,CAAC,CAAC;QAEb,2BAAY,GAAG,CAAC,CAAC;QACjB,4BAAa,GAAG,CAAC,CAAC;QAClB,2BAAY,GAAG,CAAC,CAAC;QA2tBzB,qBAAC;KAAA,AAlvBD,IAkvBC;IAlvBY,oBAAc,iBAkvB1B,CAAA;IAED;QACC,qBAAY,IAAgB,EAAS,OAA6B,EAAU,KAAiB,EAAU,MAAkC;YAApG,wBAAA,EAAA,cAAc,KAAK,EAAU;YAAU,sBAAA,EAAA,SAAiB;YAAU,uBAAA,EAAA,aAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAApG,YAAO,GAAP,OAAO,CAAsB;YAAU,UAAK,GAAL,KAAK,CAAY;YAAU,WAAM,GAAN,MAAM,CAA4B;QAEzI,CAAC;QAED,8BAAQ,GAAR;YACC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,+BAAS,GAAT;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,+BAAS,GAAT;YACE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6BAAO,GAAP,UAAQ,gBAAyB;YAChC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;wBACpB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;4BACpB,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACpB,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAC3B;qBACD;iBACD;aACD;YACD,OAAO,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,mCAAa,GAAb;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,gCAAU,GAAV;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,QAAQ,SAAS,EAAE;gBACnB,KAAK,CAAC;oBACL,OAAO,IAAI,CAAC;gBACb,KAAK,CAAC;oBACL,OAAO,EAAE,CAAC;aACV;YACD,SAAS,EAAE,CAAC;YACZ,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG;gBAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAChB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACN,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;wBACzE,CAAC,IAAI,CAAC,CAAC;wBACP,MAAM;oBACP,KAAK,EAAE;wBACN,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;wBAC1G,CAAC,IAAI,CAAC,CAAC;wBACP,MAAM;oBACP;wBACC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,EAAE,CAAC;iBACJ;aACD;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,+BAAS,GAAT;YACC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,iCAAW,GAAX;YACC,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QACF,kBAAC;IAAD,CAAC,AAxFD,IAwFC;IAED;QAMC,oBAAa,IAAoB,EAAE,IAAY,EAAE,SAAiB,EAAE,MAAc,EAAE,aAAsB;YACzG,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;YACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACpC,CAAC;QACF,iBAAC;IAAD,CAAC,AAbD,IAaC;IAED;QACC,kBAAmB,KAA2B,EAAS,QAA6C;YAAjF,sBAAA,EAAA,YAA2B;YAAS,yBAAA,EAAA,eAA6C;YAAjF,UAAK,GAAL,KAAK,CAAsB;YAAS,aAAQ,GAAR,QAAQ,CAAqC;QAAI,CAAC;QAC1G,eAAC;IAAD,CAAC,AAFD,IAEC;AACF,CAAC,EAt2BM,KAAK,KAAL,KAAK,QAs2BX;ACt2BD,IAAO,KAAK,CAyMX;AAzMD,WAAO,KAAK;IAGX;QAAA;YAGC,SAAI,GAAG,CAAC,CAAC;YAGT,SAAI,GAAG,CAAC,CAAC;YAGT,SAAI,GAAG,CAAC,CAAC;YAGT,SAAI,GAAG,CAAC,CAAC;YAGT,kBAAa,GAAG,IAAI,KAAK,EAAyB,CAAC;YAGnD,aAAQ,GAAG,IAAI,KAAK,EAAqB,CAAC;YAElC,gBAAW,GAAG,IAAI,MAAA,IAAI,CAAoB;gBACjD,OAAO,MAAA,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QA8KJ,CAAC;QAxKA,+BAAM,GAAN,UAAQ,QAAkB,EAAE,UAAmB;YAC9C,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAChC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,UAAU,YAAY,MAAA,qBAAqB,EAAE;oBAChD,IAAI,WAAW,GAAG,UAAmC,CAAC;oBACtD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAEhC,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;oBACnC,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE;wBACtD,OAAO,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;qBAC/D;oBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC1F;aACD;YAED,IAAI,UAAU,EAAE;gBACf,IAAI,CAAC,WAAW,EAAE,CAAC;aACnB;iBAAM;gBACN,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;aACrC;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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC;gBACvB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;oBACvD,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;iBACzB;aACD;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,OAAO,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,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,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;gBACvH,OAAO,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,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtC,OAAO,KAAK,CAAC;QACd,CAAC;QAGD,+CAAsB,GAAtB,UAAwB,MAAsB;YAC7C,OAAO,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAChF,OAAO,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,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;gBAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE;oBAC/D,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;wBAAE,MAAM,GAAG,CAAC,MAAM,CAAC;iBACxG;gBACD,SAAS,GAAG,EAAE,CAAC;aACf;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QAKD,0CAAiB,GAAjB,UAAmB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;YAChE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC9C,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9F,OAAO,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,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;gBAClC,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,IAAI,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,EAAE;oBACrG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnD,IAAI,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;wBAAE,OAAO,IAAI,CAAC;iBAClH;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,EAAE,CAAC;aACR;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAGD,mCAAU,GAAV,UAAY,WAAkC;YAC7C,IAAI,WAAW,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpD,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAGD,iCAAQ,GAAR;YACC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QAGD,kCAAS,GAAT;YACC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC;QACF,qBAAC;IAAD,CAAC,AApMD,IAoMC;IApMY,oBAAc,iBAoM1B,CAAA;AAEF,CAAC,EAzMM,KAAK,KAAL,KAAK,QAyMX;ACzMD,IAAO,KAAK,CA6TX;AA7TD,WAAO,KAAK;IACX;QAAA;YACS,iBAAY,GAAG,IAAI,MAAA,YAAY,EAAE,CAAC;YAClC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,eAAU,GAAG,IAAI,KAAK,EAAU,CAAC;YACzC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;YACtC,qBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;YAC/B,YAAO,GAAG,IAAI,KAAK,EAAU,CAAC;QAqTvC,CAAC;QAhTA,oCAAS,GAAT,UAAW,IAAU,EAAE,IAAwB;YAC9C,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACjC,IAAI,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5I,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,EAAE,EAAE;gBACxD,IAAI,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;YAED,OAAO,gBAAgB,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,0CAAe,GAAf,UAAiB,IAAU;YAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7F,CAAC;QAED,kCAAO,GAAP;YACC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;gBAAE,OAAO;YACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,qCAAU,GAAV;YACC,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;QACpC,CAAC;QAED,wCAAa,GAAb,UAAe,QAA2B,EAAE,cAAsB,EAAE,SAA4B,EAAE,eAAuB,EAAE,GAAsB,EAChJ,KAAY,EAAE,IAAW,EAAE,QAAiB;YAE5C,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACzE,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACrC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACjD,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,KAAK,EACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,YAAY,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;oBACvC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;oBAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;wBAC/D,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzC,IAAI,gBAAgB,IAAI,CAAC;4BAAE,SAAS;wBACpC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;wBAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAEvC,IAAI,eAAe,GAAG,gBAAgB,IAAI,CAAC,CAAC;wBAC5C,IAAI,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;wBACtC,IAAI,oBAAoB,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;wBACjG,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE;4BAChD,IAAI,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzD,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAChC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACtC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;4BAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BAClB,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BACvD,IAAI,QAAQ,EAAE;gCACb,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gCACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;6BACtC;4BACD,CAAC,IAAI,UAAU,CAAC;yBAChB;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChG,eAAe,EAAE,CAAC;wBAClB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,EAAE;4BAC5C,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;4BAC5C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;4BAChD,CAAC,IAAI,CAAC,CAAC;yBACP;wBACD,KAAK,IAAI,eAAe,GAAG,CAAC,CAAC;qBAE7B;yBAAM;wBACN,IAAI,oBAAoB,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;wBACnF,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC7B,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;wBACtC,IAAI,CAAC,QAAQ,EAAE;4BACd,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BAEjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAElC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;yBAClC;6BAAM;4BACN,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;4BACjC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACrC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAEtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;4BACvC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;4BAClC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BACtC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;yBACtC;wBAED,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;wBAC5B,IAAI,qBAAqB,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxE,qBAAqB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wBACjC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,SAAS,KAAK,CAAC;qBACf;iBACD;aACD;QACF,CAAC;QAID,+BAAI,GAAJ,UAAM,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,YAA2B,EAAE,MAAqB;YAC/H,IAAI,cAAc,GAAG,MAAM,CAAC;YAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;YAGpB,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE;gBACjC,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;aACtB;;gBACA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAEtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAElB,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,IAAI,oBAAoB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,MAAM,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;gBAErD,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACnD,IAAI,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACrE,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1E,IAAI,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE;wBAChE,IAAI,KAAK,EAAE;4BACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrB,SAAS;yBACT;wBAED,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;wBACtD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE;4BAC3B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;4BAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;yBAC3C;6BAAM;4BACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACnB;qBACD;yBAAM,IAAI,KAAK,EAAE;wBACjB,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC;wBACjD,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;wBACtD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE;4BAC3B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;4BAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;yBAC3C;6BAAM;4BACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACnB;wBACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACrB;oBACD,OAAO,GAAG,IAAI,CAAC;iBACf;gBAED,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,OAAO,IAAI,CAAC;iBACZ;gBAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvB,IAAI,CAAC,IAAI,oBAAoB;oBAAE,MAAM;gBACrC,IAAI,IAAI,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,KAAK,GAAG,IAAI,CAAC;aACb;YAED,IAAI,cAAc,IAAI,MAAM,EAAE;gBAC7B,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChD,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B;;gBACA,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEnD,OAAO,OAAO,CAAC;QAChB,CAAC;QAEa,8BAAa,GAA3B,UAA6B,OAA0B;YACtD,IAAI,QAAQ,GAAG,OAAO,CAAC;YACvB,IAAI,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAEpC,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;YACvI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACtD,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aAC9B;YACD,IAAI,IAAI,GAAG,CAAC;gBAAE,OAAO;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACnF,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACxB;QACF,CAAC;QACF,uBAAC;IAAD,CAAC,AA3TD,IA2TC;IA3TY,sBAAgB,mBA2T5B,CAAA;AACF,CAAC,EA7TM,KAAK,KAAL,KAAK,QA6TX;AC7TD,IAAO,KAAK,CAkMX;AAlMD,WAAO,KAAK;IAKX;QAAA;YAMC,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAG9B,UAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAC9B,UAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;YAS1B,WAAM,GAAG,IAAI,KAAK,EAAa,CAAC;YAGhC,eAAU,GAAG,IAAI,KAAK,EAAa,CAAC;YAGpC,kBAAa,GAAG,IAAI,KAAK,EAAoB,CAAC;YAG9C,yBAAoB,GAAG,IAAI,KAAK,EAA2B,CAAC;YAG5D,oBAAe,GAAG,IAAI,KAAK,EAAsB,CAAC;YAsBlD,QAAG,GAAG,CAAC,CAAC;QAuIT,CAAC;QA5HA,+BAAQ,GAAR,UAAU,QAAgB;YACzB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;aACvC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QAKD,+BAAQ,GAAR,UAAU,QAAgB;YACzB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;aACvC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,oCAAa,GAAb,UAAe,QAAgB;YAC9B,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QAKD,+BAAQ,GAAR,UAAU,QAAgB;YACzB,IAAI,QAAQ,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC;aACvC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,gCAAS,GAAT,UAAW,aAAqB;YAC/B,IAAI,aAAa,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,OAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,OAAK,CAAC,IAAI,IAAI,aAAa;oBAAE,OAAO,OAAK,CAAC;aAC9C;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,oCAAa,GAAb,UAAe,aAAqB;YACnC,IAAI,aAAa,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC5E,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,SAAS,CAAC,IAAI,IAAI,aAAa;oBAAE,OAAO,SAAS,CAAC;aACtD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,uCAAgB,GAAhB,UAAkB,cAAsB;YACvC,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,UAAU,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,UAAU,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,8CAAuB,GAAvB,UAAyB,cAAsB;YAC9C,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5D,IAAI,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,UAAU,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAKD,yCAAkB,GAAlB,UAAoB,cAAsB;YACzC,IAAI,cAAc,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,UAAU,CAAC,IAAI,IAAI,cAAc;oBAAE,OAAO,UAAU,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,8CAAuB,GAAvB,UAAyB,kBAA0B;YAClD,IAAI,kBAAkB,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACtF,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACrD,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB;oBAAE,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACF,mBAAC;IAAD,CAAC,AA5LD,IA4LC;IA5LY,kBAAY,eA4LxB,CAAA;AACF,CAAC,EAlMM,KAAK,KAAL,KAAK,QAkMX;AClMD,IAAO,KAAK,CA2zBX;AA3zBD,WAAO,KAAK;IAOX;QAUC,sBAAa,gBAAkC;YAH/C,UAAK,GAAG,CAAC,CAAC;YACF,iBAAY,GAAG,IAAI,KAAK,EAAc,CAAC;YAG9C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,CAAC;QAED,uCAAgB,GAAhB,UAAkB,IAAkB;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,MAAA,YAAY,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,OAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAG/D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChC,IAAI,WAAW,IAAI,IAAI,EAAE;gBACxB,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBACrC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;gBACzC,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/B,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/B,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;aAC7C;YAGD,IAAI,IAAI,CAAC,KAAK,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,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,IAAI,UAAU,IAAI,IAAI,EAAE;wBACvB,QAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC3C,IAAI,QAAM,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;qBAC5E;oBACD,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAM,CAAC,CAAC;oBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACzG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAE1D,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC9B;aACD;YAGD,IAAI,IAAI,CAAC,KAAK,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,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,IAAI,QAAQ,IAAI,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;oBAC1E,IAAI,IAAI,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAEvE,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC1D,IAAI,KAAK,IAAI,IAAI;wBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,IAAI,IAAI,IAAI,IAAI,EAAE;wBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;qBACnC;oBAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7F,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC9B;aACD;YAGD,IAAI,IAAI,CAAC,EAAE,EAAE;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,IAAI,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,IAAI,GAAG,IAAI,MAAA,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,IAAI,IAAI,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACtB;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,UAAU,CAAC,CAAC;oBAEpF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBACpE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;oBAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;oBAE9D,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtC;aACD;YAGD,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/C,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,MAAA,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,IAAI,IAAI,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACtB;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,UAAU,CAAC,CAAC;oBAEtG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAE5D,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7C;aACD;YAGD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,GAAG,IAAI,MAAA,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,IAAI,IAAI,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,QAAQ,CAAC,CAAC;wBACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACtB;oBAED,IAAI,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;wBAAE,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,IAAI,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK;wBAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;oBACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1D,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK;wBAAE,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;iBACxC;aACD;YAGD,IAAI,IAAI,CAAC,KAAK,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAC3B,IAAI,IAAI,GAAG,IAAI,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAElC,IAAI,OAAO,CAAC,KAAK,EAAE;wBAClB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BACjD,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BACpD,IAAI,IAAI,IAAI,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACtB;qBACD;oBAED,IAAI,OAAO,CAAC,EAAE,EAAE;wBACf,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BAC9C,IAAI,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC/D,IAAI,UAAU,IAAI,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAClC;qBACD;oBAED,IAAI,OAAO,CAAC,SAAS,EAAE;wBACtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BACrD,IAAI,UAAU,GAAG,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7E,IAAI,UAAU,IAAI,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;4BACxG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAClC;qBACD;oBAED,IAAI,OAAO,CAAC,IAAI,EAAE;wBACjB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;4BAChD,IAAI,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;4BACnE,IAAI,UAAU,IAAI,IAAI;gCAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAClC;qBACD;oBAED,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE;wBACzC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC3C,IAAI,IAAI,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;wBACjE,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC5C,KAAK,IAAI,SAAS,IAAI,OAAO,EAAE;4BAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;4BACpG,IAAI,UAAU,IAAI,IAAI;gCAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;yBAC9E;qBACD;oBACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;wBAAE,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;iBAC5D;aACD;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzD,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvG,IAAI,IAAI,IAAI,IAAI;oBAAE,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,IAAI,QAAM,IAAI,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnF,UAAU,CAAC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAmB,QAAM,CAAC,CAAC,CAAmB,UAAU,CAAC,IAAI,CAAC;gBAC3H,UAAU,CAAC,IAAI,CAAC,aAAa,CAAkB,QAAM,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAG7B,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChB,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;oBAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,IAAI,MAAA,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACxD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;wBAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;qBACrD;oBACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/B;aACD;YAGD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACpB,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC1C,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;iBAC9D;aACD;YAED,OAAO,YAAY,CAAC;QACrB,CAAC;QAED,qCAAc,GAAd,UAAgB,GAAQ,EAAE,IAAU,EAAE,SAAiB,EAAE,IAAY,EAAE,YAA0B;YAChG,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEhD,QAAQ,IAAI,EAAE;gBACb,KAAK,QAAQ,CAAC,CAAC;oBACd,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,IAAI,MAAM,IAAI,IAAI;wBAAE,OAAO,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,IAAI,KAAK,IAAI,IAAI;wBAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAErD,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,OAAO,MAAM,CAAC;iBACd;gBACD,KAAK,aAAa,CAAC,CAAC;oBACnB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrE,IAAI,GAAG,IAAI,IAAI;wBAAE,OAAO,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,IAAI,KAAK,IAAI,IAAI;wBAAE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAClD,OAAO,GAAG,CAAC;iBACX;gBACD,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY,CAAC,CAAC;oBAClB,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,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,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,IAAI,KAAK,IAAI,IAAI;wBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAEtD,IAAI,QAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACxD,IAAI,QAAM,IAAI,IAAI,EAAE;wBACnB,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,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC/I,OAAO,IAAI,CAAC;qBACZ;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,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpD,OAAO,IAAI,CAAC;iBACZ;gBACD,KAAK,MAAM,CAAC,CAAC;oBACZ,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/D,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;oBAE/D,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,OAAO,GAAkB,MAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;wBAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBAEvB,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,IAAI,KAAK,IAAI,IAAI;wBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,OAAO,IAAI,CAAC;iBACZ;gBACD,KAAK,OAAO,CAAC,CAAC;oBACb,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjE,IAAI,KAAK,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAC/B,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC7C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEnD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC9C,IAAI,KAAK,IAAI,IAAI;wBAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpD,OAAO,KAAK,CAAC;iBACb;gBACD,KAAK,UAAU,CAAC,CAAC;oBAChB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,IAAI,IAAI,IAAI,IAAI;wBAAE,OAAO,IAAI,CAAC;oBAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC1C,IAAI,GAAG,IAAI,IAAI,EAAE;wBAChB,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACtC,IAAI,IAAI,IAAI,IAAI;4BAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;wBACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;qBACpB;oBAED,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;oBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;oBAE/C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtD,IAAI,KAAK,IAAI,IAAI;wBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACnD,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,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,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACtC,IAAI,cAAc,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,KAAK,IAAI,CAAC,EAAE;oBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBAC9C,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;iBAC5B;gBACD,UAAU,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACrC,OAAO;aACP;YACD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,KAAK,EAAU,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG;gBAC5C,IAAI,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,KAAK,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;oBAChD,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;iBAC9B;aACD;YACD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,oCAAa,GAAb,UAAe,GAAQ,EAAE,IAAY,EAAE,YAA0B;YAChE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,IAAI,KAAK,EAAY,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;YAGjB,IAAI,GAAG,CAAC,KAAK,EAAE;gBACd,KAAK,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE;oBAC/B,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,SAAS,IAAI,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,KAAK,IAAI,YAAY,IAAI,OAAO,EAAE;wBACjC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,IAAI,YAAY,IAAI,YAAY,EAAE;4BACjC,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BAC1D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;6BACnF;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;yBAC7E;6BAAM,IAAI,YAAY,IAAI,OAAO,EAAE;4BACnC,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACrD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACxB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gCACtG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;yBAEvG;6BAAM,IAAI,YAAY,IAAI,UAAU,EAAE;4BACtC,IAAI,QAAQ,GAAG,IAAI,MAAA,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACxD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACxB,IAAI,IAAI,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gCACvB,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gCACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCAClC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAC9H,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;yBAE1G;;4BACA,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;qBAC9F;iBACD;aACD;YAGD,IAAI,GAAG,CAAC,KAAK,EAAE;gBACd,KAAK,IAAI,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE;oBAC/B,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,SAAS,IAAI,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,CAAC;oBACpE,KAAK,IAAI,YAAY,IAAI,OAAO,EAAE;wBACjC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;wBACxC,IAAI,YAAY,KAAK,QAAQ,EAAE;4BAC9B,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gCACvG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;yBAExG;6BAAM,IAAI,YAAY,KAAK,WAAW,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,OAAO,EAAE;4BAChG,IAAI,QAAQ,GAAsB,IAAI,CAAC;4BACvC,IAAI,aAAa,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;4BACxC,IAAI,YAAY,KAAK,OAAO,EAAE;gCAC7B,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACjD,YAAY,GAAG,CAAC,CAAC;6BACjB;iCAAM,IAAI,YAAY,KAAK,OAAO;gCAClC,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iCAC7C;gCACJ,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACrD,aAAa,GAAG,KAAK,CAAC;6BACtB;4BACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAE/B,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;gCACnG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;gCACxG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;yBAE3G;;4BACA,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;qBAC9F;iBACD;aACD;YAGD,IAAI,GAAG,CAAC,EAAE,EAAE;gBACX,KAAK,IAAI,cAAc,IAAI,GAAG,CAAC,EAAE,EAAE;oBAClC,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,UAAU,GAAG,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAC/D,IAAI,QAAQ,GAAG,IAAI,MAAA,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC9D,QAAQ,CAAC,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,KAAK,EAClJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;wBAChJ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/C,UAAU,EAAE,CAAC;qBACb;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC9G;aACD;YAGD,IAAI,GAAG,CAAC,SAAS,EAAE;gBAClB,KAAK,IAAI,cAAc,IAAI,GAAG,CAAC,SAAS,EAAE;oBACzC,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,UAAU,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACtE,IAAI,QAAQ,GAAG,IAAI,MAAA,2BAA2B,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrE,QAAQ,CAAC,wBAAwB,GAAG,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACxG,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;qBACb;oBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;iBACxF;aACD;YAGD,IAAI,GAAG,CAAC,IAAI,EAAE;gBACb,KAAK,IAAI,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE;oBACpC,IAAI,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC7C,IAAI,KAAK,GAAG,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;oBACjE,IAAI,KAAK,IAAI,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,cAAc,CAAC,CAAC;oBACjF,IAAI,IAAI,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC/C,KAAK,IAAI,YAAY,IAAI,aAAa,EAAE;wBACvC,IAAI,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;wBAC9C,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,SAAS,EAAE;4BAC9D,IAAI,QAAQ,GAAmC,IAAI,CAAC;4BACpD,IAAI,aAAa,GAAG,CAAC,CAAC;4BACtB,IAAI,YAAY,KAAK,SAAS,EAAE;gCAC/B,QAAQ,GAAG,IAAI,MAAA,6BAA6B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCACjE,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAA,WAAW,CAAC,KAAK;oCAAE,aAAa,GAAG,KAAK,CAAC;6BAC3G;iCAAM;gCACN,QAAQ,GAAG,IAAI,MAAA,8BAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gCAClE,IAAI,IAAI,CAAC,YAAY,IAAI,MAAA,YAAY,CAAC,KAAK;oCAAE,aAAa,GAAG,KAAK,CAAC;6BACnE;4BACD,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gCAC5H,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;yBAC3F;6BAAM,IAAI,YAAY,KAAK,KAAK,EAAE;4BAClC,IAAI,QAAQ,GAAG,IAAI,MAAA,yBAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACjE,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;4BACrC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,EACxG,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;6BACb;4BACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACzB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,GAAG,MAAA,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;yBACtF;qBACD;iBACD;aACD;YAGD,IAAI,GAAG,CAAC,MAAM,EAAE;gBACf,KAAK,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE;oBAClC,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACvC,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC7C,IAAI,IAAI,IAAI,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC,CAAC;oBACnE,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE;wBAC/B,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAClC,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,SAAS,IAAI,CAAC,CAAC;4BAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;wBACxE,KAAK,IAAI,YAAY,IAAI,OAAO,EAAE;4BACjC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;4BACxC,IAAI,UAAU,GAAqB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BAC/E,IAAI,UAAU,IAAI,IAAI;gCAAE,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,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;4BAExE,IAAI,QAAQ,GAAG,IAAI,MAAA,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;4BACtD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;4BAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;4BAEjC,IAAI,UAAU,GAAG,CAAC,CAAC;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC5C,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,IAAI,aAAa,IAAI,IAAI;oCACxB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;qCAC7D;oCACJ,MAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oCAC3C,IAAI,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;oCACzD,MAAA,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oCACvE,IAAI,KAAK,IAAI,CAAC,EAAE;wCACf,KAAK,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;qCACpB;oCACD,IAAI,CAAC,QAAQ,EAAE;wCACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;4CACpC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;qCAC1B;iCACD;gCAED,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gCAC1E,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAC/C,UAAU,EAAE,CAAC;6BACb;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;yBAC7E;qBACD;iBACD;aACD;YAGD,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YAClC,IAAI,aAAa,IAAI,IAAI;gBAAE,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;YACzD,IAAI,aAAa,IAAI,IAAI,EAAE;gBAC1B,IAAI,QAAQ,GAAG,IAAI,MAAA,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,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,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAS,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAS,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACtE,IAAI,aAAa,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;wBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxC,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC3D,IAAI,SAAS,IAAI,CAAC,CAAC;gCAAE,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;yBAC9D;wBAED,OAAO,aAAa,GAAG,SAAS;4BAC/B,SAAS,CAAC,cAAc,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;wBAE/C,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BACtC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gCAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC;qBACpE;oBACD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;iBACnF;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;aAC7E;YAGD,IAAI,GAAG,CAAC,MAAM,EAAE;gBACf,IAAI,QAAQ,GAAG,IAAI,MAAA,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,SAAS,IAAI,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5E,IAAI,OAAK,GAAG,IAAI,MAAA,KAAK,CAAC,MAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC9F,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,IAAI,OAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;wBACjC,OAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACpD,OAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;qBACtD;oBACD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAK,CAAC,CAAC;iBACvC;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;aAC7E;YAED,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;aAClE;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAA,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,gCAAS,GAAT,UAAW,GAAQ,EAAE,QAAuB,EAAE,UAAkB;YAC/D,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC;gBAAE,OAAO;YACzC,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS;gBACzB,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;iBAC5B;gBACJ,IAAI,KAAK,GAAW,GAAG,CAAC,KAAK,CAAC;gBAC9B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5H;QACF,CAAC;QAED,+BAAQ,GAAR,UAAU,GAAQ,EAAE,IAAY,EAAE,YAAiB;YAClD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC3D,CAAC;QAEM,gCAAmB,GAA1B,UAA4B,GAAW;YACtC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,QAAQ;gBAAE,OAAO,MAAA,SAAS,CAAC,MAAM,CAAC;YAC7C,IAAI,GAAG,IAAI,UAAU;gBAAE,OAAO,MAAA,SAAS,CAAC,QAAQ,CAAC;YACjD,IAAI,GAAG,IAAI,UAAU;gBAAE,OAAO,MAAA,SAAS,CAAC,QAAQ,CAAC;YACjD,IAAI,GAAG,IAAI,QAAQ;gBAAE,OAAO,MAAA,SAAS,CAAC,MAAM,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,yBAAuB,GAAK,CAAC,CAAC;QAC/C,CAAC;QAEM,mCAAsB,GAA7B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,OAAO;gBAAE,OAAO,MAAA,YAAY,CAAC,KAAK,CAAC;YAC9C,IAAI,GAAG,IAAI,SAAS;gBAAE,OAAO,MAAA,YAAY,CAAC,OAAO,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,kCAAqB,GAA5B,UAA8B,GAAW;YACxC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,QAAQ;gBAAE,OAAO,MAAA,WAAW,CAAC,MAAM,CAAC;YAC/C,IAAI,GAAG,IAAI,OAAO;gBAAE,OAAO,MAAA,WAAW,CAAC,KAAK,CAAC;YAC7C,IAAI,GAAG,IAAI,SAAS;gBAAE,OAAO,MAAA,WAAW,CAAC,OAAO,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA0B,GAAK,CAAC,CAAC;QAClD,CAAC;QAEM,iCAAoB,GAA3B,UAA6B,GAAW;YACvC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,SAAS;gBAAE,OAAO,MAAA,UAAU,CAAC,OAAO,CAAC;YAChD,IAAI,GAAG,IAAI,OAAO;gBAAE,OAAO,MAAA,UAAU,CAAC,KAAK,CAAC;YAC5C,IAAI,GAAG,IAAI,YAAY;gBAAE,OAAO,MAAA,UAAU,CAAC,UAAU,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,0BAAwB,GAAK,CAAC,CAAC;QAChD,CAAC;QAEM,oCAAuB,GAA9B,UAA+B,GAAW;YACzC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,QAAQ;gBAAE,OAAO,MAAA,aAAa,CAAC,MAAM,CAAC;YACjD,IAAI,GAAG,IAAI,iBAAiB;gBAAE,OAAO,MAAA,aAAa,CAAC,eAAe,CAAC;YACnE,IAAI,GAAG,IAAI,wBAAwB;gBAAE,OAAO,MAAA,aAAa,CAAC,sBAAsB,CAAC;YACjF,IAAI,GAAG,IAAI,SAAS;gBAAE,OAAO,MAAA,aAAa,CAAC,OAAO,CAAC;YACnD,IAAI,GAAG,IAAI,qBAAqB;gBAAE,OAAO,MAAA,aAAa,CAAC,mBAAmB,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6BAA2B,GAAK,CAAC,CAAC;QACnD,CAAC;QACF,mBAAC;IAAD,CAAC,AApyBD,IAoyBC;IApyBY,kBAAY,eAoyBxB,CAAA;IAED;QAMC,oBAAa,IAAoB,EAAE,IAAY,EAAE,SAAiB,EAAE,MAAc,EAAE,aAAsB;YACzG,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;YACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACpC,CAAC;QACF,iBAAC;IAAD,CAAC,AAbD,IAaC;AACF,CAAC,EA3zBM,KAAK,KAAL,KAAK,QA2zBX;AC3zBD,IAAO,KAAK,CA4KX;AA5KD,WAAO,KAAK;IAEX;QACC,mBAAmB,SAAiB,EAAS,IAAY,EAAS,UAAsB;YAArE,cAAS,GAAT,SAAS,CAAQ;YAAS,SAAI,GAAJ,IAAI,CAAQ;YAAS,eAAU,GAAV,UAAU,CAAY;QAAI,CAAC;QAC9F,gBAAC;IAAD,CAAC,AAFD,IAEC;IAFY,eAAS,YAErB,CAAA;IAMD;QAQC,cAAa,IAAY;YAJzB,gBAAW,GAAG,IAAI,KAAK,EAAmB,CAAC;YAC3C,UAAK,GAAG,KAAK,EAAY,CAAC;YAC1B,gBAAW,GAAG,IAAI,KAAK,EAAkB,CAAC;YAGzC,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGD,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY,EAAE,UAAsB;YACrE,IAAI,UAAU,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACtE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,SAAS,IAAI,WAAW,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAAE,WAAW,CAAC,SAAS,CAAC,GAAG,EAAG,CAAC;YAC1D,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3C,CAAC;QAGD,sBAAO,GAAP,UAAS,IAAU;YAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;wBAC1B,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;qBACN;iBACD;gBACD,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;YAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE;wBACtC,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;qBACN;iBACD;gBACD,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAClD;YAED,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;aACjF;QACF,CAAC;QAID,uBAAQ,GAAR,UAAU,IAAU;YACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;wBAC1B,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;qBACN;iBACD;gBACD,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;YAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE;wBACtC,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;qBACN;iBACD;gBACD,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAClD;YAED,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI;oBAAE,SAAS;gBAC5C,IAAI,UAAU,CAAC,UAAU,YAAY,MAAA,cAAc,EAAE;oBACpD,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;oBAC9D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;iBACjF;qBAAM;oBACN,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;iBACjF;aACD;QACF,CAAC;QAGD,4BAAa,GAAb,UAAe,SAAiB,EAAE,IAAY;YAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,CAAC;QAGD,+BAAgB,GAAhB,UAAkB,SAAiB,EAAE,IAAY;YAChD,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,UAAU;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACzC,CAAC;QAGD,6BAAc,GAAd;YACC,IAAI,OAAO,GAAG,IAAI,KAAK,EAAa,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,eAAe,EAAE;oBACpB,KAAK,IAAI,MAAI,IAAI,eAAe,EAAE;wBACjC,IAAI,UAAU,GAAG,eAAe,CAAC,MAAI,CAAC,CAAC;wBACvC,IAAI,UAAU;4BAAE,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,MAAI,EAAE,UAAU,CAAC,CAAC,CAAC;qBACjE;iBACD;aACD;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QAGD,oCAAqB,GAArB,UAAuB,SAAiB,EAAE,WAA6B;YACtE,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,eAAe,EAAE;gBACpB,KAAK,IAAI,MAAI,IAAI,eAAe,EAAE;oBACjC,IAAI,UAAU,GAAG,eAAe,CAAC,MAAI,CAAC,CAAC;oBACvC,IAAI,UAAU;wBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,MAAI,EAAE,UAAU,CAAC,CAAC,CAAC;iBAC7E;aACD;QACF,CAAC;QAGD,oBAAK,GAAL;YACC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,CAAC;QAGD,wBAAS,GAAT,UAAW,QAAkB,EAAE,OAAa;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,cAAc,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC7D,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAChD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;wBAC3B,IAAI,cAAc,GAAc,UAAU,CAAC,GAAG,CAAC,CAAC;wBAChD,IAAI,cAAc,IAAI,cAAc,EAAE;4BACrC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;4BACpD,IAAI,UAAU,IAAI,IAAI;gCAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;4BACvD,MAAM;yBACN;qBACD;iBACD;gBACD,SAAS,EAAE,CAAC;aACZ;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AAjKD,IAiKC;IAjKY,UAAI,OAiKhB,CAAA;AACF,CAAC,EA5KM,KAAK,KAAL,KAAK,QA4KX;AC5KD,IAAO,KAAK,CAiFX;AAjFD,WAAO,KAAK;IAKX;QAyBC,cAAa,IAAc,EAAE,IAAU;YAFvC,WAAM,GAAG,IAAI,KAAK,EAAU,CAAC;YAG5B,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAA,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAGD,0BAAW,GAAX;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3B,CAAC;QAGD,4BAAa,GAAb;YACC,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAID,4BAAa,GAAb,UAAe,UAAsB;YACpC,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU;gBAAE,OAAO;YAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,gCAAiB,GAAjB,UAAmB,IAAY;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACtD,CAAC;QAID,gCAAiB,GAAjB;YACC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACtD,CAAC;QAGD,6BAAc,GAAd;YACC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACnB;gBACJ,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;aAChG;QACF,CAAC;QACF,WAAC;IAAD,CAAC,AA3ED,IA2EC;IA3EY,UAAI,OA2EhB,CAAA;AACF,CAAC,EAjFM,KAAK,KAAL,KAAK,QAiFX;ACjFD,IAAO,KAAK,CAqCX;AArCD,WAAO,KAAK;IAGX;QAyBC,kBAAa,KAAa,EAAE,IAAY,EAAE,QAAkB;YAZ5D,UAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAa7B,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACtD,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,AAjCD,IAiCC;IAjCY,cAAQ,WAiCpB,CAAA;AACF,CAAC,EArCM,KAAK,KAAL,KAAK,QAqCX;ACrCD,IAAO,KAAK,CAsEX;AAtED,WAAO,KAAK;IACX;QAGC,iBAAa,KAAuB;YACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,0BAAQ,GAAR;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAMa,wBAAgB,GAA9B,UAAgC,IAAY;YAC3C,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE;gBAC3B,KAAK,SAAS,CAAC,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC;gBAC7C,KAAK,QAAQ,CAAC,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,QAAQ,CAAC,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC;gBAC3C,KAAK,sBAAsB,CAAC,CAAC,OAAO,aAAa,CAAC,oBAAoB,CAAC;gBACvE,KAAK,qBAAqB,CAAC,CAAC,OAAO,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,qBAAqB,CAAC,CAAC,OAAO,aAAa,CAAC,mBAAmB,CAAC;gBACrE,KAAK,oBAAoB,CAAC,CAAC,OAAO,aAAa,CAAC,kBAAkB,CAAC;gBACnE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA0B,IAAM,CAAC,CAAC;aAC3D;QACF,CAAC;QAEa,sBAAc,GAA5B,UAA8B,IAAY;YACzC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE;gBAC3B,KAAK,gBAAgB,CAAC,CAAC,OAAO,WAAW,CAAC,cAAc,CAAC;gBACzD,KAAK,aAAa,CAAC,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC;gBACnD,KAAK,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC;gBACzC,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0BAAwB,IAAM,CAAC,CAAC;aACzD;QACF,CAAC;QACF,cAAC;IAAD,CAAC,AApCD,IAoCC;IApCqB,aAAO,UAoC5B,CAAA;IAED,IAAY,aAQX;IARD,WAAY,aAAa;QACxB,0DAAc,CAAA;QACd,wDAAa,CAAA;QACb,wDAAa,CAAA;QACb,oFAA2B,CAAA;QAC3B,kFAA0B,CAAA;QAC1B,kFAA0B,CAAA;QAC1B,gFAAyB,CAAA;IAC1B,CAAC,EARW,aAAa,GAAb,mBAAa,KAAb,mBAAa,QAQxB;IAED,IAAY,WAIX;IAJD,WAAY,WAAW;QACtB,qEAAsB,CAAA;QACtB,+DAAmB,CAAA;QACnB,qDAAc,CAAA;IACf,CAAC,EAJW,WAAW,GAAX,iBAAW,KAAX,iBAAW,QAItB;IAED;QAAA;YAEC,MAAC,GAAG,CAAC,CAAC;YAAC,MAAC,GAAG,CAAC,CAAC;YACb,OAAE,GAAG,CAAC,CAAC;YAAC,OAAE,GAAG,CAAC,CAAC;YACf,UAAK,GAAG,CAAC,CAAC;YAAC,WAAM,GAAG,CAAC,CAAC;YACtB,WAAM,GAAG,KAAK,CAAC;YACf,YAAO,GAAG,CAAC,CAAC;YAAC,YAAO,GAAG,CAAC,CAAC;YACzB,kBAAa,GAAG,CAAC,CAAC;YAAC,mBAAc,GAAG,CAAC,CAAC;QACvC,CAAC;QAAD,oBAAC;IAAD,CAAC,AARD,IAQC;IARY,mBAAa,gBAQzB,CAAA;IAED;QAAiC,+BAAO;QAAxC;;QAIA,CAAC;QAHA,gCAAU,GAAV,UAAW,SAAwB,EAAE,SAAwB,IAAI,CAAC;QAClE,8BAAQ,GAAR,UAAS,KAAkB,EAAE,KAAkB,IAAI,CAAC;QACpD,6BAAO,GAAP,cAAY,CAAC;QACd,kBAAC;IAAD,CAAC,AAJD,CAAiC,OAAO,GAIvC;IAJY,iBAAW,cAIvB,CAAA;AACF,CAAC,EAtEM,KAAK,KAAL,KAAK,QAsEX;ACtED,IAAO,KAAK,CA8LX;AA9LD,WAAO,KAAK;IACX;QAIC,sBAAa,SAAiB,EAAE,aAAoC;YAHpE,UAAK,GAAG,IAAI,KAAK,EAAoB,CAAC;YACtC,YAAO,GAAG,IAAI,KAAK,EAAsB,CAAC;YAGzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;QAEO,2BAAI,GAAZ,UAAc,SAAiB,EAAE,aAAoC;YACpE,IAAI,aAAa,IAAI,IAAI;gBACxB,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;gBACZ,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,IAAI,IAAI;oBACf,MAAM;gBACP,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;oBACnB,IAAI,GAAG,IAAI,CAAC;qBACR,IAAI,CAAC,IAAI,EAAE;oBACf,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEjB,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBACjC,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;qBACxB;oBAGD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEpD,IAAI,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC;oBACrC,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC;oBACrC,IAAI,SAAS,IAAI,GAAG;wBACnB,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;yBAC5B,IAAI,SAAS,IAAI,GAAG;wBACxB,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;yBAC5B,IAAI,SAAS,IAAI,IAAI;wBACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC;oBAE9C,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;oBAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;qBAAM;oBACN,IAAI,MAAM,GAAsB,IAAI,kBAAkB,EAAE,CAAC;oBACzD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEnB,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrC,IAAI,WAAW,CAAC,iBAAiB,EAAE,IAAI,MAAM,EAAE;wBAC9C,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;qBACpB;yBAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,IAAI,OAAO,EAAE;wBACtD,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;qBACnB;yBAAM;wBACN,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;qBACzC;oBACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;oBAErC,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,IAAI,MAAM,CAAC,MAAM,EAAE;wBAClB,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;qBACtC;yBAAM;wBACN,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;qBACvC;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,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBAEjC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BAEjC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;yBACxB;qBACD;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;iBAC1B;aACD;QACF,CAAC;QAED,iCAAU,GAAV,UAAY,IAAY;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE;oBACjC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACvB;aACD;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,8BAAO,GAAP;YACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAChC;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AA/HD,IA+HC;IA/HY,kBAAY,eA+HxB,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,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;gBAClC,OAAO,IAAI,CAAC;YACb,OAAO,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,IAAI,KAAK,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,OAAO,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,IAAI,KAAK,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzC,IAAI,KAAK,IAAI,CAAC,CAAC;oBAAE,MAAM;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;aACtB;YACD,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,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;;QASA,CAAC;QAAD,yBAAC;IAAD,CAAC,AATD,CAAwC,MAAA,aAAa,GASpD;IATY,wBAAkB,qBAS9B,CAAA;AACF,CAAC,EA9LM,KAAK,KAAL,KAAK,QA8LX;AC9LD,IAAO,KAAK,CA8QX;AA9QD,WAAO,KAAK;IAMX;QA0BC,6BAAa,IAA6B,EAAE,QAAkB;YAd9D,cAAS,GAAG,CAAC,CAAC;YAGd,iBAAY,GAAG,CAAC,CAAC;YAGjB,aAAQ,GAAG,CAAC,CAAC;YAGb,aAAQ,GAAG,CAAC,CAAC;YAEb,SAAI,GAAG,IAAI,MAAA,OAAO,EAAE,CAAC;YACrB,WAAM,GAAG,KAAK,CAAC;YAGd,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,IAAI;gBAAE,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,KAAK,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,sCAAQ,GAAR;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QAGD,mCAAK,GAAL;YACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;QAED,oCAAM,GAAN;YACC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;oBACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;;oBAE1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAE3B;iBAAM;gBACN,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;oBACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;;oBAE1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YAC9D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,IAAI,SAAS,IAAI,CAAC,EAAE;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,cAAc,CAAC;oBAC/D,IAAI,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE;wBACnB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE;wBACzB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,YAAY,IAAI,CAAC,EAAE;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;oBACrD,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,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,IAAI,CAAC,GAAG,OAAO;wBAAE,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,IAAI,CAAC,GAAG,OAAO;wBAAE,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;iBAChB;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,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,IAAI,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE;wBACnB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE;wBACzB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBACpB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,QAAQ;oBAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aACxC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,SAAS,CAAC,MAAM,CAAC;YACjF,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YACrH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,IAAI,SAAS,IAAI,CAAC,EAAE;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,cAAc,CAAC;oBAC5C,IAAI,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE;wBACnB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE;wBAAE,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBAC/C,CAAC,IAAI,SAAS,CAAC;oBACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;oBAC3B,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,YAAY,IAAI,CAAC,EAAE;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,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;oBACrC,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACnF,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE;wBACnB,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,MAAA,SAAS,CAAC,EAAE;wBAAE,CAAC,IAAI,MAAA,SAAS,CAAC,GAAG,CAAC;oBAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC3B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;oBACxE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,QAAQ,GAAG,IAAI,CAAC;iBAChB;gBAED,IAAI,QAAQ;oBAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aACxC;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,YAAY;gBAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,YAAY;oBAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,IAAI,SAAS,IAAI,CAAC,EAAE;oBACnB,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;oBAC/D,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC;iBAC1B;gBAED,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,YAAY,IAAI,CAAC,EAAE;oBACtB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;iBACxD;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,IAAI,QAAQ,IAAI,CAAC,EAAE;oBAClB,IAAI,MAAM,GAAG,OAAO;wBAAE,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;oBACjH,IAAI,MAAM,GAAG,OAAO;wBAAE,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC;iBACjH;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,QAAQ,IAAI,CAAC,EAAE;oBAClB,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;oBACzD,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;oBAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC;iBAC5B;gBAED,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACpF;QACF,CAAC;QAED,gDAAkB,GAAlB;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,YAAY;gBAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,YAAY;oBAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,IAAI,SAAS,IAAI,CAAC;oBAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;gBAE1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,YAAY,IAAI,CAAC,EAAE;oBACtB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;oBACpD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;iBACpD;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,IAAI,QAAQ,IAAI,CAAC,EAAE;oBAClB,IAAI,MAAM,GAAG,OAAO;wBAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC/F,IAAI,MAAM,GAAG,OAAO;wBAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;iBAC/F;gBAED,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,QAAQ,IAAI,CAAC;oBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAElF,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACpF;QACF,CAAC;QACF,0BAAC;IAAD,CAAC,AAvQD,IAuQC;IAvQY,yBAAmB,sBAuQ/B,CAAA;AACF,CAAC,EA9QM,KAAK,KAAL,KAAK,QA8QX;AC9QD,IAAO,KAAK,CAkDX;AAlDD,WAAO,KAAK;IAKX;QAA6C,2CAAc;QAyC1D,iCAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SACrB;YAxCD,WAAK,GAAG,IAAI,KAAK,EAAY,CAAC;YAM9B,eAAS,GAAG,CAAC,CAAC;YAGd,kBAAY,GAAG,CAAC,CAAC;YAGjB,cAAQ,GAAG,CAAC,CAAC;YAGb,cAAQ,GAAG,CAAC,CAAC;YAGb,oBAAc,GAAG,CAAC,CAAC;YAGnB,aAAO,GAAG,CAAC,CAAC;YAGZ,aAAO,GAAG,CAAC,CAAC;YAGZ,kBAAY,GAAG,CAAC,CAAC;YAGjB,kBAAY,GAAG,CAAC,CAAC;YAGjB,kBAAY,GAAG,CAAC,CAAC;YAEjB,cAAQ,GAAG,KAAK,CAAC;YACjB,WAAK,GAAG,KAAK,CAAC;;QAId,CAAC;QACF,8BAAC;IAAD,CAAC,AA5CD,CAA6C,MAAA,cAAc,GA4C1D;IA5CY,6BAAuB,0BA4CnC,CAAA;AACF,CAAC,EAlDM,KAAK,KAAL,KAAK,QAkDX;AClDD,IAAO,KAAK,CA+OX;AA/OD,WAAO,KAAK;IACX;QAAA;YACS,mBAAc,GAAG,IAAI,KAAK,EAAiB,CAAC;YAC5C,0BAAqB,GAAG,IAAI,KAAK,EAAiB,CAAC;YAEnD,iBAAY,GAAG,IAAI,KAAK,EAAU,CAAC;YACnC,mBAAc,GAAG,IAAI,KAAK,EAAW,CAAC;YACtC,cAAS,GAAG,IAAI,KAAK,EAAU,CAAC;YAEhC,gBAAW,GAAG,IAAI,MAAA,IAAI,CAAgB;gBAC7C,OAAO,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEK,uBAAkB,GAAG,IAAI,MAAA,IAAI,CAAgB;gBACpD,OAAO,IAAI,KAAK,EAAU,CAAC;YAC5B,CAAC,CAAC,CAAC;QA+NJ,CAAC;QA7NO,kCAAW,GAAlB,UAAoB,aAAgC;YACnD,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,WAAW,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC;YAE5C,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACpC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC1C,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE1E,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAErB,OAAO,WAAW,GAAG,CAAC,EAAE;gBAEvB,IAAI,QAAQ,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;gBAChD,OAAO,IAAI,EAAE;oBACZ,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBAClB,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC/E,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/C,KAAK,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE;4BACpF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gCAAE,SAAS;4BAC7B,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3C,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;gCAC1D,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;oCAC1D,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;wCAAE,MAAM,KAAK,CAAC;iCACvE;6BACD;yBACD;wBACD,MAAM;qBACN;oBAED,IAAI,IAAI,IAAI,CAAC,EAAE;wBACd,GAAG;4BACF,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gCAAE,MAAM;4BACzB,CAAC,EAAE,CAAC;yBACJ,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAChB,MAAM;qBACN;oBAED,QAAQ,GAAG,CAAC,CAAC;oBACb,CAAC,GAAG,IAAI,CAAC;oBACT,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;iBAChC;gBAGD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,WAAW,EAAE,CAAC;gBAEd,IAAI,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACxD,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjG,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACzF;YAED,IAAI,WAAW,IAAI,CAAC,EAAE;gBACrB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B;YAED,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,gCAAS,GAAT,UAAW,aAA4B,EAAE,SAAwB;YAChE,IAAI,QAAQ,GAAG,aAAa,CAAC;YAC7B,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACvD,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjC,IAAI,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;YACtD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1B,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAGnB,IAAI,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACpD,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnF,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAG7C,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,YAAY,IAAI,EAAE,EAAE;oBACvB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBACxG,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,IAAI,QAAQ,IAAI,WAAW,IAAI,QAAQ,IAAI,WAAW,EAAE;wBACvD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxB,MAAM,GAAG,IAAI,CAAC;qBACd;iBACD;gBAGD,IAAI,CAAC,MAAM,EAAE;oBACZ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBAC3C;yBAAM;wBACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBAC7C;oBACD,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAClD,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC3D,YAAY,GAAG,EAAE,CAAC;iBAClB;aACD;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC3C;YAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtD,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC;oBAAE,SAAS;gBACzC,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE1D,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEvF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;oBAC9B,IAAI,EAAE,IAAI,CAAC;wBAAE,SAAS;oBACtB,IAAI,YAAY,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC;wBAAE,SAAS;oBACvC,IAAI,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAErC,IAAI,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAE/E,IAAI,eAAe,IAAI,UAAU,IAAI,gBAAgB,IAAI,SAAS;wBAAE,SAAS;oBAC7E,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChF,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9E,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,EAAE;wBAC/C,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;wBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBACpC,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS,GAAG,KAAK,CAAC;wBAClB,KAAK,GAAG,EAAE,CAAC;wBACX,KAAK,GAAG,EAAE,CAAC;wBACX,EAAE,GAAG,CAAC,CAAC;qBACP;iBACD;aACD;YAGD,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpD,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBACxB,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;oBACzC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBAC7C;aACD;YAED,OAAO,cAAc,CAAC;QACvB,CAAC;QAEc,sBAAS,GAAxB,UAA0B,KAAa,EAAE,WAAmB,EAAE,QAA2B,EAAE,OAA0B;YACpH,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAC7H,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAEc,yBAAY,GAA3B,UAA6B,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACxG,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAEc,oBAAO,GAAtB,UAAwB,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW,EAAE,GAAW;YACnG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;YACnC,OAAO,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACF,mBAAC;IAAD,CAAC,AA7OD,IA6OC;IA7OY,kBAAY,eA6OxB,CAAA;AACF,CAAC,EA/OM,KAAK,KAAL,KAAK,QA+OX;AE/OD,IAAO,KAAK,CAyYX;AAzYD,WAAO,KAAK;IAKX;QAAA;YACC,UAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAmB7B,CAAC;QAjBA,oBAAG,GAAH,UAAK,KAAa;YACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,yBAAQ,GAAR,UAAU,KAAa;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;QAC3C,CAAC;QAED,uBAAM,GAAN,UAAQ,KAAa;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,sBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,aAAC;IAAD,CAAC,AApBD,IAoBC;IApBY,YAAM,SAoBlB,CAAA;IAUD;QAOC,eAAoB,CAAa,EAAS,CAAa,EAAS,CAAa,EAAS,CAAa;YAA/E,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAAS,kBAAA,EAAA,KAAa;YAA/E,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;YAAS,MAAC,GAAD,CAAC,CAAY;QACnG,CAAC;QAED,mBAAG,GAAH,UAAK,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;YAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,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,OAAO,IAAI,CAAC;QACb,CAAC;QAED,6BAAa,GAAb,UAAe,GAAW;YACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1E,OAAO,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,OAAO,IAAI,CAAC;QACb,CAAC;QAED,qBAAK,GAAL;YACC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACtB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACtB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACtB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACtB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACb,CAAC;QAEM,qBAAe,GAAtB,UAAuB,KAAY,EAAE,KAAa;YACjD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;YAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;YAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;QACxC,CAAC;QAEM,mBAAa,GAApB,UAAsB,KAAY,EAAE,KAAa;YAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;YAC9C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;YAC7C,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;QACxC,CAAC;QAtEa,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;QAmE/C,YAAC;KAAA,AAxED,IAwEC;IAxEY,WAAK,QAwEjB,CAAA;IAED;QAAA;QA6CA,CAAC;QArCO,eAAK,GAAZ,UAAc,KAAa,EAAE,GAAW,EAAE,GAAW;YACpD,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,GAAG,CAAC;YAC5B,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,GAAG,CAAC;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,OAAe;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAEM,gBAAM,GAAb,UAAe,KAAa;YAC3B,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAEM,eAAK,GAAZ,UAAc,CAAS;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAEM,0BAAgB,GAAvB,UAAyB,GAAW,EAAE,GAAW;YAChD,OAAO,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACpE,CAAC;QAEM,8BAAoB,GAA3B,UAA6B,GAAW,EAAE,GAAW,EAAE,IAAY;YAClE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YACxE,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QA3CM,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;QAuC5C,gBAAC;KAAA,AA7CD,IA6CC;IA7CY,eAAS,YA6CrB,CAAA;IAED;QAAA;QAKA,CAAC;QAHA,6BAAK,GAAL,UAAM,KAAa,EAAE,GAAW,EAAE,CAAS;YAC1C,OAAO,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACF,oBAAC;IAAD,CAAC,AALD,IAKC;IALqB,mBAAa,gBAKlC,CAAA;IAED;QAAyB,uBAAa;QAGrC,aAAa,KAAa;YAA1B,YACC,iBAAO,SAEP;YALS,WAAK,GAAG,CAAC,CAAC;YAInB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;QACpB,CAAC;QAED,2BAAa,GAAb,UAAe,CAAS;YACvB,IAAI,CAAC,IAAI,GAAG;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;QACF,UAAC;IAAD,CAAC,AAZD,CAAyB,aAAa,GAYrC;IAZY,SAAG,MAYf,CAAA;IAED;QAA4B,0BAAG;QAC9B,gBAAa,KAAa;mBACzB,kBAAM,KAAK,CAAC;QACb,CAAC;QAED,8BAAa,GAAb,UAAe,CAAS;YACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;QACF,aAAC;IAAD,CAAC,AARD,CAA4B,GAAG,GAQ9B;IARY,YAAM,SAQlB,CAAA;IAED;QAAA;QAqEA,CAAC;QAlEO,eAAS,GAAhB,UAAqB,MAAoB,EAAE,WAAmB,EAAE,IAAkB,EAAE,SAAiB,EAAE,WAAmB;YACzH,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAwB,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,sBAAA,EAAA,SAAc;YACpE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC;YAClC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,IAAI,OAAO,GAAG,IAAI,EAAE;gBACnB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACtD;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAEM,yBAAmB,GAA1B,UAA+B,KAAe,EAAE,IAAY,EAAE,KAAc;YAAd,sBAAA,EAAA,SAAc;YAC3E,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC;YACvC,OAAO,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,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YACvD,OAAO,KAAK,CAAC;QACd,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,IAAI,KAAK,CAAC,qBAAqB,EAAE;gBAChC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;aAC7B;iBAAM;gBACL,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;aACd;QACF,CAAC;QAEM,mBAAa,GAApB,UAAsB,IAAY;YACjC,IAAI,KAAK,CAAC,qBAAqB,EAAE;gBAChC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;aAC3B;iBAAM;gBACL,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;aACd;QACF,CAAC;QAEM,kBAAY,GAAnB,UAAqB,KAAoB;YACxC,OAAO,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,CAAC;QAEM,uBAAiB,GAAxB,UAA0B,KAAa;YACtC,OAAO,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,CAAC;QAGM,2BAAqB,GAA5B,UAA8B,KAAa,EAAE,KAAe;QAE5D,CAAC;QAEM,cAAQ,GAAf,UAAoB,KAAe,EAAE,OAAU,EAAE,QAAe;YAAf,yBAAA,EAAA,eAAe;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO;oBAAE,OAAO,IAAI,CAAC;aACrC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAnEM,2BAAqB,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QAoErE,YAAC;KAAA,AArED,IAqEC;IArEY,WAAK,QAqEjB,CAAA;IAED;QAAA;QAOA,CAAC;QANO,mBAAQ,GAAf,UAAgB,QAAkB;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,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;aACtI;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,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvE,CAAC;QAED,mBAAI,GAAJ,UAAM,IAAO;YACZ,IAAK,IAAY,CAAC,KAAK;gBAAG,IAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,sBAAO,GAAP,UAAS,KAAmB;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAK,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK;oBAAG,KAAK,CAAC,CAAC,CAAS,CAAC,KAAK,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACzB;QACF,CAAC;QAED,oBAAK,GAAL;YACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,CAAC;QACF,WAAC;IAAD,CAAC,AA3BD,IA2BC;IA3BY,UAAI,OA2BhB,CAAA;IAED;QACC,iBAAoB,CAAK,EAAS,CAAK;YAAnB,kBAAA,EAAA,KAAK;YAAS,kBAAA,EAAA,KAAK;YAAnB,MAAC,GAAD,CAAC,CAAI;YAAS,MAAC,GAAD,CAAC,CAAI;QACvC,CAAC;QAED,qBAAG,GAAH,UAAK,CAAS,EAAE,CAAS;YACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,OAAO,IAAI,CAAC;QACb,CAAC;QAED,wBAAM,GAAN;YACC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,OAAO,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,IAAI,GAAG,IAAI,CAAC,EAAE;gBACb,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBACd,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;aACd;YACD,OAAO,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,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACvB,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;aACpB;QACF,CAAC;QACF,iBAAC;IAAD,CAAC,AAzBD,IAyBC;IAzBY,gBAAU,aAyBtB,CAAA;IAOD;QAOC,sBAAa,UAAuB;YAAvB,2BAAA,EAAA,eAAuB;YALpC,gBAAW,GAAG,CAAC,CAAC;YAChB,cAAS,GAAG,CAAC,CAAC;YACd,SAAI,GAAG,CAAC,CAAC;YACT,UAAK,GAAG,IAAI,CAAC;YAGZ,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAS,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,oCAAa,GAAb;YACC,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,+BAAQ,GAAR,UAAU,KAAa;YACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;gBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,8BAAO,GAAP;YACC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACzB,IAAI,IAAI,CAAC,KAAK,EAAE;oBACf,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC5C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;qBACvB;oBACD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;oBACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;iBACnB;gBACD,OAAO,IAAI,CAAC,IAAI,CAAC;aACjB;iBAAM;gBACN,OAAO,CAAC,CAAC;aACT;QACF,CAAC;QACF,mBAAC;IAAD,CAAC,AAtCD,IAsCC;IAtCY,kBAAY,eAsCxB,CAAA;AACF,CAAC,EAzYM,KAAK,KAAL,KAAK,QAyYX;AErYD,CAAC;IACA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACjB,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,KAAK;YAC7B,OAAO,UAAU,CAAS;gBACzB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KACxB;AACF,CAAC,CAAC,EAAE,CAAC;ACZL,IAAO,KAAK,CAiIX;AAjID,WAAO,KAAK;IAEX;QAGC,oBAAa,IAAY;YACxB,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,CAAC;QAGF,iBAAC;IAAD,CAAC,AATD,IASC;IATqB,gBAAU,aAS/B,CAAA;IAID;QAA+C,oCAAU;QAuBxD,0BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YArBD,QAAE,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAc/C,yBAAmB,GAAG,CAAC,CAAC;YAGxB,sBAAgB,GAAqB,KAAI,CAAC;;QAI1C,CAAC;QAaD,+CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAa,EAAE,KAAa,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YAC/H,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YACvC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,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,KAAK,IAAI,GAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,GAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE;oBAC/D,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;iBAC3C;gBACD,OAAO;aACP;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACX,IAAI,IAAI,CAAC,CAAC;aACV;YACD,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACnC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC5B,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE;oBAC1D,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,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;wBAC1B,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;qBACzD;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC1B;aACD;iBAAM;gBACN,IAAI,MAAM,GAAG,WAAW,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE;oBACzE,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,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;wBAClC,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;qBACzD;oBACD,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;iBAC1B;aACD;QACF,CAAC;QAGD,iCAAM,GAAN,UAAQ,UAA4B;YACnC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACvB,UAAU,CAAC,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACvE;;gBACA,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;YAEzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC1B,UAAU,CAAC,QAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAChF;;gBACA,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;YAE5B,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC1D,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrD,CAAC;QA/Gc,uBAAM,GAAG,CAAC,CAAC;QAgH3B,uBAAC;KAAA,AAjHD,CAA+C,UAAU,GAiHxD;IAjHqB,sBAAgB,mBAiHrC,CAAA;AACF,CAAC,EAjIM,KAAK,KAAL,KAAK,QAiIX;AEjID,IAAO,KAAK,CAIX;AAJD,WAAO,KAAK;IACX,IAAY,cAEX;IAFD,WAAY,cAAc;QACzB,uDAAM,CAAA;QAAE,iEAAW,CAAA;QAAE,mDAAI,CAAA;QAAE,+DAAU,CAAA;QAAE,mDAAI,CAAA;QAAE,qDAAK,CAAA;QAAE,2DAAQ,CAAA;IAC7D,CAAC,EAFW,cAAc,GAAd,oBAAc,KAAd,oBAAc,QAEzB;AACF,CAAC,EAJM,KAAK,KAAL,KAAK,QAIX;ACJD,IAAO,KAAK,CAqBX;AArBD,WAAO,KAAK;IAOX;QAA2C,yCAAgB;QAG1D,+BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAI9B,CAAC;QAED,oCAAI,GAAJ;YACC,IAAI,IAAI,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACF,4BAAC;IAAD,CAAC,AAbD,CAA2C,MAAA,gBAAgB,GAa1D;IAbY,2BAAqB,wBAajC,CAAA;AACF,CAAC,EArBM,KAAK,KAAL,KAAK,QAqBX;ACrBD,IAAO,KAAK,CAwBX;AAxBD,WAAO,KAAK;IAEX;QAAwC,sCAAgB;QAUvD,4BAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;;QAI7C,CAAC;QAED,iCAAI,GAAJ;YACC,IAAI,IAAI,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACF,yBAAC;IAAD,CAAC,AArBD,CAAwC,MAAA,gBAAgB,GAqBvD;IArBY,wBAAkB,qBAqB9B,CAAA;AACF,CAAC,EAxBM,KAAK,KAAL,KAAK,QAwBX;ACxBD,IAAO,KAAK,CAwKX;AAxKD,WAAO,KAAK;IAKX;QAAoC,kCAAgB;QAoCnD,wBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YApBD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAgB9B,eAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIlC,CAAC;QAID,kCAAS,GAAT;YACC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;gBAAE,IAAI,CAAC,GAAG,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9G,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,MAAM,YAAY,MAAA,kBAAkB,EAAE;gBAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBACrG,QAAO,MAAM,CAAC,OAAO,EAAE;oBACvB,KAAK,EAAE;wBACN,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC;wBAC7E,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;wBAC5E,KAAK,GAAG,MAAM,CAAC,cAAc,GAAG,YAAY,CAAC;wBAC7C,MAAM,GAAG,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;wBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;4BAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;4BACtC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;yBAC7C;wBACD,OAAO;oBACR,KAAK,GAAG;wBACP,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;wBAC3E,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;wBACpC,KAAK,GAAG,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;wBAC5C,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC;wBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;4BAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BACxC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;yBACjD;wBACD,OAAO;oBACR,KAAK,GAAG;wBACP,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;wBACnC,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;wBACpC,KAAK,GAAG,MAAM,CAAC,cAAc,GAAG,YAAY,CAAC;wBAC7C,MAAM,GAAG,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;wBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;4BAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;4BAC5C,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;yBACvC;wBACD,OAAO;iBACP;gBACD,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;gBACnC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;gBAC9E,KAAK,GAAG,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;gBAC5C,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC;aAC/C;iBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC/B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;aACnB;iBAAM;gBACN,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;aAC5B;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;aAC3C;QACF,CAAC;QAKD,sCAAa,GAAb;YACC,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAGD,sCAAa,GAAb,UAAe,UAA0B;YACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,UAAU,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACpC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;gBAC1D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;gBACxC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAA;aACzD;QACF,CAAC;QAED,6BAAI,GAAJ;YACC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YAEzD,IAAI,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7E,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAGlC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE1B,OAAO,IAAI,CAAC;QACb,CAAC;QAGD,sCAAa,GAAb;YACC,IAAI,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;QACF,qBAAC;IAAD,CAAC,AAjKD,CAAoC,MAAA,gBAAgB,GAiKnD;IAjKY,oBAAc,iBAiK1B,CAAA;AAEF,CAAC,EAxKM,KAAK,KAAL,KAAK,QAwKX;ACxKD,IAAO,KAAK,CAoCX;AApCD,WAAO,KAAK;IAKX;QAAoC,kCAAgB;QAgBnD,wBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAZD,YAAM,GAAG,KAAK,CAAC;YAIf,mBAAa,GAAG,KAAK,CAAC;YAItB,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAI9B,CAAC;QAED,6BAAI,GAAJ;YACC,IAAI,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACF,qBAAC;IAAD,CAAC,AA9BD,CAAoC,MAAA,gBAAgB,GA8BnD;IA9BY,oBAAc,iBA8B1B,CAAA;AACF,CAAC,EApCM,KAAK,KAAL,KAAK,QAoCX;ACpCD,IAAO,KAAK,CAuCX;AAvCD,WAAO,KAAK;IAMX;QAAqC,mCAAgB;QAOpD,yBAAa,IAAY;YAAzB,YACC,kBAAM,IAAI,CAAC,SACX;YAJD,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIpC,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU,EAAE,KAAc;YAC/C,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,8CAAoB,GAApB,UAAsB,IAAU;YAC/B,IAAI,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAA,SAAS,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,8BAAI,GAAJ;YACC,IAAI,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,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,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACF,sBAAC;IAAD,CAAC,AAhCD,CAAqC,MAAA,gBAAgB,GAgCpD;IAhCY,qBAAe,kBAgC3B,CAAA;AACF,CAAC,EAvCM,KAAK,KAAL,KAAK,QAuCX;ACvCD,IAAO,KAAK,CA4MX;AA5MD,WAAO,KAAK;IAKX;QAAsC,oCAAU;QAsF/C,0BAAa,IAAW;YAAxB,YACC,kBAAM,IAAI,CAAC,SACX;YAzCD,OAAC,GAAG,CAAC,CAAC;YAGN,OAAC,GAAG,CAAC,CAAC;YAGN,YAAM,GAAG,CAAC,CAAC;YAGX,YAAM,GAAG,CAAC,CAAC;YAGX,cAAQ,GAAG,CAAC,CAAC;YAGb,WAAK,GAAG,CAAC,CAAC;YAGV,YAAM,GAAG,CAAC,CAAC;YAGX,WAAK,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAW9B,YAAM,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAGhC,SAAG,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE7B,eAAS,GAAG,IAAI,MAAA,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;QAIlC,CAAC;QAGD,uCAAY,GAAZ;YACC,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YACxE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YAChF,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;YACjF,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;YACxD,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;YACzD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;YAC7B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;YACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;QACvD,CAAC;QAED,oCAAS,GAAT,UAAW,MAAqB;YAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,EAAE;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;aACnB;iBAAM;gBACN,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;aACnB;QACF,CAAC;QASD,+CAAoB,GAApB,UAAsB,IAAU,EAAE,aAAgC,EAAE,MAAc,EAAE,MAAc;YACjG,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;YAE7B,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,MAAM,CAAC;YAEjB,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,+BAAI,GAAJ;YACC,IAAI,IAAI,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QApMM,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;QA0JhB,uBAAC;KAAA,AAtMD,CAAsC,MAAA,UAAU,GAsM/C;IAtMY,sBAAgB,mBAsM5B,CAAA;AACF,CAAC,EA5MM,KAAK,KAAL,KAAK,QA4MX;AC5MD,IAAO,KAAK,CAqBX;AArBD,WAAO,KAAK;IACX;QAIC,sBAAa,OAAe,EAAE,OAAe;YAH7C,YAAO,GAAG,CAAC,CAAC;YACZ,YAAO,GAAG,CAAC,CAAC;YAGX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,4BAAK,GAAL,UAAM,QAAkB;QACxB,CAAC;QAED,gCAAS,GAAT,UAAU,QAAiB,EAAE,EAAW,EAAE,KAAY,EAAE,IAAW;YAClE,QAAQ,CAAC,CAAC,IAAI,MAAA,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,QAAQ,CAAC,CAAC,IAAI,MAAA,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,0BAAG,GAAH;QACA,CAAC;QACF,mBAAC;IAAD,CAAC,AAnBD,IAmBC;IAnBY,kBAAY,eAmBxB,CAAA;AACF,CAAC,EArBM,KAAK,KAAL,KAAK,QAqBX;ACrBD,IAAO,KAAK,CAoCX;AApCD,WAAO,KAAK;IACX;QASC,qBAAa,MAAc;YAP3B,YAAO,GAAG,CAAC,CAAC;YACZ,YAAO,GAAG,CAAC,CAAC;YACZ,WAAM,GAAG,CAAC,CAAC;YACX,UAAK,GAAG,CAAC,CAAC;YACF,WAAM,GAAG,CAAC,CAAC;YACX,WAAM,GAAG,CAAC,CAAC;YAGlB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,2BAAK,GAAL,UAAM,QAAkB;YACvB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,+BAAS,GAAT,UAAU,QAAiB,EAAE,EAAW,EAAE,KAAY,EAAE,IAAW;YAClE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,MAAA,SAAS,CAAC,gBAAgB,CAAC;YACvD,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACjC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;gBACvB,IAAI,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7F,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC7C,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;aAC7C;QACF,CAAC;QAED,yBAAG,GAAH;QACA,CAAC;QAhCM,yBAAa,GAAG,IAAI,MAAA,MAAM,CAAC,CAAC,CAAC,CAAC;QAiCtC,kBAAC;KAAA,AAlCD,IAkCC;IAlCY,iBAAW,cAkCvB,CAAA;AACF,CAAC,EApCM,KAAK,KAAL,KAAK,QAoCX;ACpCD,IAAO,KAAK,CAQX;AARD,WAAO,KAAK;IAAC,IAAA,OAAO,CAQnB;IARY,WAAA,OAAO;QACnB;YAAkC,gCAAkB;YACnD,sBAAa,UAAuB;gBAAvB,2BAAA,EAAA,eAAuB;uBACnC,kBAAM,UAAC,KAAuB;oBAC7B,OAAO,IAAI,QAAA,cAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,EAAE,UAAU,CAAC;YACf,CAAC;YACF,mBAAC;QAAD,CAAC,AAND,CAAkC,KAAK,CAAC,YAAY,GAMnD;QANY,oBAAY,eAMxB,CAAA;IACF,CAAC,EARY,OAAO,GAAP,aAAO,KAAP,aAAO,QAQnB;AAAD,CAAC,EARM,KAAK,KAAL,KAAK,QAQX;ACRD,IAAO,KAAK,CA+FX;AA/FD,WAAO,KAAK;IAAC,IAAA,OAAO,CA+FnB;IA/FY,WAAA,OAAO;QACnB;YAAiC,+BAAU;YAQ1C,qBAAa,WAA2B;gBAA3B,4BAAA,EAAA,mBAA2B;gBAAxC,YACC,iBAAO,SAgBP;gBArBO,oBAAc,GAAG,CAAC,CAAC;gBAEnB,mBAAa,GAAG,CAAC,CAAC;gBAIzB,IAAI,WAAW,GAAG,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,WAAW,CAAC,CAAC;gBAC3G,IAAI,QAAQ,GAAG,KAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvF,IAAI,OAAO,GAAG,KAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,YAAY,GAAG,KAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;gBACtG,YAAY,CAAC,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;gBACxD,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9F,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3F,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxF,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;gBAAA,CAAC;gBAC3D,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,KAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACpB,KAAI,CAAC,QAAQ,GAAG,IAAI,QAAA,oBAAoB,EAAE,CAAC;;YAC5C,CAAC;YAED,6BAAO,GAAP;gBACC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,QAAQ,YAAY,KAAK,CAAC,QAAQ;oBAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;qBACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,QAAQ,YAAY,KAAK,CAAC,QAAQ;4BACrC,QAAQ,CAAC,OAAO,EAAE,CAAC;qBACpB;iBACD;YACF,CAAC;YAED,2BAAK,GAAL;gBACC,IAAI,GAAG,GAA0B,IAAI,CAAC,QAAS,CAAC;gBAChD,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACD,IAAI,CAAC,QAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;YACjE,CAAC;YAED,2BAAK,GAAL;gBACC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,8BAAQ,GAAR,UAAS,cAAsB,EAAE,aAAqB;gBACrD,IAAI,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACpF,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACvF,OAAO,IAAI,CAAC;YACb,CAAC;YAED,2BAAK,GAAL,UAAO,QAA2B,EAAE,cAAsB,EAAE,OAA0B,EAAE,aAAqB,EAAE,CAAa;gBAAb,kBAAA,EAAA,KAAa;gBAC3H,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC/D,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACjC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAM,CAAC,GAAG,cAAc,GAAG;oBAC1B,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;oBACtB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;iBAClC;gBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBAExB,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;YACrC,CAAC;YAED,yBAAG,GAAH;gBACC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC1D,IAAI,GAAG,GAA0B,IAAI,CAAC,QAAS,CAAC;gBAChD,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACpD,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;YAC1C,CAAC;YA3Fc,uBAAW,GAAG,CAAC,CAAC;YA4FhC,kBAAC;SAAA,AA7FD,CAAiC,KAAK,CAAC,IAAI,GA6F1C;QA7FY,mBAAW,cA6FvB,CAAA;IACF,CAAC,EA/FY,OAAO,GAAP,aAAO,KAAP,aAAO,QA+FnB;AAAD,CAAC,EA/FM,KAAK,KAAL,KAAK,QA+FX;AC/FD,IAAO,KAAK,CAwRX;AAxRD,WAAO,KAAK;IAAC,IAAA,OAAO,CAwRnB;IAxRY,WAAA,OAAO;QACnB;YAA0C,wCAAoB;YAC7D;gBAAA,iBA+BC;gBA9BA,IAAI,YAAY,GAAG,kQASlB,CAAC;gBACF,IAAI,cAAc,GAAG,+LAOpB,CAAC;gBAEF,IAAI,UAAU,GAAmC;oBAChD,QAAQ,EAAE;wBACT,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;qBAC/B;oBACD,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,cAAc;oBAC9B,IAAI,EAAE,KAAK,CAAC,UAAU;oBACtB,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,GAAG;iBACd,CAAC;gBACF,QAAA,kBAAM,UAAU,CAAC,SAAC;;YACnB,CAAC;YAAA,CAAC;YACH,2BAAC;QAAD,CAAC,AAjCD,CAA0C,KAAK,CAAC,cAAc,GAiC7D;QAjCY,4BAAoB,uBAiChC,CAAA;QAED;YAAkC,gCAAc;YAoB/C,sBAAa,YAA0B;gBAAvC,YACC,iBAAO,SAKP;gBAzBD,aAAO,GAAY,IAAI,MAAA,OAAO,EAAE,CAAC;gBACjC,YAAM,GAAY,IAAI,MAAA,OAAO,EAAE,CAAC;gBAChC,eAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBACxB,cAAQ,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBAGvB,aAAO,GAAW,GAAG,CAAC;gBAGd,aAAO,GAAG,IAAI,KAAK,EAAe,CAAC;gBACnC,oBAAc,GAAG,CAAC,CAAC;gBACnB,aAAO,GAAqB,IAAI,MAAA,gBAAgB,EAAE,CAAC;gBAKnD,cAAQ,GAAG,MAAA,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,eAAS,GAAG,IAAI,MAAA,KAAK,EAAE,CAAC;gBAK/B,KAAI,CAAC,QAAQ,GAAG,IAAI,MAAA,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,IAAI,MAAA,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACpD,KAAI,CAAC,KAAK,GAAG,IAAI,MAAA,cAAc,CAAC,QAAQ,CAAC,CAAC;;YAC3C,CAAC;YAED,6BAAM,GAAN,UAAO,SAAiB;gBACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAEhC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;YAED,8BAAO,GAAP;gBACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC1B;YACF,CAAC;YAEO,mCAAY,GAApB;gBACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;iBAChC;gBACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACzB,CAAC;YAEO,gCAAS,GAAjB;gBACC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;oBAC/C,IAAI,OAAK,GAAG,IAAI,QAAA,WAAW,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,OAAK,CAAC,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAK,CAAC,CAAC;iBACzB;gBACD,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBAChD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,OAAO,KAAK,CAAC;YACd,CAAC;YAEO,qCAAc,GAAtB;gBACC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAEpB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE7B,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,aAAa,GAAG,CAAC,CAAC;gBAEtB,IAAI,SAAS,GAAc,IAAI,CAAC;gBAChC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAE3B,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;gBAChD,IAAI,SAAS,GAAkB,IAAI,CAAC;gBACpC,IAAI,GAAG,GAAsB,IAAI,CAAC;gBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACxC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjD,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;oBACrE,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,SAAS;oBAChC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtC,IAAI,eAAe,GAAU,IAAI,CAAC;oBAClC,IAAI,OAAO,GAAmB,IAAI,CAAC;oBACnC,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,IAAI,UAAU,YAAY,MAAA,gBAAgB,EAAE;wBAC3C,IAAI,MAAM,GAAqB,UAAU,CAAC;wBAC1C,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;wBAC3B,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBAChE,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC;wBACxC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjB,OAAO,GAAwC,MAAM,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;qBACnF;yBAAM,IAAI,UAAU,YAAY,MAAA,cAAc,EAAE;wBAChD,IAAI,IAAI,GAAmB,UAAU,CAAC;wBACtC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC7B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACzB,SAAS,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;wBACzD,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE;4BAChC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;yBAChE;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBACtF,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACf,OAAO,GAAwC,IAAI,CAAC,MAAM,CAAC,YAAa,CAAC,OAAO,CAAC;qBACjF;yBAAM,IAAI,UAAU,YAAY,MAAA,kBAAkB,EAAE;wBACpD,IAAI,IAAI,GAAuB,CAAC,UAAU,CAAC,CAAC;wBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC9B,SAAS;qBACT;;wBAAM,SAAS;oBAEhB,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAClC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;wBACnC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC3B,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;wBAC9D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC3B,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACzD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EACjD,KAAK,CAAC,CAAC;wBAET,IAAI,aAAa,SAAmB,CAAC;wBACrC,IAAI,mBAAmB,SAAQ,CAAC;wBAChC,IAAI,YAAY,SAAmB,CAAC;wBACpC,IAAI,kBAAkB,SAAQ,CAAC;wBAE/B,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;4BACzB,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACjG,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;4BAC9C,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAChD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gCAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gCACrC,IAAI,KAAK,GAAG,eAAe,CAAC;gCAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE;oCACnE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oCACrB,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCACzB,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oCAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oCACzB,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCACxB,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCACxB,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAC7D,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oCACrB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oCACzB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;iCACxB;6BACD;4BACD,aAAa,GAAG,eAAe,CAAC;4BAChC,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAAC;4BAC7C,YAAY,GAAG,gBAAgB,CAAC;4BAChC,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC;yBAC7C;6BAAM;4BACN,IAAI,KAAK,GAAG,QAAQ,CAAC;4BACrB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gCAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gCACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;oCACrE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oCACrB,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCACzB,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oCAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oCACzB,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCAClB,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCACtB,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAC7D,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oCACrB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;oCACzB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;oCAC3B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oCACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;iCACxB;6BACD;iCAAM;gCACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAC,GAAG,SAAS,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;oCACrE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oCACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oCACvB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oCACtB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iCAC1B;6BACD;4BACD,aAAa,GAAG,QAAQ,CAAC;4BACzB,mBAAmB,GAAG,SAAS,CAAC;4BAChC,YAAY,GAAG,SAAS,CAAC;4BACzB,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC;yBACtC;wBAED,IAAI,mBAAmB,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC;4BACtD,SAAS;wBAGV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EAAE;4BAC7D,KAAK,CAAC,GAAG,EAAE,CAAC;4BACZ,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;4BACzB,KAAK,CAAC,KAAK,EAAE,CAAC;yBACd;wBASD,IAAI,aAAa,GAAyB,KAAK,CAAC,QAAQ,CAAC;wBACzD,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;4BAC7C,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;yBACnD;wBACD,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE;4BACxD,KAAK,CAAC,GAAG,EAAE,CAAC;4BACZ,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;4BACzB,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,aAAa,GAAyB,KAAK,CAAC,QAAQ,CAAC;4BACrD,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;yBACnD;wBACD,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;wBAEjC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;wBACrF,CAAC,IAAI,OAAO,CAAC;qBACb;oBAED,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBAC9B;gBACD,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;YApOM,2BAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,wBAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAoOhC,mBAAC;SAAA,AAnPD,CAAkC,KAAK,CAAC,QAAQ,GAmP/C;QAnPY,oBAAY,eAmPxB,CAAA;IACF,CAAC,EAxRY,OAAO,GAAP,aAAO,KAAP,aAAO,QAwRnB;AAAD,CAAC,EAxRM,KAAK,KAAL,KAAK,QAwRX;ACxRD,IAAO,KAAK,CA0CX;AA1CD,WAAO,KAAK;IAAC,IAAA,OAAO,CA0CnB;IA1CY,WAAA,OAAO;QACnB;YAAoC,kCAAO;YAG1C,wBAAa,KAAuB;gBAApC,YACC,kBAAM,KAAK,CAAC,SAIZ;gBAHA,KAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,KAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;;YACjC,CAAC;YAED,mCAAU,GAAV,UAAY,SAAwB,EAAE,SAAwB;gBAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;YAED,iCAAQ,GAAR,UAAU,KAAkB,EAAE,KAAkB;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,gCAAO,GAAP;gBACC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YAEM,qCAAsB,GAA7B,UAA8B,MAAqB;gBAClD,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC,YAAY,CAAC;qBAC1D,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC,wBAAwB,CAAC;qBAC3E,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB;oBAAE,OAAO,KAAK,CAAC,yBAAyB,CAAC;qBACzF,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,mBAAmB;oBAAE,OAAO,KAAK,CAAC,yBAAyB,CAAC;qBACzF,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,oBAAoB;oBAAE,OAAO,KAAK,CAAC,0BAA0B,CAAC;qBAC3F,IAAI,MAAM,KAAK,MAAA,aAAa,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC,aAAa,CAAC;;oBACjE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,CAAC;YAC3D,CAAC;YAEM,mCAAoB,GAA3B,UAA4B,IAAiB;gBAC5C,IAAI,IAAI,KAAK,MAAA,WAAW,CAAC,WAAW;oBAAE,OAAO,KAAK,CAAC,mBAAmB,CAAC;qBAClE,IAAI,IAAI,KAAK,MAAA,WAAW,CAAC,cAAc;oBAAE,OAAO,KAAK,CAAC,sBAAsB,CAAC;qBAC7E,IAAI,IAAI,KAAK,MAAA,WAAW,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC,cAAc,CAAC;;oBAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC;YACF,qBAAC;QAAD,CAAC,AAxCD,CAAoC,MAAA,OAAO,GAwC1C;QAxCY,sBAAc,iBAwC1B,CAAA;IACF,CAAC,EA1CY,OAAO,GAAP,aAAO,KAAP,aAAO,QA0CnB;AAAD,CAAC,EA1CM,KAAK,KAAL,KAAK,QA0CX"} \ No newline at end of file +{"version":3,"file":"spine-threejs.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/ConstraintData.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/SkeletonBinary.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/VertexEffect.ts","../core/src/polyfills.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/vertexeffects/JitterEffect.ts","../core/src/vertexeffects/SwirlEffect.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/canvas/src/AssetManager.ts b/spine-ts/canvas/src/AssetManager.ts index ed14b9fcf..a864fdd77 100644 --- a/spine-ts/canvas/src/AssetManager.ts +++ b/spine-ts/canvas/src/AssetManager.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ /// diff --git a/spine-ts/canvas/src/CanvasTexture.ts b/spine-ts/canvas/src/CanvasTexture.ts index 65721e37e..a38627a3c 100644 --- a/spine-ts/canvas/src/CanvasTexture.ts +++ b/spine-ts/canvas/src/CanvasTexture.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ /// diff --git a/spine-ts/canvas/src/SkeletonRenderer.ts b/spine-ts/canvas/src/SkeletonRenderer.ts index 75d256046..047e6c2c0 100644 --- a/spine-ts/canvas/src/SkeletonRenderer.ts +++ b/spine-ts/canvas/src/SkeletonRenderer.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.canvas { diff --git a/spine-ts/core/src/Animation.ts b/spine-ts/core/src/Animation.ts index 0366c0455..2340fe797 100644 --- a/spine-ts/core/src/Animation.ts +++ b/spine-ts/core/src/Animation.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/AnimationState.ts b/spine-ts/core/src/AnimationState.ts index 725d491eb..57bd8399f 100644 --- a/spine-ts/core/src/AnimationState.ts +++ b/spine-ts/core/src/AnimationState.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/AnimationStateData.ts b/spine-ts/core/src/AnimationStateData.ts index b3babbef0..1efe22af5 100644 --- a/spine-ts/core/src/AnimationStateData.ts +++ b/spine-ts/core/src/AnimationStateData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/AssetManager.ts b/spine-ts/core/src/AssetManager.ts index e958decf9..0e4242ed0 100644 --- a/spine-ts/core/src/AssetManager.ts +++ b/spine-ts/core/src/AssetManager.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/AtlasAttachmentLoader.ts b/spine-ts/core/src/AtlasAttachmentLoader.ts index 4eece8d00..5aa0f5f3b 100644 --- a/spine-ts/core/src/AtlasAttachmentLoader.ts +++ b/spine-ts/core/src/AtlasAttachmentLoader.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/BlendMode.ts b/spine-ts/core/src/BlendMode.ts index 73761a45a..00ffff5ae 100644 --- a/spine-ts/core/src/BlendMode.ts +++ b/spine-ts/core/src/BlendMode.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Bone.ts b/spine-ts/core/src/Bone.ts index 644ad534a..582f772a0 100644 --- a/spine-ts/core/src/Bone.ts +++ b/spine-ts/core/src/Bone.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/BoneData.ts b/spine-ts/core/src/BoneData.ts index 539041d18..39dd5bd56 100644 --- a/spine-ts/core/src/BoneData.ts +++ b/spine-ts/core/src/BoneData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/ConstraintData.ts b/spine-ts/core/src/ConstraintData.ts index 36b753d73..e1c6c5d14 100644 --- a/spine-ts/core/src/ConstraintData.ts +++ b/spine-ts/core/src/ConstraintData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Event.ts b/spine-ts/core/src/Event.ts index 4b1df9672..da965f9ef 100644 --- a/spine-ts/core/src/Event.ts +++ b/spine-ts/core/src/Event.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/EventData.ts b/spine-ts/core/src/EventData.ts index 737f1fe92..9a33ad89b 100644 --- a/spine-ts/core/src/EventData.ts +++ b/spine-ts/core/src/EventData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/IkConstraint.ts b/spine-ts/core/src/IkConstraint.ts index fbc4cd57f..705383bd8 100644 --- a/spine-ts/core/src/IkConstraint.ts +++ b/spine-ts/core/src/IkConstraint.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { @@ -102,16 +102,40 @@ module spine { apply1 (bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number) { 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; + + let pa = p.a, pb = p.b, pc = p.c, pd = p.d; + let rotationIK = -bone.ashearX - bone.arotation, tx = 0, ty = 0; + + switch(bone.data.transformMode) { + case TransformMode.OnlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + break; + case TransformMode.NoRotationOrReflection: + rotationIK += Math.atan2(pc, pa) * MathUtils.radDeg; + let ps = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + pb = -pc * ps; + pd = pa * ps; + // Fall through + default: + let x = targetX - p.worldX, y = targetY - p.worldY; + let d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + rotationIK += Math.atan2(ty, tx) * MathUtils.radDeg; if (bone.ascaleX < 0) rotationIK += 180; if (rotationIK > 180) rotationIK -= 360; else if (rotationIK < -180) rotationIK += 360; let sx = bone.ascaleX, sy = bone.ascaleY; if (compress || stretch) { + switch (bone.data.transformMode) { + case TransformMode.NoScale: + case TransformMode.NoScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } let b = bone.data.length * sx, dd = Math.sqrt(tx * tx + ty * ty); if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { let s = (dd / b - 1) * alpha + 1; diff --git a/spine-ts/core/src/IkConstraintData.ts b/spine-ts/core/src/IkConstraintData.ts index 82d48074c..2f013d474 100644 --- a/spine-ts/core/src/IkConstraintData.ts +++ b/spine-ts/core/src/IkConstraintData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/PathConstraint.ts b/spine-ts/core/src/PathConstraint.ts index 4aea522ac..2247da22b 100644 --- a/spine-ts/core/src/PathConstraint.ts +++ b/spine-ts/core/src/PathConstraint.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/PathConstraintData.ts b/spine-ts/core/src/PathConstraintData.ts index 3cde0ec16..157855a98 100644 --- a/spine-ts/core/src/PathConstraintData.ts +++ b/spine-ts/core/src/PathConstraintData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SharedAssetManager.ts b/spine-ts/core/src/SharedAssetManager.ts index 1886c1e31..9eafdbadb 100644 --- a/spine-ts/core/src/SharedAssetManager.ts +++ b/spine-ts/core/src/SharedAssetManager.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Skeleton.ts b/spine-ts/core/src/Skeleton.ts index 750c478d8..5922f373d 100644 --- a/spine-ts/core/src/Skeleton.ts +++ b/spine-ts/core/src/Skeleton.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SkeletonBinary.ts b/spine-ts/core/src/SkeletonBinary.ts index 9d55af97d..1308ac747 100644 --- a/spine-ts/core/src/SkeletonBinary.ts +++ b/spine-ts/core/src/SkeletonBinary.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { @@ -81,6 +81,8 @@ module spine { skeletonData.hash = input.readString(); skeletonData.version = input.readString(); + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = input.readFloat(); skeletonData.y = input.readFloat(); skeletonData.width = input.readFloat(); @@ -897,4 +899,4 @@ module spine { class Vertices { constructor(public bones: Array = null, public vertices: Array | Float32Array = null) { } } -} \ No newline at end of file +} diff --git a/spine-ts/core/src/SkeletonBounds.ts b/spine-ts/core/src/SkeletonBounds.ts index f9b604ad3..9a9991b07 100644 --- a/spine-ts/core/src/SkeletonBounds.ts +++ b/spine-ts/core/src/SkeletonBounds.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SkeletonClipping.ts b/spine-ts/core/src/SkeletonClipping.ts index badea0585..b1b534734 100644 --- a/spine-ts/core/src/SkeletonClipping.ts +++ b/spine-ts/core/src/SkeletonClipping.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SkeletonData.ts b/spine-ts/core/src/SkeletonData.ts index 0eaeb5454..9d3e7c6f4 100644 --- a/spine-ts/core/src/SkeletonData.ts +++ b/spine-ts/core/src/SkeletonData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SkeletonJson.ts b/spine-ts/core/src/SkeletonJson.ts index b141100a8..1f4ae3018 100644 --- a/spine-ts/core/src/SkeletonJson.ts +++ b/spine-ts/core/src/SkeletonJson.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { @@ -58,6 +58,8 @@ module spine { if (skeletonMap != null) { skeletonData.hash = skeletonMap.hash; skeletonData.version = skeletonMap.spine; + if ("3.8.75" == skeletonData.version) + throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = skeletonMap.x; skeletonData.y = skeletonMap.y; skeletonData.width = skeletonMap.width; diff --git a/spine-ts/core/src/Skin.ts b/spine-ts/core/src/Skin.ts index 0921a4ecc..fe8c700e3 100644 --- a/spine-ts/core/src/Skin.ts +++ b/spine-ts/core/src/Skin.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Slot.ts b/spine-ts/core/src/Slot.ts index eb9911dfa..6d9150cf6 100644 --- a/spine-ts/core/src/Slot.ts +++ b/spine-ts/core/src/Slot.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/SlotData.ts b/spine-ts/core/src/SlotData.ts index bda506dfe..ac82f4384 100644 --- a/spine-ts/core/src/SlotData.ts +++ b/spine-ts/core/src/SlotData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Texture.ts b/spine-ts/core/src/Texture.ts index ae6883632..120208a1f 100644 --- a/spine-ts/core/src/Texture.ts +++ b/spine-ts/core/src/Texture.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/TextureAtlas.ts b/spine-ts/core/src/TextureAtlas.ts index 5aa3897a0..9a7f9efa9 100644 --- a/spine-ts/core/src/TextureAtlas.ts +++ b/spine-ts/core/src/TextureAtlas.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/TransformConstraint.ts b/spine-ts/core/src/TransformConstraint.ts index b07afe02f..313d4bec5 100644 --- a/spine-ts/core/src/TransformConstraint.ts +++ b/spine-ts/core/src/TransformConstraint.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/TransformConstraintData.ts b/spine-ts/core/src/TransformConstraintData.ts index 21c88e976..f9904abf7 100644 --- a/spine-ts/core/src/TransformConstraintData.ts +++ b/spine-ts/core/src/TransformConstraintData.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Triangulator.ts b/spine-ts/core/src/Triangulator.ts index c80928c38..785e8795b 100644 --- a/spine-ts/core/src/Triangulator.ts +++ b/spine-ts/core/src/Triangulator.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Updatable.ts b/spine-ts/core/src/Updatable.ts index e65d24086..d5b2d94ff 100644 --- a/spine-ts/core/src/Updatable.ts +++ b/spine-ts/core/src/Updatable.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/Utils.ts b/spine-ts/core/src/Utils.ts index d5225b91b..95da5789a 100644 --- a/spine-ts/core/src/Utils.ts +++ b/spine-ts/core/src/Utils.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/VertexEffect.ts b/spine-ts/core/src/VertexEffect.ts index f5150b679..1036666e4 100644 --- a/spine-ts/core/src/VertexEffect.ts +++ b/spine-ts/core/src/VertexEffect.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/Attachment.ts b/spine-ts/core/src/attachments/Attachment.ts index 7d4b978ed..f01b2b07c 100644 --- a/spine-ts/core/src/attachments/Attachment.ts +++ b/spine-ts/core/src/attachments/Attachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/AttachmentLoader.ts b/spine-ts/core/src/attachments/AttachmentLoader.ts index b82af77b1..35b4505c0 100644 --- a/spine-ts/core/src/attachments/AttachmentLoader.ts +++ b/spine-ts/core/src/attachments/AttachmentLoader.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/AttachmentType.ts b/spine-ts/core/src/attachments/AttachmentType.ts index 8df74c53c..0ec7fcc02 100644 --- a/spine-ts/core/src/attachments/AttachmentType.ts +++ b/spine-ts/core/src/attachments/AttachmentType.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/BoundingBoxAttachment.ts b/spine-ts/core/src/attachments/BoundingBoxAttachment.ts index 920159508..0ce88d07d 100644 --- a/spine-ts/core/src/attachments/BoundingBoxAttachment.ts +++ b/spine-ts/core/src/attachments/BoundingBoxAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/ClippingAttachment.ts b/spine-ts/core/src/attachments/ClippingAttachment.ts index dffa3b53f..a496fe35f 100644 --- a/spine-ts/core/src/attachments/ClippingAttachment.ts +++ b/spine-ts/core/src/attachments/ClippingAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/MeshAttachment.ts b/spine-ts/core/src/attachments/MeshAttachment.ts index 389e12d10..f427155c2 100644 --- a/spine-ts/core/src/attachments/MeshAttachment.ts +++ b/spine-ts/core/src/attachments/MeshAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/PathAttachment.ts b/spine-ts/core/src/attachments/PathAttachment.ts index 6e27d6524..970c0e945 100644 --- a/spine-ts/core/src/attachments/PathAttachment.ts +++ b/spine-ts/core/src/attachments/PathAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/PointAttachment.ts b/spine-ts/core/src/attachments/PointAttachment.ts index 697d65cd0..d6e2f5d3b 100644 --- a/spine-ts/core/src/attachments/PointAttachment.ts +++ b/spine-ts/core/src/attachments/PointAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/attachments/RegionAttachment.ts b/spine-ts/core/src/attachments/RegionAttachment.ts index a9c809e62..5c7f0a57c 100644 --- a/spine-ts/core/src/attachments/RegionAttachment.ts +++ b/spine-ts/core/src/attachments/RegionAttachment.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/polyfills.ts b/spine-ts/core/src/polyfills.ts index 1db4e32d1..a6bb2cd79 100644 --- a/spine-ts/core/src/polyfills.ts +++ b/spine-ts/core/src/polyfills.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ interface Math { diff --git a/spine-ts/core/src/vertexeffects/JitterEffect.ts b/spine-ts/core/src/vertexeffects/JitterEffect.ts index a1cb7db5e..acff7b043 100644 --- a/spine-ts/core/src/vertexeffects/JitterEffect.ts +++ b/spine-ts/core/src/vertexeffects/JitterEffect.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/core/src/vertexeffects/SwirlEffect.ts b/spine-ts/core/src/vertexeffects/SwirlEffect.ts index 97d291339..c21604097 100644 --- a/spine-ts/core/src/vertexeffects/SwirlEffect.ts +++ b/spine-ts/core/src/vertexeffects/SwirlEffect.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/player/src/Player.ts b/spine-ts/player/src/Player.ts index 9adb1e958..3498f9c35 100644 --- a/spine-ts/player/src/Player.ts +++ b/spine-ts/player/src/Player.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine { diff --git a/spine-ts/player/src/PlayerEditor.ts b/spine-ts/player/src/PlayerEditor.ts index 64fb0565d..91713bd99 100644 --- a/spine-ts/player/src/PlayerEditor.ts +++ b/spine-ts/player/src/PlayerEditor.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ declare function CodeMirror(el: Element, config: any): void; diff --git a/spine-ts/threejs/src/AssetManager.ts b/spine-ts/threejs/src/AssetManager.ts index 65db5b588..d059e5f1b 100644 --- a/spine-ts/threejs/src/AssetManager.ts +++ b/spine-ts/threejs/src/AssetManager.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.threejs { diff --git a/spine-ts/threejs/src/MeshBatcher.ts b/spine-ts/threejs/src/MeshBatcher.ts index f5f0cb409..493860f78 100644 --- a/spine-ts/threejs/src/MeshBatcher.ts +++ b/spine-ts/threejs/src/MeshBatcher.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.threejs { diff --git a/spine-ts/threejs/src/SkeletonMesh.ts b/spine-ts/threejs/src/SkeletonMesh.ts index 8b311595c..2f28b7ffc 100644 --- a/spine-ts/threejs/src/SkeletonMesh.ts +++ b/spine-ts/threejs/src/SkeletonMesh.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.threejs { diff --git a/spine-ts/threejs/src/ThreeJsTexture.ts b/spine-ts/threejs/src/ThreeJsTexture.ts index 03defb10c..8e59a853e 100644 --- a/spine-ts/threejs/src/ThreeJsTexture.ts +++ b/spine-ts/threejs/src/ThreeJsTexture.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.threejs { diff --git a/spine-ts/webgl/src/AssetManager.ts b/spine-ts/webgl/src/AssetManager.ts index dc5cb803d..ab5ceb96d 100644 --- a/spine-ts/webgl/src/AssetManager.ts +++ b/spine-ts/webgl/src/AssetManager.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Camera.ts b/spine-ts/webgl/src/Camera.ts index d34266a75..e0fae36fb 100644 --- a/spine-ts/webgl/src/Camera.ts +++ b/spine-ts/webgl/src/Camera.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/GLTexture.ts b/spine-ts/webgl/src/GLTexture.ts index 443f702df..c03aa3bec 100644 --- a/spine-ts/webgl/src/GLTexture.ts +++ b/spine-ts/webgl/src/GLTexture.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Input.ts b/spine-ts/webgl/src/Input.ts index 568a949a8..f4a25db38 100644 --- a/spine-ts/webgl/src/Input.ts +++ b/spine-ts/webgl/src/Input.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/LoadingScreen.ts b/spine-ts/webgl/src/LoadingScreen.ts index 24e0d4b3f..4edb7799a 100644 --- a/spine-ts/webgl/src/LoadingScreen.ts +++ b/spine-ts/webgl/src/LoadingScreen.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Matrix4.ts b/spine-ts/webgl/src/Matrix4.ts index 6f8d69585..b0e8e9c4b 100644 --- a/spine-ts/webgl/src/Matrix4.ts +++ b/spine-ts/webgl/src/Matrix4.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Mesh.ts b/spine-ts/webgl/src/Mesh.ts index bd88adb76..43142c92f 100644 --- a/spine-ts/webgl/src/Mesh.ts +++ b/spine-ts/webgl/src/Mesh.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/PolygonBatcher.ts b/spine-ts/webgl/src/PolygonBatcher.ts index e27ffbe87..339be6328 100644 --- a/spine-ts/webgl/src/PolygonBatcher.ts +++ b/spine-ts/webgl/src/PolygonBatcher.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/SceneRenderer.ts b/spine-ts/webgl/src/SceneRenderer.ts index 003009344..ad624daf4 100644 --- a/spine-ts/webgl/src/SceneRenderer.ts +++ b/spine-ts/webgl/src/SceneRenderer.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Shader.ts b/spine-ts/webgl/src/Shader.ts index 38281361a..0cd122114 100644 --- a/spine-ts/webgl/src/Shader.ts +++ b/spine-ts/webgl/src/Shader.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/ShapeRenderer.ts b/spine-ts/webgl/src/ShapeRenderer.ts index f44424692..b831b4c4d 100644 --- a/spine-ts/webgl/src/ShapeRenderer.ts +++ b/spine-ts/webgl/src/ShapeRenderer.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/SkeletonDebugRenderer.ts b/spine-ts/webgl/src/SkeletonDebugRenderer.ts index d93fc2e8f..878f23420 100644 --- a/spine-ts/webgl/src/SkeletonDebugRenderer.ts +++ b/spine-ts/webgl/src/SkeletonDebugRenderer.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/SkeletonRenderer.ts b/spine-ts/webgl/src/SkeletonRenderer.ts index 0a872a6bd..631553eb6 100644 --- a/spine-ts/webgl/src/SkeletonRenderer.ts +++ b/spine-ts/webgl/src/SkeletonRenderer.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/Vector3.ts b/spine-ts/webgl/src/Vector3.ts index 3fcb5246d..40b3483ce 100644 --- a/spine-ts/webgl/src/Vector3.ts +++ b/spine-ts/webgl/src/Vector3.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ts/webgl/src/WebGL.ts b/spine-ts/webgl/src/WebGL.ts index 60df1dac3..403057941 100644 --- a/spine-ts/webgl/src/WebGL.ts +++ b/spine-ts/webgl/src/WebGL.ts @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ module spine.webgl { diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineAtlasImportFactory.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineAtlasImportFactory.cpp index f2659eaeb..e2d55240f 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineAtlasImportFactory.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineAtlasImportFactory.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpineEditorPluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp index 7ae613244..f82a9372e 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpineEditorPluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPluginPrivatePCH.h b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPluginPrivatePCH.h index a17d85fc2..c15fd3549 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPluginPrivatePCH.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPluginPrivatePCH.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpineEditorPlugin.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp index 4a00abe02..7964b95bd 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpineEditorPluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineAtlasImportFactory.h b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineAtlasImportFactory.h index dcce6b904..e19464fbc 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineAtlasImportFactory.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineAtlasImportFactory.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineEditorPlugin.h b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineEditorPlugin.h index 4ecef3d7c..07c0efdc5 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineEditorPlugin.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineEditorPlugin.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineSkeletonImportFactory.h b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineSkeletonImportFactory.h index 94f033a73..f45bab0e0 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineSkeletonImportFactory.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Public/SpineSkeletonImportFactory.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SSpineWidget.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SSpineWidget.cpp index a1f6e3b33..12654506f 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SSpineWidget.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SSpineWidget.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" @@ -379,4 +379,4 @@ void SSpineWidget::UpdateMesh(int32 LayerId, FSlateWindowElementList& OutDrawEle Flush(LayerId, OutDrawElements, AllottedGeometry, meshSection, vertices, indices, uvs, colors, darkColors, lastMaterial); clipper.clipEnd(); -} \ No newline at end of file +} diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineAtlasAsset.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineAtlasAsset.cpp index 7bb09b282..01792a7dd 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineAtlasAsset.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineAtlasAsset.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp index 320322dfb..fe63c62e1 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneFollowerComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneFollowerComponent.cpp index b79b13cf0..b87f3c44b 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneFollowerComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneFollowerComponent.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp index cacc72851..b0ff86dd2 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePluginPrivatePCH.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePluginPrivatePCH.h index 29defec1e..aacb441a2 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePluginPrivatePCH.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePluginPrivatePCH.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePlugin.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp index d996c33a7..1201249be 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp index 66b951bdf..0a988f0fa 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonDataAsset.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonDataAsset.cpp index c4335a745..022333bce 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonDataAsset.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonDataAsset.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp index 8f291c348..133e5d980 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp index 054064ca3..dc4ad0a4c 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #include "SpinePluginPrivatePCH.h" @@ -491,4 +491,4 @@ void USpineWidget::ClearTrack(int trackIndex) { if (state) { state->clearTrack(trackIndex); } -} \ No newline at end of file +} diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SSpineWidget.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SSpineWidget.h index 28e53e2cd..d0568cc22 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SSpineWidget.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SSpineWidget.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineAtlasAsset.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineAtlasAsset.h index 7cf75d3e6..21c3c1174 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineAtlasAsset.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineAtlasAsset.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneDriverComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneDriverComponent.h index 2bfefb336..27bcdcb2c 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneDriverComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneDriverComponent.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneFollowerComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneFollowerComponent.h index 9e52d33dc..51cca645d 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneFollowerComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineBoneFollowerComponent.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpinePlugin.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpinePlugin.h index 97c6d23e9..ffb08b0b1 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpinePlugin.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpinePlugin.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h index 1b8b55bbb..c2c6ae356 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h index c37444d61..9c35e9026 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonDataAsset.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonDataAsset.h index 4c0d64a5d..03d51f183 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonDataAsset.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonDataAsset.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonRendererComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonRendererComponent.h index d2e74dad5..c37b43834 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonRendererComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonRendererComponent.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h index 84f8884ad..b0fdf5f08 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma once @@ -256,4 +256,4 @@ private: /* If the animation should update automatically. */ UPROPERTY() bool bAutoPlaying; -}; \ No newline at end of file +}; diff --git a/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs b/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs index d9848939f..e9b84da3d 100644 --- a/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs +++ b/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnrealBuildTool; diff --git a/spine-unity/Assets/Spine Examples/Other Examples/Animation Tester/SpineAnimationTesterTool.cs b/spine-unity/Assets/Spine Examples/Other Examples/Animation Tester/SpineAnimationTesterTool.cs index 52fe5b016..21aca3361 100644 --- a/spine-unity/Assets/Spine Examples/Other Examples/Animation Tester/SpineAnimationTesterTool.cs +++ b/spine-unity/Assets/Spine Examples/Other Examples/Animation Tester/SpineAnimationTesterTool.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/AttackSpineboy.cs b/spine-unity/Assets/Spine Examples/Scripts/AttackSpineboy.cs index c05e2c65f..da58a6962 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/AttackSpineboy.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/AttackSpineboy.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/DataAssetsFromExportsExample.cs b/spine-unity/Assets/Spine Examples/Scripts/DataAssetsFromExportsExample.cs index 23179cd00..f5bf4f9f5 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/DataAssetsFromExportsExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/DataAssetsFromExportsExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/DraggableTransform.cs b/spine-unity/Assets/Spine Examples/Scripts/DraggableTransform.cs index 58a195e7e..d8ff6ad47 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/DraggableTransform.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/DraggableTransform.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/FootSoldierExample.cs b/spine-unity/Assets/Spine Examples/Scripts/FootSoldierExample.cs index 6f4b5e3ae..66ab2ceb5 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/FootSoldierExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/FootSoldierExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs index e39a764e5..ea2e63adc 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs index 06d9ee116..20188665c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/Raptor.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/Raptor.cs index 79f4d4c9d..7daabb064 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/Raptor.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/Raptor.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs index 728900023..3493c5c61 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs index 3dd65908a..6f51d1a99 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs index 425b504c5..f5a62bc71 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs index 4efb39241..a3b171a10 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs index 3aa6636b2..48555ed04 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyTargetController.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyTargetController.cs index 4ce3f3c72..fbf33436c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyTargetController.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/SpineboyTargetController.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/TransitionDictionaryExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/TransitionDictionaryExample.cs index 70ed1186a..2a1ec7461 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/TransitionDictionaryExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/TransitionDictionaryExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Goblins.cs b/spine-unity/Assets/Spine Examples/Scripts/Goblins.cs index 6f01e3f7f..70b0dc8c4 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Goblins.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Goblins.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs b/spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs index 01a4bc3bc..c4d782395 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/HeroEffectsHandlerExample.cs b/spine-unity/Assets/Spine Examples/Scripts/HeroEffectsHandlerExample.cs index 304f71e0c..b0cb83fa8 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/HeroEffectsHandlerExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/HeroEffectsHandlerExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/HurtFlashEffect.cs b/spine-unity/Assets/Spine Examples/Scripts/HurtFlashEffect.cs index 26b87d081..901ca43b4 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/HurtFlashEffect.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/HurtFlashEffect.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/MaterialPropertyBlockExample.cs b/spine-unity/Assets/Spine Examples/Scripts/MaterialPropertyBlockExample.cs index 2f93732c4..395155afb 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/MaterialPropertyBlockExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/MaterialPropertyBlockExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/MaterialReplacementExample.cs b/spine-unity/Assets/Spine Examples/Scripts/MaterialReplacementExample.cs index 58b812b5f..df409c61b 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/MaterialReplacementExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/MaterialReplacementExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs index d01879b0a..eb3e09143 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs index 89c8c4d72..072d85c3a 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs index 1276f6054..ebfb7f436 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine Examples/Scripts/MecanimAnimationMatchModifier/AnimationMatchModifierAsset.cs b/spine-unity/Assets/Spine Examples/Scripts/MecanimAnimationMatchModifier/AnimationMatchModifierAsset.cs index 01840de95..275973f1c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/MecanimAnimationMatchModifier/AnimationMatchModifierAsset.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/MecanimAnimationMatchModifier/AnimationMatchModifierAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipAssetExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipAssetExample.cs index 6be16d209..52d7936d5 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipAssetExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipAssetExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipButtonExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipButtonExample.cs index 8a1d23a39..09f858b4a 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipButtonExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipButtonExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipSystemExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipSystemExample.cs index 9cd53080c..fc0521e45 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipSystemExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipSystemExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipsVisualsComponentExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipsVisualsComponentExample.cs index d7b3b8092..5b76e9f3c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipsVisualsComponentExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mix and Match Character Customize/EquipsVisualsComponentExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/MixAndMatch.cs b/spine-unity/Assets/Spine Examples/Scripts/MixAndMatch.cs index f835645de..696c22b79 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/MixAndMatch.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/MixAndMatch.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/MixAndMatchGraphic.cs b/spine-unity/Assets/Spine Examples/Scripts/MixAndMatchGraphic.cs index 612323932..ed2e80ad9 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/MixAndMatchGraphic.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/MixAndMatchGraphic.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/RaggedySpineboy.cs b/spine-unity/Assets/Spine Examples/Scripts/RaggedySpineboy.cs index 430cad754..e7ce38565 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/RaggedySpineboy.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/RaggedySpineboy.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/ReloadSceneOnKeyDown.cs b/spine-unity/Assets/Spine Examples/Scripts/ReloadSceneOnKeyDown.cs index b868701b5..429482754 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/ReloadSceneOnKeyDown.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/ReloadSceneOnKeyDown.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Rotator.cs b/spine-unity/Assets/Spine Examples/Scripts/Rotator.cs index 2250fe4a9..c46f8a0a2 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Rotator.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Rotator.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/BoneLocalOverride.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/BoneLocalOverride.cs index a339febc7..6686c8286 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/BoneLocalOverride.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/BoneLocalOverride.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/CombinedSkin.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/CombinedSkin.cs index 903a9f273..82aa78e3c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/CombinedSkin.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/CombinedSkin.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhost.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhost.cs index fd65afdc9..dde14f2f3 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhost.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhost.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhostRenderer.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhostRenderer.cs index 1b8a60e3a..c62faa983 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhostRenderer.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Ghost/SkeletonGhostRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/AtlasRegionAttacher.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/AtlasRegionAttacher.cs index 487239be6..dd7beb9c4 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/AtlasRegionAttacher.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/AtlasRegionAttacher.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/CustomSkin.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/CustomSkin.cs index cfa70cfa6..4a8e040cb 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/CustomSkin.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/CustomSkin.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,14 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + + diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/SpriteAttacher.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/SpriteAttacher.cs index 242094588..7334d8599 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/SpriteAttacher.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Legacy/SpriteAttacher.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Original Contribution by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/OutlineSkeletonGraphic.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/OutlineSkeletonGraphic.cs index d3d4452b3..ba16d1c50 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/OutlineSkeletonGraphic.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/OutlineSkeletonGraphic.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/JitterEffectExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/JitterEffectExample.cs index eb01d30c8..dccb4cc30 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/JitterEffectExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/JitterEffectExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/TwoByTwoTransformEffectExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/TwoByTwoTransformEffectExample.cs index 10bdc2af4..bedb209fa 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/TwoByTwoTransformEffectExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/Sample VertexEffects/TwoByTwoTransformEffectExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SetRigidbodySolverIterations.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SetRigidbodySolverIterations.cs index 5d3973126..cf2faed23 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SetRigidbodySolverIterations.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SetRigidbodySolverIterations.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs index d2367aeba..640acdbec 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationMulti/SkeletonAnimationMulti.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationMulti/SkeletonAnimationMulti.cs index 19d1215e6..76dec3037 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationMulti/SkeletonAnimationMulti.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationMulti/SkeletonAnimationMulti.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonColorInitialize.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonColorInitialize.cs index e28734096..79270106b 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonColorInitialize.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonColorInitialize.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicMirror.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicMirror.cs index 01c83e20a..49293ca1d 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicMirror.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicMirror.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicPlayAnimationAtEvent.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicPlayAnimationAtEvent.cs index e9cbd2c19..486b5a3b1 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicPlayAnimationAtEvent.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonGraphicPlayAnimationAtEvent.cs @@ -1,4 +1,33 @@ -using UnityEngine; +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +using UnityEngine; using Spine.Unity; public class SkeletonGraphicPlayAnimationAtEvent : MonoBehaviour { diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdoll2DInspector.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdoll2DInspector.cs index b6211c857..ec288a209 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdoll2DInspector.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdoll2DInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdollInspector.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdollInspector.cs index be61bbaf3..8deef1990 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdollInspector.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/Editor/SkeletonRagdollInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll.cs index 1738733f1..2cefa8747 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll2D.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll2D.cs index a370c23ab..daf23bc29 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll2D.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonRagdoll2D.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityEyeConstraint.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityEyeConstraint.cs index 3683929b4..34f4530d8 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityEyeConstraint.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityEyeConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityGroundConstraint.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityGroundConstraint.cs index 75e5829d9..5306fd81a 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityGroundConstraint.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityGroundConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityKinematicShadow.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityKinematicShadow.cs index 3fe48fdd5..cf19a9098 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityKinematicShadow.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonUtility Modules/SkeletonUtilityKinematicShadow.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SlotTintBlackFollower.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SlotTintBlackFollower.cs index 6139f1de6..98feb0ff2 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SlotTintBlackFollower.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SlotTintBlackFollower.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SpineEventUnityHandler.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SpineEventUnityHandler.cs index df08a6dad..518673811 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SpineEventUnityHandler.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SpineEventUnityHandler.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpawnFromSkeletonDataExample.cs b/spine-unity/Assets/Spine Examples/Scripts/SpawnFromSkeletonDataExample.cs index dafd175b8..0887bbc5f 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpawnFromSkeletonDataExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpawnFromSkeletonDataExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpawnSkeletonGraphicExample.cs b/spine-unity/Assets/Spine Examples/Scripts/SpawnSkeletonGraphicExample.cs index 2e403ad64..69d19e19e 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpawnSkeletonGraphicExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpawnSkeletonGraphicExample.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineGauge.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineGauge.cs index 91448d8bf..41271866d 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineGauge.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineGauge.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/Spineboy.cs b/spine-unity/Assets/Spine Examples/Scripts/Spineboy.cs index add6a27ef..e5b843db5 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Spineboy.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Spineboy.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyBodyTilt.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyBodyTilt.cs index e2c70e2e6..61abf26e7 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyBodyTilt.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyBodyTilt.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFacialExpression.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFacialExpression.cs index d5f421ccb..031855403 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFacialExpression.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFacialExpression.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs index 37142d2fe..33570b67c 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFreeze.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFreeze.cs index 59b923592..7bb5e2a2e 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFreeze.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFreeze.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyPole.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyPole.cs index 05d74dd97..f4bd8faf6 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyPole.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyPole.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/AnimationReferenceAssetEditor.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/AnimationReferenceAssetEditor.cs index 777673f2d..7c714b9a8 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/AnimationReferenceAssetEditor.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/AnimationReferenceAssetEditor.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs index 4b9289ae7..0d28252d2 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define SPINE_SKELETON_MECANIM diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SpineAtlasAssetInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SpineAtlasAssetInspector.cs index 93c59f10d..f1c702563 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SpineAtlasAssetInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SpineAtlasAssetInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ //#define BAKE_ALL_BUTTON diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs index 9836dfa68..53570bb09 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerGraphicInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs index 3e5580f0d..4bdae2e6a 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoneFollowerInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEditor; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs index 6f468a046..f63010b09 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs index 528a04413..858a8ecfe 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/PointFollowerInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs index b6702e253..328766fda 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonAnimationInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEditor; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs index b24298f51..7534b7011 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs index 329891142..4ecce5385 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs index 7520de82c..44c9f4a49 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererCustomMaterialsInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define SPINE_OPTIONAL_MATERIALOVERRIDE diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs index c0f4a9685..15f8d46b8 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRendererInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs index 2d4d86d9f..44333caf8 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityBoneInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs index 942f3895d..c7f92c4e4 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonUtilityInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs index dc4f3b952..605a2e39a 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Menus.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineShaderWithOutlineGUI.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineShaderWithOutlineGUI.cs index bcffe969e..30bb87be8 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineShaderWithOutlineGUI.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineShaderWithOutlineGUI.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs index 3bfb07bcf..53db206b9 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Shaders/SpineSpriteShaderGUI.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineAttributeDrawers.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineAttributeDrawers.cs index b04ce92e5..c5b38557b 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineAttributeDrawers.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineAttributeDrawers.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Contributed by: Mitch Thompson diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetDatabaseAvailabilityDetector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetDatabaseAvailabilityDetector.cs index 64851c09d..8c464a831 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetDatabaseAvailabilityDetector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetDatabaseAvailabilityDetector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs index 865263e87..a16ac3d77 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/BuildSettings.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/BuildSettings.cs index b13381d0f..37ff86de2 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/BuildSettings.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/BuildSettings.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs index 970641482..59da1974c 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Icons.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Icons.cs index 347424f83..71e7ce15c 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Icons.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Icons.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Instantiation.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Instantiation.cs index 9a40f3b9e..99ffc397f 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Instantiation.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Instantiation.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Preferences.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Preferences.cs index ef8db192e..eb9096a27 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Preferences.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/Preferences.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs index b6a40dd0e..273977ff7 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineEditorUtilities.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineHandles.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineHandles.cs index afa5a91ba..84f382785 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineHandles.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineHandles.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineInspectorUtility.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineInspectorUtility.cs index 907900653..24b6af729 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineInspectorUtility.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineInspectorUtility.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineMaskUtilities.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineMaskUtilities.cs index d29f19672..f3e3dc266 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineMaskUtilities.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/SpineMaskUtilities.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #pragma warning disable 0219 diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs index 54e009550..49716df16 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBaker.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs index 08cb58713..62870d00d 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonBakingWindow.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs index 836fc2bd8..4170a5542 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SkeletonDebugWindow.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // With contributions from: Mitch Thompson diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SpinePreferences.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SpinePreferences.cs index 477b5195b..c21475603 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SpinePreferences.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Windows/SpinePreferences.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2017_2_OR_NEWER diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs index a6466313d..79d4d9e45 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs index 33d0903e8..1662b7ae0 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonRenderSeparatorInspector.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs index f7b39944b..889995202 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AnimationReferenceAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AnimationReferenceAsset.cs index f3fb37f25..494ce23e3 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AnimationReferenceAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AnimationReferenceAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define AUTOINIT_SPINEREFERENCE diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AtlasAssetBase.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AtlasAssetBase.cs index f5942e952..a987b54fc 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AtlasAssetBase.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/AtlasAssetBase.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/EventDataReferenceAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/EventDataReferenceAsset.cs index 0e7cc130b..38e41dfed 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/EventDataReferenceAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/EventDataReferenceAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #define AUTOINIT_SPINEREFERENCE diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/RegionlessAttachmentLoader.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/RegionlessAttachmentLoader.cs index 23555e676..37e7eaa2e 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/RegionlessAttachmentLoader.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/RegionlessAttachmentLoader.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs index 12af217e0..b18e0f417 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataCompatibility.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataCompatibility.cs index ac1a4bca7..810a5238d 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataCompatibility.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataCompatibility.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataModifierAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataModifierAsset.cs index ccc82f43b..34fef4fa9 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataModifierAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataModifierAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SpineAtlasAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SpineAtlasAsset.cs index aca61a65a..55aba23d8 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SpineAtlasAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/SpineAtlasAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollower.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollower.cs index b0edb485c..4e6fdc81b 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollower.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollower.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollowerGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollowerGraphic.cs index 7ce78163e..8971f341d 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollowerGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollowerGraphic.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollower.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollower.cs index 1a894321a..63e5e30d9 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollower.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollower.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/PointFollower.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/PointFollower.cs index 83e182d06..699e42823 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/PointFollower.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/PointFollower.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs index 955e57d74..acbca444e 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonAnimation.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index a6e05b8f5..f205c9853 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonMecanim.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonMecanim.cs index be4c93a48..6de3a9ea9 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonMecanim.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonMecanim.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonPartsRenderer.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonPartsRenderer.cs index 070cc4cc3..f9b7fa383 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonPartsRenderer.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonPartsRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs index 77589571d..e3b88ccfc 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderSeparator/SkeletonRenderSeparator.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs index a12c80262..97e4bb7ed 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRendererCustomMaterials/SkeletonRendererCustomMaterials.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRendererCustomMaterials/SkeletonRendererCustomMaterials.cs index b0e41fdf5..efda06073 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRendererCustomMaterials/SkeletonRendererCustomMaterials.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRendererCustomMaterials/SkeletonRendererCustomMaterials.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/ActivateBasedOnFlipDirection.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/ActivateBasedOnFlipDirection.cs index ec24e193c..a025187fd 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/ActivateBasedOnFlipDirection.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/ActivateBasedOnFlipDirection.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody.cs index 81de4314e..f0ede08ee 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody2D.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody2D.cs index fa97c4559..76c12b99d 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody2D.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody2D.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowSkeletonUtilityRootRotation.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowSkeletonUtilityRootRotation.cs index 213f6b176..a970ae98d 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowSkeletonUtilityRootRotation.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowSkeletonUtilityRootRotation.cs @@ -1,8 +1,8 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs index a39214317..aab8ccd77 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtility.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityBone.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityBone.cs index f1c302065..2fb90b824 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityBone.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityBone.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityConstraint.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityConstraint.cs index 536dc7d7a..c993921ae 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityConstraint.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityConstraint.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Deprecated/SlotBlendModes/SlotBlendModes.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Deprecated/SlotBlendModes/SlotBlendModes.cs index 2838312d9..69b01b62a 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Deprecated/SlotBlendModes/SlotBlendModes.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Deprecated/SlotBlendModes/SlotBlendModes.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/ISkeletonAnimation.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/ISkeletonAnimation.cs index 9444699e5..496957574 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/ISkeletonAnimation.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/ISkeletonAnimation.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine.Unity { diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/DoubleBuffered.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/DoubleBuffered.cs index 0a1e2fc4a..9b2c8d9ad 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/DoubleBuffered.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/DoubleBuffered.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ namespace Spine.Unity { diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs index db2461c96..571879a4e 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Not for optimization. Do not disable. diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshRendererBuffers.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshRendererBuffers.cs index 81625f8bd..e108bbda9 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshRendererBuffers.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshRendererBuffers.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Not for optimization. Do not disable. diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SkeletonRendererInstruction.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SkeletonRendererInstruction.cs index ec2a5f5b9..54821fa5f 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SkeletonRendererInstruction.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SkeletonRendererInstruction.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Not for optimization. Do not disable. diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs index 999b6a8db..31a25e197 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ // Not for optimization. Do not disable. diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/TK2D/SpriteCollectionAttachmentLoader.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/TK2D/SpriteCollectionAttachmentLoader.cs index 037c49c4b..a3ce3de2c 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/TK2D/SpriteCollectionAttachmentLoader.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Modules/TK2D/SpriteCollectionAttachmentLoader.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ #if SPINE_TK2D diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/BlendModeMaterialsAsset.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/BlendModeMaterialsAsset.cs index a66706250..3f649324b 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/BlendModeMaterialsAsset.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/BlendModeMaterialsAsset.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs index 9a2a410a2..a0dd2e276 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/SpineAttributes.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AtlasUtilities.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AtlasUtilities.cs index 6468962ae..356674507 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AtlasUtilities.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AtlasUtilities.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentCloneExtensions.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentCloneExtensions.cs index e5d8663b4..ece990f36 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentCloneExtensions.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentCloneExtensions.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentRegionExtensions.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentRegionExtensions.cs index eac9104a2..580b0ae68 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentRegionExtensions.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AttachmentRegionExtensions.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs index 3c1f86c85..12fa4d239 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System.Collections.Generic; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkeletonExtensions.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkeletonExtensions.cs index a451b91f6..93bce0759 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkeletonExtensions.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkeletonExtensions.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkinUtilities.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkinUtilities.cs index 57112c8b4..0cdcca1dd 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkinUtilities.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/SkinUtilities.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimation.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimation.cs index 40209dc4f..644ceed9f 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimation.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimation.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationComplete.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationComplete.cs index 1d758e8ed..39cf16a95 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationComplete.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationComplete.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationEnd.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationEnd.cs index 428d7f7e2..dbafcc6c0 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationEnd.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationEnd.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineEvent.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineEvent.cs index 736492f96..1da2bcb6a 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineEvent.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineEvent.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineTrackEntryEnd.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineTrackEntryEnd.cs index 797cbd6f9..dc62d4354 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineTrackEntryEnd.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineTrackEntryEnd.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using UnityEngine; diff --git a/spine-xna/example/src/ExampleGame.cs b/spine-xna/example/src/ExampleGame.cs index 18200ebec..93cf75ce5 100644 --- a/spine-xna/example/src/ExampleGame.cs +++ b/spine-xna/example/src/ExampleGame.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-xna/src/MeshBatcher.cs b/spine-xna/src/MeshBatcher.cs index 338f03ccb..86ad5e4f5 100644 --- a/spine-xna/src/MeshBatcher.cs +++ b/spine-xna/src/MeshBatcher.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-xna/src/ShapeRenderer.cs b/spine-xna/src/ShapeRenderer.cs index e92f81913..cdc47c47c 100644 --- a/spine-xna/src/ShapeRenderer.cs +++ b/spine-xna/src/ShapeRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using Microsoft.Xna.Framework; diff --git a/spine-xna/src/SkeletonDebugRenderer.cs b/spine-xna/src/SkeletonDebugRenderer.cs index 78fd48b5a..c664a458e 100644 --- a/spine-xna/src/SkeletonDebugRenderer.cs +++ b/spine-xna/src/SkeletonDebugRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using Microsoft.Xna.Framework; diff --git a/spine-xna/src/SkeletonRenderer.cs b/spine-xna/src/SkeletonRenderer.cs index ad986a2b0..5da513870 100644 --- a/spine-xna/src/SkeletonRenderer.cs +++ b/spine-xna/src/SkeletonRenderer.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-xna/src/Util.cs b/spine-xna/src/Util.cs index f902819e0..54d495ac5 100644 --- a/spine-xna/src/Util.cs +++ b/spine-xna/src/Util.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-xna/src/VertexEffect.cs b/spine-xna/src/VertexEffect.cs index 545c1c63c..16ad52b9b 100644 --- a/spine-xna/src/VertexEffect.cs +++ b/spine-xna/src/VertexEffect.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System; diff --git a/spine-xna/src/XnaTextureLoader.cs b/spine-xna/src/XnaTextureLoader.cs index 12986b316..9498cf0a0 100644 --- a/spine-xna/src/XnaTextureLoader.cs +++ b/spine-xna/src/XnaTextureLoader.cs @@ -1,8 +1,8 @@ /****************************************************************************** * Spine Runtimes License Agreement - * Last updated May 1, 2019. Replaces all prior versions. + * Last updated January 1, 2020. Replaces all prior versions. * - * Copyright (c) 2013-2019, Esoteric Software LLC + * Copyright (c) 2013-2020, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and @@ -15,16 +15,16 @@ * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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. + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "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 LLC 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 + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ using System;