From 5867753b75df9f92eb3cf3c1bbb472f7b748ce06 Mon Sep 17 00:00:00 2001 From: sangta Date: Thu, 25 Apr 2024 18:54:33 +0700 Subject: [PATCH] update --- Assets/GadGame/Scenes/Game.unity | 1708 +++++- Assets/GadGame/Scenes/PassBy.unity | 251 +- Assets/GadGame/Scripts/MainFlow.cs | 3 +- .../Scripts/MiniGame/MiniGameController.cs | 63 +- .../GadGame/Scripts/Network/ReceiverData.cs | 2 +- Assets/GadGame/Scripts/PassByAnimation.cs | 34 +- .../Scripts/State/MainFlowState/CTAState.cs | 17 +- .../State/MainFlowState/EngageState.cs | 60 +- .../Scripts/State/MainFlowState/IdleState.cs | 11 +- .../State/MainFlowState/PassByState.cs | 16 +- .../State/MainFlowState/PlayGameState.cs | 8 +- Assets/GadGame/Scripts/State/StateRunner.cs | 2 +- Assets/Plugins/Febucci.meta | 8 + Assets/Plugins/Febucci/Text Animator.meta | 8 + .../Febucci/Text Animator/Attributes.meta | 8 + .../Text Animator/Attributes/Editor.meta | 8 + .../Editor/CharsDisplayTimeAttributeDrawer.cs | 66 + .../CharsDisplayTimeAttributeDrawer.cs.meta | 11 + .../Editor/Febucci.Attributes.Editor.asmdef | 18 + .../Febucci.Attributes.Editor.asmdef.meta | 7 + .../Editor/MinValueAttributeDrawer.cs | 30 + .../Editor/MinValueAttributeDrawer.cs.meta | 11 + .../Editor/NotZeroAttributeDrawer.cs | 49 + .../Editor/NotZeroAttributeDrawer.cs.meta | 11 + .../Editor/PositiveValueAttributeDrawer.cs | 47 + .../PositiveValueAttributeDrawer.cs.meta | 11 + .../Text Animator/Attributes/Runtime.meta | 8 + .../Runtime/CharsDisplayTimeAttribute.cs | 9 + .../Runtime/CharsDisplayTimeAttribute.cs.meta | 11 + .../Runtime/Febucci.Attributes.Runtime.asmdef | 14 + .../Febucci.Attributes.Runtime.asmdef.meta | 7 + .../Attributes/Runtime/MinValueAttribute.cs | 14 + .../Runtime/MinValueAttribute.cs.meta | 11 + .../Attributes/Runtime/NotZeroAttribute.cs | 10 + .../Runtime/NotZeroAttribute.cs.meta | 11 + .../Runtime/PositiveValueAttribute.cs | 10 + .../Runtime/PositiveValueAttribute.cs.meta | 11 + .../Plugins/Febucci/Text Animator/Data.meta | 8 + .../Febucci/Text Animator/Data/Actions.meta | 8 + .../Data/Actions/Actions Database.asset | 18 + .../Data/Actions/Actions Database.asset.meta | 8 + .../Data/Actions/SpeedAction.asset | 16 + .../Data/Actions/SpeedAction.asset.meta | 8 + .../Data/Actions/WaitAnyInputAction.asset | 15 + .../Actions/WaitAnyInputAction.asset.meta | 8 + .../Data/Actions/WaitForAction.asset | 16 + .../Data/Actions/WaitForAction.asset.meta | 8 + .../Text Animator/Data/Appearances.meta | 8 + .../Appearances/Appearances Database.asset | 23 + .../Appearances Database.asset.meta | 8 + .../DiagonalExpandAppearance.asset | 17 + .../DiagonalExpandAppearance.asset.meta | 8 + .../Data/Appearances/FadeAppearance.asset | 16 + .../Appearances/FadeAppearance.asset.meta | 8 + .../HorizontalExpandAppearance.asset | 17 + .../HorizontalExpandAppearance.asset.meta | 8 + .../Data/Appearances/OffsetAppearance.asset | 18 + .../Appearances/OffsetAppearance.asset.meta | 8 + .../RandomDirectionAppearance.asset | 17 + .../RandomDirectionAppearance.asset.meta | 8 + .../Data/Appearances/RotatingAppearance.asset | 17 + .../Appearances/RotatingAppearance.asset.meta | 8 + .../Data/Appearances/SizeAppearance.asset | 17 + .../Appearances/SizeAppearance.asset.meta | 8 + .../VerticalExpandAppearance.asset | 17 + .../VerticalExpandAppearance.asset.meta | 8 + .../Febucci/Text Animator/Data/Behaviors.meta | 8 + .../Data/Behaviors/Behaviors Database.asset | 27 + .../Behaviors/Behaviors Database.asset.meta | 8 + .../Data/Behaviors/BounceBehavior.asset | 18 + .../Data/Behaviors/BounceBehavior.asset.meta | 8 + .../Data/Behaviors/DangleBehavior.asset | 19 + .../Data/Behaviors/DangleBehavior.asset.meta | 8 + .../Data/Behaviors/FadeBehavior.asset | 17 + .../Data/Behaviors/FadeBehavior.asset.meta | 8 + .../Data/Behaviors/PendulumBehavior.asset | 19 + .../Behaviors/PendulumBehavior.asset.meta | 8 + .../Data/Behaviors/RainbowBehavior.asset | 17 + .../Data/Behaviors/RainbowBehavior.asset.meta | 8 + .../Data/Behaviors/RotationBehavior.asset | 17 + .../Behaviors/RotationBehavior.asset.meta | 8 + .../Data/Behaviors/ShakeBehavior.asset | 18 + .../Data/Behaviors/ShakeBehavior.asset.meta | 8 + .../Data/Behaviors/SizeBehavior.asset | 18 + .../Data/Behaviors/SizeBehavior.asset.meta | 8 + .../Data/Behaviors/SlideBehavior.asset | 18 + .../Data/Behaviors/SlideBehavior.asset.meta | 8 + .../Data/Behaviors/SwingBehavior.asset | 18 + .../Data/Behaviors/SwingBehavior.asset.meta | 8 + .../Data/Behaviors/WaveBehavior.asset | 18 + .../Data/Behaviors/WaveBehavior.asset.meta | 8 + .../Data/Behaviors/WiggleBehavior.asset | 18 + .../Data/Behaviors/WiggleBehavior.asset.meta | 8 + .../Text Animator/Data/InstallationData.asset | 15 + .../Data/InstallationData.asset.meta | 8 + .../Febucci/Text Animator/Data/Resources.meta | 8 + .../Data/Resources/TextAnimatorSettings.asset | 29 + .../Resources/TextAnimatorSettings.asset.meta | 8 + .../Febucci/Text Animator/Example.meta | 8 + .../Text Animator/Example/00 - Welcome.unity | 535 ++ .../Example/00 - Welcome.unity.meta | 7 + .../Example/Example 1A - Effects.unity | 639 ++ .../Example/Example 1A - Effects.unity.meta | 7 + .../Example/Example 1B - Stacks.unity | 650 ++ .../Example/Example 1B - Stacks.unity.meta | 7 + .../Example/Example 1C - Attributes.unity | 593 ++ .../Example 1C - Attributes.unity.meta | 7 + .../Example/Example 2 - Events.unity | 1645 +++++ .../Example/Example 2 - Events.unity.meta | 7 + .../Example/Example 3 - Actions.unity | 664 ++ .../Example/Example 3 - Actions.unity.meta | 7 + .../Febucci/Text Animator/Example/Font.meta | 8 + .../Example/Font/Lato-Regular.asset | 5367 +++++++++++++++++ .../Example/Font/Lato-Regular.asset.meta | 8 + .../Example/Font/Lato-Regular.ttf | Bin 0 -> 75136 bytes .../Example/Font/Lato-Regular.ttf.meta | 22 + .../Text Animator/Example/Font/OFL.txt | 93 + .../Text Animator/Example/Font/OFL.txt.meta | 7 + .../Text Animator/Example/Scripts.meta | 8 + .../Example/Scripts/Runtime.meta | 8 + .../Scripts/Runtime/DefaultEffectsExample.cs | 53 + .../Runtime/DefaultEffectsExample.cs.meta | 11 + .../Example/Scripts/Runtime/ExampleEvents.cs | 168 + .../Scripts/Runtime/ExampleEvents.cs.meta | 11 + .../Febucci.TextAnimator.Demo.Runtime.asmdef | 15 + ...ucci.TextAnimator.Demo.Runtime.asmdef.meta | 7 + .../Example/Scripts/Runtime/UsageExample.cs | 30 + .../Scripts/Runtime/UsageExample.cs.meta | 11 + .../Text Animator/Example/Sprites.meta | 8 + .../Text Animator/Example/Sprites/Circle.png | Bin 0 -> 7598 bytes .../Example/Sprites/Circle.png.meta | 202 + .../Example/Sprites/Example_sprites.png | Bin 0 -> 147550 bytes .../Example/Sprites/Example_sprites.png.meta | 402 ++ .../Sprites/example_dialoguebox_body.png | Bin 0 -> 7929 bytes .../Sprites/example_dialoguebox_body.png.meta | 108 + .../Plugins/Febucci/Text Animator/Extra.meta | 8 + ...pewriter Sound - Package.unitypackage.meta | 7 + .../Febucci/Text Animator/Integrations.meta | 8 + .../Integrations/Integrations.txt | 12 + .../Integrations/Integrations.txt.meta | 7 + .../PlayMaker - Integration.unitypackage.meta | 7 + ... Scripting - Integration.unitypackage.meta | 7 + .../Text Animator/Quick Start [Offline].pdf | Bin 0 -> 86783 bytes .../Quick Start [Offline].pdf.meta | 7 + .../Febucci/Text Animator/Scripts.meta | 8 + .../Febucci/Text Animator/Scripts/Editor.meta | 8 + .../Text Animator/Scripts/Editor/Drawers.meta | 8 + .../Scripts/Editor/Drawers/Components.meta | 8 + .../Drawers/Components/TAnimCoreDrawer.cs | 641 ++ .../Components/TAnimCoreDrawer.cs.meta | 11 + .../Components/TypewriterByCharacterDrawer.cs | 89 + .../TypewriterByCharacterDrawer.cs.meta | 3 + .../Components/TypewriterByWordDrawer.cs | 59 + .../Components/TypewriterByWordDrawer.cs.meta | 3 + .../Components/TypewriterCoreDrawer.cs | 253 + .../Components/TypewriterCoreDrawer.cs.meta | 11 + .../Scripts/Editor/Drawers/Properties.meta | 3 + .../Properties/ColorCurvePropertyDrawer.cs | 51 + .../ColorCurvePropertyDrawer.cs.meta | 3 + .../Properties/EmissionCurvePropertyDrawer.cs | 49 + .../EmissionCurvePropertyDrawer.cs.meta | 3 + .../Properties/FloatCurvePropertyDrawer.cs | 51 + .../FloatCurvePropertyDrawer.cs.meta | 3 + .../Scripts/Editor/Drawers/Scriptables.meta | 8 + .../Editor/Drawers/Scriptables/Actions.meta | 8 + .../Actions/ActionScriptableDrawer.cs | 15 + .../Actions/ActionScriptableDrawer.cs.meta | 11 + .../Drawers/Scriptables/Animations.meta | 8 + .../Animations/AnimScriptableDrawer.cs | 15 + .../Animations/AnimScriptableDrawer.cs.meta | 11 + .../Editor/Drawers/Scriptables/Database.meta | 8 + .../ActionDatabaseScriptableDrawer.cs | 17 + .../ActionDatabaseScriptableDrawer.cs.meta | 11 + .../Database/AnimDatabaseScriptableDrawer.cs | 16 + .../AnimDatabaseScriptableDrawer.cs.meta | 11 + .../Database/AnimationElementDrawer.cs | 104 + .../Database/AnimationElementDrawer.cs.meta | 3 + .../Database/DatabaseSharedDrawer.cs | 73 + .../Database/DatabaseSharedDrawer.cs.meta | 11 + .../Scripts/Editor/Drawers/Settings.meta | 3 + .../Settings/TextAnimatorInstallationData.cs | 10 + .../TextAnimatorInstallationData.cs.meta | 3 + .../TextAnimatorInstallationDataDrawer.cs | 52 + ...TextAnimatorInstallationDataDrawer.cs.meta | 3 + .../Settings/TextAnimatorSettingsDrawer.cs | 30 + .../TextAnimatorSettingsDrawer.cs.meta | 3 + .../Settings/TextAnimatorSetupWindow.cs | 486 ++ .../Settings/TextAnimatorSetupWindow.cs.meta | 3 + .../Scripts/Editor/Drawers/_Core.meta | 8 + .../Drawers/_Core/GenericSharedDrawer.cs | 55 + .../Drawers/_Core/GenericSharedDrawer.cs.meta | 11 + .../Editor/Drawers/_Core/SharedDrawer.cs | 69 + .../Editor/Drawers/_Core/SharedDrawer.cs.meta | 11 + .../Editor/Drawers/_Core/TexturesLoader.cs | 75 + .../Drawers/_Core/TexturesLoader.cs.meta | 11 + .../Editor/Febucci.TextAnimator.Editor.asmdef | 18 + .../Febucci.TextAnimator.Editor.asmdef.meta | 7 + .../Scripts/Editor/Resources.meta | 8 + .../Editor/Resources/Text Animator.meta | 8 + .../Resources/Text Animator/about_logo.png | Bin 0 -> 22597 bytes .../Text Animator/about_logo.png.meta | 108 + .../Resources/Text Animator/pause_icon.png | Bin 0 -> 529 bytes .../Text Animator/pause_icon.png.meta | 108 + .../Resources/Text Animator/play_icon.png | Bin 0 -> 640 bytes .../Text Animator/play_icon.png.meta | 108 + .../Resources/Text Animator/restart_icon.png | Bin 0 -> 918 bytes .../Text Animator/restart_icon.png.meta | 108 + .../Resources/Text Animator/save_icon.png | Bin 0 -> 779 bytes .../Text Animator/save_icon.png.meta | 108 + .../Resources/Text Animator/stop_icon.png | Bin 0 -> 567 bytes .../Text Animator/stop_icon.png.meta | 96 + .../Text Animator/Scripts/Runtime.meta | 8 + .../Scripts/Runtime/Components.meta | 8 + .../Scripts/Runtime/Components/Animator.meta | 8 + .../Components/Animator/TextMeshPro.meta | 8 + .../Febucci.TextAnimator.TMP.Runtime.asmdef | 30 + ...bucci.TextAnimator.TMP.Runtime.asmdef.meta | 7 + .../Animator/TextMeshPro/TMPTagParser.cs | 86 + .../Animator/TextMeshPro/TMPTagParser.cs.meta | 11 + .../Animator/TextMeshPro/TextAnimator_TMP.cs | 238 + .../TextMeshPro/TextAnimator_TMP.cs.meta | 11 + .../Runtime/Components/Animator/_Core.meta | 8 + .../Animator/_Core/AnimationLoop.cs | 14 + .../Animator/_Core/AnimationLoop.cs.meta | 3 + .../Components/Animator/_Core/TAnimCore.cs | 1342 +++++ .../Animator/_Core/TAnimCore.cs.meta | 11 + .../Components/Animator/_Core/TimeData.cs | 35 + .../Animator/_Core/TimeData.cs.meta | 3 + .../Components/Animator/_Core/TimeScale.cs | 11 + .../Animator/_Core/TimeScale.cs.meta | 3 + .../Runtime/Components/Typewriter.meta | 8 + .../Components/Typewriter/Built-in.meta | 8 + .../Built-in/TypewriterByCharacter.cs | 86 + .../Built-in/TypewriterByCharacter.cs.meta | 11 + .../Typewriter/Built-in/TypewriterByWord.cs | 49 + .../Built-in/TypewriterByWord.cs.meta | 11 + .../Runtime/Components/Typewriter/_Core.meta | 8 + .../Typewriter/_Core/CharacterEvent.cs | 7 + .../Typewriter/_Core/CharacterEvent.cs.meta | 3 + .../Typewriter/_Core/MessageEvent.cs | 8 + .../Typewriter/_Core/MessageEvent.cs.meta | 3 + .../Typewriter/_Core/TypewriterCore.cs | 624 ++ .../Typewriter/_Core/TypewriterCore.cs.meta | 11 + .../Components/Typewriter/_Core/TypingInfo.cs | 18 + .../Typewriter/_Core/TypingInfo.cs.meta | 3 + .../Febucci.TextAnimator.Runtime.asmdef | 16 + .../Febucci.TextAnimator.Runtime.asmdef.meta | 7 + .../Scripts/Runtime/Parsing.meta | 8 + .../Scripts/Runtime/Parsing/Markers.meta | 8 + .../Runtime/Parsing/Markers/Actions.meta | 8 + .../Parsing/Markers/Actions/ActionDatabase.cs | 11 + .../Markers/Actions/ActionDatabase.cs.meta | 11 + .../Parsing/Markers/Actions/ActionMarker.cs | 10 + .../Markers/Actions/ActionMarker.cs.meta | 11 + .../Parsing/Markers/Actions/ActionParser.cs | 62 + .../Markers/Actions/ActionParser.cs.meta | 11 + .../Runtime/Parsing/Markers/Events.meta | 8 + .../Parsing/Markers/Events/EventMarker.cs | 10 + .../Markers/Events/EventMarker.cs.meta | 11 + .../Parsing/Markers/Events/EventParser.cs | 52 + .../Markers/Events/EventParser.cs.meta | 11 + .../Runtime/Parsing/Markers/_Core.meta | 8 + .../Parsing/Markers/_Core/MarkerBase.cs | 47 + .../Parsing/Markers/_Core/MarkerBase.cs.meta | 11 + .../Scripts/Runtime/Parsing/Regions.meta | 8 + .../Runtime/Parsing/Regions/Animations.meta | 8 + .../Regions/Animations/AnimationParser.cs | 115 + .../Animations/AnimationParser.cs.meta | 11 + .../Regions/Animations/AnimationRegion.cs | 122 + .../Animations/AnimationRegion.cs.meta | 11 + .../Runtime/Parsing/Regions/_Core.meta | 8 + .../Parsing/Regions/_Core/ModifierInfo.cs | 21 + .../Regions/_Core/ModifierInfo.cs.meta | 11 + .../Parsing/Regions/_Core/RegionBase.cs | 33 + .../Parsing/Regions/_Core/RegionBase.cs.meta | 11 + .../Runtime/Parsing/Regions/_Core/TagRange.cs | 41 + .../Parsing/Regions/_Core/TagRange.cs.meta | 11 + .../Scripts/Runtime/Parsing/TextParser.cs | 119 + .../Runtime/Parsing/TextParser.cs.meta | 11 + .../Scripts/Runtime/Parsing/_Core.meta | 8 + .../Scripts/Runtime/Parsing/_Core/CharInfo.cs | 14 + .../Runtime/Parsing/_Core/CharInfo.cs.meta | 3 + .../Runtime/Parsing/_Core/CharacterData.cs | 60 + .../Parsing/_Core/CharacterData.cs.meta | 11 + .../Scripts/Runtime/Parsing/_Core/Database.cs | 119 + .../Runtime/Parsing/_Core/Database.cs.meta | 11 + .../Runtime/Parsing/_Core/ITagProvider.cs | 7 + .../Parsing/_Core/ITagProvider.cs.meta | 11 + .../Scripts/Runtime/Parsing/_Core/MeshData.cs | 44 + .../Runtime/Parsing/_Core/MeshData.cs.meta | 3 + .../Runtime/Parsing/_Core/TagParserBase.cs | 29 + .../Parsing/_Core/TagParserBase.cs.meta | 11 + .../Scripts/Runtime/Parsing/_Core/WordInfo.cs | 16 + .../Runtime/Parsing/_Core/WordInfo.cs.meta | 3 + .../Scripts/Runtime/Scriptables.meta | 8 + .../Scripts/Runtime/Scriptables/Actions.meta | 8 + .../Runtime/Scriptables/Actions/Built-in.meta | 8 + .../Actions/Built-in/SpeedAction.cs | 29 + .../Actions/Built-in/SpeedAction.cs.meta | 11 + .../Actions/Built-in/WaitAnyInputAction.cs | 18 + .../Built-in/WaitAnyInputAction.cs.meta | 11 + .../Actions/Built-in/WaitForAction.cs | 33 + .../Actions/Built-in/WaitForAction.cs.meta | 11 + .../Runtime/Scriptables/Actions/_Core.meta | 8 + .../Actions/_Core/ActionScriptableBase.cs | 18 + .../_Core/ActionScriptableBase.cs.meta | 11 + .../Runtime/Scriptables/Animations.meta | 8 + .../Scriptables/Animations/Appearances.meta | 8 + .../Animations/Appearances/Built-in.meta | 8 + .../Built-in/DiagonalExpandAppearance.cs | 65 + .../Built-in/DiagonalExpandAppearance.cs.meta | 11 + .../Appearances/Built-in/FadeAppearance.cs | 29 + .../Built-in/FadeAppearance.cs.meta | 11 + .../Built-in/HorizontalExpandAppearance.cs | 99 + .../HorizontalExpandAppearance.cs.meta | 11 + .../Appearances/Built-in/OffsetAppearance.cs | 37 + .../Built-in/OffsetAppearance.cs.meta | 11 + .../Built-in/RandomDirectionAppearance.cs | 58 + .../RandomDirectionAppearance.cs.meta | 11 + .../Built-in/RotatingAppearance.cs | 43 + .../Built-in/RotatingAppearance.cs.meta | 11 + .../Appearances/Built-in/SizeAppearance.cs | 37 + .../Built-in/SizeAppearance.cs.meta | 11 + .../Built-in/VerticalExpandAppearance.cs | 69 + .../Built-in/VerticalExpandAppearance.cs.meta | 11 + .../Animations/Appearances/_Core.meta | 8 + .../_Core/AppearanceScriptableBase.cs | 31 + .../_Core/AppearanceScriptableBase.cs.meta | 11 + .../Scriptables/Animations/Behaviors.meta | 8 + .../Animations/Behaviors/Built-in.meta | 8 + .../Behaviors/Built-in/BounceBehavior.cs | 41 + .../Behaviors/Built-in/BounceBehavior.cs.meta | 11 + .../Behaviors/Built-in/DangleBehavior.cs | 47 + .../Behaviors/Built-in/DangleBehavior.cs.meta | 11 + .../Behaviors/Built-in/FadeBehavior.cs | 69 + .../Behaviors/Built-in/FadeBehavior.cs.meta | 11 + .../Behaviors/Built-in/PendulumBehavior.cs | 46 + .../Built-in/PendulumBehavior.cs.meta | 11 + .../Behaviors/Built-in/RainbowBehavior.cs | 46 + .../Built-in/RainbowBehavior.cs.meta | 11 + .../Behaviors/Built-in/RotationBehavior.cs | 42 + .../Built-in/RotationBehavior.cs.meta | 11 + .../Behaviors/Built-in/ShakeBehavior.cs | 79 + .../Behaviors/Built-in/ShakeBehavior.cs.meta | 11 + .../Behaviors/Built-in/SizeBehavior.cs | 42 + .../Behaviors/Built-in/SizeBehavior.cs.meta | 11 + .../Behaviors/Built-in/SlideBehavior.cs | 29 + .../Behaviors/Built-in/SlideBehavior.cs.meta | 11 + .../Behaviors/Built-in/SwingBehavior.cs | 19 + .../Behaviors/Built-in/SwingBehavior.cs.meta | 11 + .../Behaviors/Built-in/WaveBehavior.cs | 22 + .../Behaviors/Built-in/WaveBehavior.cs.meta | 11 + .../Behaviors/Built-in/WiggleBehavior.cs | 42 + .../Behaviors/Built-in/WiggleBehavior.cs.meta | 11 + .../Animations/Behaviors/_Core.meta | 8 + .../Behaviors/_Core/BehaviorScriptableBase.cs | 14 + .../_Core/BehaviorScriptableBase.cs.meta | 11 + .../Behaviors/_Core/BehaviorScriptableSine.cs | 38 + .../_Core/BehaviorScriptableSine.cs.meta | 11 + .../Scriptables/Animations/Special.meta | 8 + .../Animations/Special/CompositeAnimation.cs | 84 + .../Special/CompositeAnimation.cs.meta | 11 + .../Special/CompositeWithEmission.cs | 98 + .../Special/CompositeWithEmission.cs.meta | 11 + .../Animations/Special/Curves.meta | 8 + .../Animations/Special/Curves/Built-in.meta | 8 + .../Curves/Built-in/UniformCurveAnimation.cs | 72 + .../Built-in/UniformCurveAnimation.cs.meta | 11 + .../Curves/Built-in/VertexCurveAnimation.cs | 112 + .../Built-in/VertexCurveAnimation.cs.meta | 11 + .../Animations/Special/Curves/_Core.meta | 8 + .../Special/Curves/_Core/AnimationData.cs | 87 + .../Curves/_Core/AnimationData.cs.meta | 11 + .../Special/Curves/_Core/ColorCurve.cs | 47 + .../Special/Curves/_Core/ColorCurve.cs.meta | 11 + .../Special/Curves/_Core/EmissionCurve.cs | 43 + .../Curves/_Core/EmissionCurve.cs.meta | 11 + .../Special/Curves/_Core/FloatCurve.cs | 39 + .../Special/Curves/_Core/FloatCurve.cs.meta | 11 + .../Special/Curves/_Core/TimeMode.cs | 29 + .../Special/Curves/_Core/TimeMode.cs.meta | 3 + .../Runtime/Scriptables/Animations/_Core.meta | 8 + .../_Core/AnimationScriptableBase.cs | 54 + .../_Core/AnimationScriptableBase.cs.meta | 11 + .../Animations/_Core/AnimationsDatabase.cs | 14 + .../_Core/AnimationsDatabase.cs.meta | 3 + .../Animations/_Core/DefaultValueAttribute.cs | 17 + .../_Core/DefaultValueAttribute.cs.meta | 3 + .../Animations/_Core/EffectInfoAttribute.cs | 34 + .../_Core/EffectInfoAttribute.cs.meta | 3 + .../Scripts/Runtime/Scriptables/Settings.meta | 8 + .../Settings/TextAnimatorSettings.cs | 105 + .../Settings/TextAnimatorSettings.cs.meta | 11 + .../Scripts/Runtime/Utilities.meta | 8 + .../Scripts/Runtime/Utilities/FormatUtils.cs | 54 + .../Runtime/Utilities/FormatUtils.cs.meta | 11 + .../Runtime/Utilities/TextUtilities.cs | 216 + .../Runtime/Utilities/TextUtilities.cs.meta | 11 + .../Scripts/Runtime/Utilities/Tween.cs | 90 + .../Scripts/Runtime/Utilities/Tween.cs.meta | 11 + .../LiberationSans SDF.asset | 4 +- 401 files changed, 24587 insertions(+), 114 deletions(-) create mode 100644 Assets/Plugins/Febucci.meta create mode 100644 Assets/Plugins/Febucci/Text Animator.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Resources.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Font/OFL.txt.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/Febucci.TextAnimator.Demo.Runtime.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/Febucci.TextAnimator.Demo.Runtime.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/UsageExample.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/UsageExample.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/Circle.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/Circle.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/Example_sprites.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/Example_sprites.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Extra.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf create mode 100644 Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/restart_icon.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta diff --git a/Assets/GadGame/Scenes/Game.unity b/Assets/GadGame/Scenes/Game.unity index dd28358..18689cf 100644 --- a/Assets/GadGame/Scenes/Game.unity +++ b/Assets/GadGame/Scenes/Game.unity @@ -123,6 +123,90 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &16274919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 16274920} + - component: {fileID: 16274921} + m_Layer: 0 + m_Name: Circle (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &16274920 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16274919} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &16274921 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16274919} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1001 &22570934 PrefabInstance: m_ObjectHideFlags: 0 @@ -239,6 +323,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (9) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -449,6 +537,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (3) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -744,6 +836,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (7) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -784,7 +880,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -10} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &201703999 @@ -859,6 +955,174 @@ Transform: - {fileID: 1822366210} m_Father: {fileID: 41715676} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &236078963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 236078964} + - component: {fileID: 236078965} + m_Layer: 0 + m_Name: Circle (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &236078964 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236078963} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &236078965 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236078963} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &252197707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 252197708} + - component: {fileID: 252197709} + m_Layer: 0 + m_Name: Circle (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &252197708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252197707} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &252197709 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252197707} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &272528180 GameObject: m_ObjectHideFlags: 0 @@ -943,6 +1207,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &284046319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 284046320} + - component: {fileID: 284046321} + m_Layer: 0 + m_Name: Circle (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &284046320 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284046319} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &284046321 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284046319} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &332379179 GameObject: m_ObjectHideFlags: 0 @@ -1135,6 +1483,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (6) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -1287,6 +1639,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (2) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -1413,6 +1769,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (4) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -1662,6 +2022,170 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} m_PrefabInstance: {fileID: 22570934} m_PrefabAsset: {fileID: 0} +--- !u!1 &636098794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636098795} + - component: {fileID: 636098798} + - component: {fileID: 636098797} + - component: {fileID: 636098796} + m_Layer: 5 + m_Name: loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &636098795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1691484230} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -472} + m_SizeDelta: {x: 826.54, y: 132} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &636098796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 0} + databaseAppearances: {fileID: 0} + databaseActions: {fileID: 0} + defaultAppearancesTags: + - size + defaultDisappearancesTags: + - fade + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!114 &636098797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Wait For Gift... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 2426 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &636098798 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636098794} + m_CullTransparentMesh: 1 --- !u!1 &655028317 GameObject: m_ObjectHideFlags: 0 @@ -2114,6 +2638,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (8) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -2362,6 +2890,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &987322746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 987322747} + - component: {fileID: 987322748} + m_Layer: 0 + m_Name: Circle (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &987322747 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987322746} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &987322748 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987322746} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &998003724 GameObject: m_ObjectHideFlags: 0 @@ -2523,7 +3135,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1137171261 RectTransform: m_ObjectHideFlags: 0 @@ -2643,6 +3255,174 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1182715074} m_CullTransparentMesh: 1 +--- !u!1 &1187927588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187927589} + - component: {fileID: 1187927590} + m_Layer: 0 + m_Name: Circle (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1187927589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187927588} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1187927590 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187927588} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1229982701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229982702} + - component: {fileID: 1229982703} + m_Layer: 0 + m_Name: Circle (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1229982702 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229982701} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1229982703 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229982701} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1230716509 GameObject: m_ObjectHideFlags: 0 @@ -2897,6 +3677,90 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &1271328619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1271328620} + - component: {fileID: 1271328621} + m_Layer: 0 + m_Name: Circle (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1271328620 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271328619} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1271328621 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271328619} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1278601754 GameObject: m_ObjectHideFlags: 0 @@ -3467,6 +4331,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1388027224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1388027225} + - component: {fileID: 1388027226} + m_Layer: 0 + m_Name: Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1388027225 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388027224} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1388027226 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1388027224} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1388120848 GameObject: m_ObjectHideFlags: 0 @@ -3757,6 +4705,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (5) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -3874,6 +4826,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -4211,6 +5167,174 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1619835393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619835394} + - component: {fileID: 1619835395} + m_Layer: 0 + m_Name: Circle (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1619835394 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619835393} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1619835395 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619835393} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1634234204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1634234205} + - component: {fileID: 1634234206} + m_Layer: 0 + m_Name: Circle (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1634234205 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634234204} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1634234206 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634234204} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1639241604 GameObject: m_ObjectHideFlags: 0 @@ -4563,6 +5687,90 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1682928234} m_CullTransparentMesh: 1 +--- !u!1 &1689361858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1689361859} + - component: {fileID: 1689361860} + m_Layer: 0 + m_Name: Circle (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1689361859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689361858} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1689361860 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689361858} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1691484229 GameObject: m_ObjectHideFlags: 0 @@ -4600,6 +5808,7 @@ RectTransform: - {fileID: 332379180} - {fileID: 1827213708} - {fileID: 1137171261} + - {fileID: 636098795} m_Father: {fileID: 1939570967} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -4662,6 +5871,90 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 506579238345646780, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} m_PrefabInstance: {fileID: 1717529633} m_PrefabAsset: {fileID: 0} +--- !u!1 &1716313073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1716313074} + - component: {fileID: 1716313075} + m_Layer: 0 + m_Name: Circle (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1716313074 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716313073} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1716313075 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716313073} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1001 &1717529633 PrefabInstance: m_ObjectHideFlags: 0 @@ -4778,6 +6071,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (10) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -4998,6 +6295,54 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1805668786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1805668787} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1805668787 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1805668786} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1388027225} + - {fileID: 1689361859} + - {fileID: 1634234205} + - {fileID: 16274920} + - {fileID: 2084131005} + - {fileID: 1619835394} + - {fileID: 284046320} + - {fileID: 1271328620} + - {fileID: 236078964} + - {fileID: 987322747} + - {fileID: 1950742235} + - {fileID: 1960192227} + - {fileID: 1187927589} + - {fileID: 252197708} + - {fileID: 1716313074} + - {fileID: 1955124308} + - {fileID: 1229982702} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1810672863 GameObject: m_ObjectHideFlags: 0 @@ -5524,6 +6869,258 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1950742234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1950742235} + - component: {fileID: 1950742236} + m_Layer: 0 + m_Name: Circle (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1950742235 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950742234} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1950742236 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950742234} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1955124307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1955124308} + - component: {fileID: 1955124309} + m_Layer: 0 + m_Name: Circle (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1955124308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955124307} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1955124309 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955124307} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1960192226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1960192227} + - component: {fileID: 1960192228} + m_Layer: 0 + m_Name: Circle (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1960192227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960192226} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1960192228 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960192226} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2012096804 GameObject: m_ObjectHideFlags: 0 @@ -5829,6 +7426,90 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2084131004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2084131005} + - component: {fileID: 2084131006} + m_Layer: 0 + m_Name: Circle (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2084131005 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084131004} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1805668787} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2084131006 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2084131004} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1001 &2087404703 PrefabInstance: m_ObjectHideFlags: 0 @@ -5945,6 +7626,10 @@ PrefabInstance: propertyPath: m_Name value: AnimatedTextPrefab (1) objectReference: {fileID: 0} + - target: {fileID: 7688246038804780210, guid: fe41701ffaac8a5a699e58aa5b939cce, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -6218,6 +7903,24 @@ MonoBehaviour: _defaultCapacity: 10 _max: 100 _collectionCheck: 0 + Objects: + - {fileID: 1388027225} + - {fileID: 1689361859} + - {fileID: 1634234205} + - {fileID: 16274920} + - {fileID: 2084131005} + - {fileID: 1619835394} + - {fileID: 284046320} + - {fileID: 1271328620} + - {fileID: 236078964} + - {fileID: 987322747} + - {fileID: 1950742235} + - {fileID: 1960192227} + - {fileID: 1187927589} + - {fileID: 252197708} + - {fileID: 1716313074} + - {fileID: 1955124308} + - {fileID: 1229982702} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -6236,3 +7939,4 @@ SceneRoots: - {fileID: 655028318} - {fileID: 1281411708} - {fileID: 1939570967} + - {fileID: 1805668787} diff --git a/Assets/GadGame/Scenes/PassBy.unity b/Assets/GadGame/Scenes/PassBy.unity index 10f2198..fbf248b 100644 --- a/Assets/GadGame/Scenes/PassBy.unity +++ b/Assets/GadGame/Scenes/PassBy.unity @@ -496,6 +496,7 @@ RectTransform: - {fileID: 1509506830} - {fileID: 1296119107} - {fileID: 781534353} + - {fileID: 778936296} m_Father: {fileID: 883611476} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -877,6 +878,170 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 752378338} m_CullTransparentMesh: 1 +--- !u!1 &778936295 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 778936296} + - component: {fileID: 778936298} + - component: {fileID: 778936297} + - component: {fileID: 778936299} + m_Layer: 5 + m_Name: Image_idle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &778936296 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 324847414} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 706.0657, y: 166.71} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &778936297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: IDLE WINDOW + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &778936298 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_CullTransparentMesh: 1 +--- !u!114 &778936299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778936295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: IDLE WINDOW + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: d1ab346c8b166fe1babb05950e874fb1, type: 2} + databaseAppearances: {fileID: 11400000, guid: 6f440ba43b95f6c7e90fa305a0bbda32, type: 2} + databaseActions: {fileID: 11400000, guid: 0f78b267c3825f804a4727a8b68c329d, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: + - fade + defaultBehaviorsTags: [] + defaultTagsMode: 0 --- !u!1 &781534352 GameObject: m_ObjectHideFlags: 0 @@ -1025,7 +1190,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0.0000076293945, y: -337} + m_AnchoredPosition: {x: 0, y: -337} m_SizeDelta: {x: 914.6453, y: 897.0692} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &883611477 @@ -1095,6 +1260,7 @@ MonoBehaviour: _transform: {fileID: 324847414} CircleImg: {fileID: 588222147} txtProgress: {fileID: 278260376} + videoPlayer: {fileID: 2124753956} --- !u!1 &1118910917 GameObject: m_ObjectHideFlags: 0 @@ -1728,10 +1894,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 324847414} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 914, y: 898} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1509506831 MonoBehaviour: @@ -2470,8 +2636,8 @@ Canvas: m_GameObject: {fileID: 1939570963} m_Enabled: 1 serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} + m_RenderMode: 1 + m_Camera: {fileID: 1302683601} m_PlaneDistance: 100 m_PixelPerfect: 0 m_ReceivesEvents: 1 @@ -2497,6 +2663,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 731571812} + - {fileID: 2124753955} - {fileID: 1490140569} - {fileID: 1796482201} - {fileID: 883611476} @@ -2717,6 +2884,78 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2003416019} m_CullTransparentMesh: 1 +--- !u!1 &2124753954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2124753955} + - component: {fileID: 2124753956} + m_Layer: 5 + m_Name: Video Player_Idle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2124753955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124753954} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1939570967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2160, y: 3840} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!328 &2124753956 +VideoPlayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124753954} + m_Enabled: 1 + m_VideoClip: {fileID: 32900000, guid: b431e4dee076c8b698cee9a4d18c6dbd, type: 3} + m_TargetCameraAlpha: 1 + m_TargetCamera3DLayout: 0 + m_TargetCamera: {fileID: 1302683601} + m_TargetTexture: {fileID: 0} + m_TimeReference: 0 + m_TargetMaterialRenderer: {fileID: 0} + m_TargetMaterialProperty: + m_RenderMode: 1 + m_AspectRatio: 2 + m_DataSource: 0 + m_TimeUpdateMode: 2 + m_PlaybackSpeed: 1 + m_AudioOutputMode: 2 + m_TargetAudioSources: + - {fileID: 0} + m_DirectAudioVolumes: + - 1 + m_Url: + m_EnabledAudioTracks: 01 + m_DirectAudioMutes: 00 + m_ControlledAudioTrackCount: 1 + m_PlayOnAwake: 1 + m_SkipOnDrop: 1 + m_Looping: 1 + m_WaitForFirstFrame: 1 + m_FrameReadyEventEnabled: 0 + m_VideoShaders: [] --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Assets/GadGame/Scripts/MainFlow.cs b/Assets/GadGame/Scripts/MainFlow.cs index 7ad3078..7a1b6d8 100644 --- a/Assets/GadGame/Scripts/MainFlow.cs +++ b/Assets/GadGame/Scripts/MainFlow.cs @@ -19,8 +19,9 @@ namespace GadGame DontDestroyOnLoad(gameObject); } - private void Start() + private async void Start() { + await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(SceneFlowConfig.PassByScene.ScenePath); SetState(); } diff --git a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs index 83f9c51..4ce652a 100644 --- a/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs +++ b/Assets/GadGame/Scripts/MiniGame/MiniGameController.cs @@ -11,6 +11,7 @@ using TMPro; using UnityEngine; using UnityEngine.UI; using Random = UnityEngine.Random; +using Newtonsoft.Json; namespace GadGame.MiniGame { @@ -44,6 +45,9 @@ namespace GadGame.MiniGame [Header("Pool")] [SerializeField] private Pool[] _itemPools; [SerializeField] private Pool[] _bombPools; + + private Vector2[] receivedData; + public Transform[] Objects; private GameManager _gameManager; private Camera _camera; @@ -96,28 +100,49 @@ namespace GadGame.MiniGame public void PlayerControl() { //640x480; - var inputData = UdpSocket.Instance.DataReceived.PosPoint; - var inputNormalize = new Vector2((inputData.x - 213.33f)/ 213.33f, inputData.y / 480); + // string inputData = UdpSocket.Instance.DataReceived.PosPoints; + // var inputNormalize = new Vector2((inputData.x - 213.33f)/ 213.33f, inputData.y / 480); // var inputNormalize = new Vector2(inputData.x/ 200, inputData.y / 480); - var input = new Vector2 + + receivedData = UdpSocket.Instance.DataReceived.PosPoints; + Debug.Log(receivedData); + + for (int i = 0; i < Objects.Length; ++i) { - x = Mathf.Lerp(0, _canvas.pixelRect.width, inputNormalize.x), - y = -Mathf.Lerp(0, _canvas.pixelRect.height, inputNormalize.y) - }; - if (input != Vector2.zero) - { - var mousePos = input; - var pos = _camera.ScreenToWorldPoint(mousePos); - var currentPosition = _basket.Position; - pos.x *= -1; - pos.y = currentPosition.y; - pos.z = 0; - currentPosition= Vector3.Lerp(currentPosition, pos, _lerp * Time.deltaTime); - currentPosition.x = Mathf.Clamp(currentPosition.x, -2.25f, 2.25f); - var dirMove = (_preFramePosition - currentPosition).normalized; - _basket.transform.DORotate(new Vector3(0, 0, 10 * dirMove.x), 0.2f); - _basket.Position = currentPosition; + var inputNormalize = new Vector2((receivedData[i].x - 213.33f)/ 213.33f, receivedData[i].y / 480); + if (i == 0) + { + var input = new Vector2 + { + x = Mathf.Lerp(0, _canvas.pixelRect.width, inputNormalize.x), + y = -Mathf.Lerp(0, _canvas.pixelRect.height, inputNormalize.y) + }; + if (input != Vector2.zero) + { + var mousePos = input; + var pos = _camera.ScreenToWorldPoint(mousePos); + var currentPosition = _basket.Position; + pos.x *= -1; + pos.y = currentPosition.y; + pos.z = 0; + currentPosition= Vector3.Lerp(currentPosition, pos, _lerp * Time.deltaTime); + currentPosition.x = Mathf.Clamp(currentPosition.x, -2.25f, 2.25f); + var dirMove = (_preFramePosition - currentPosition).normalized; + _basket.transform.DORotate(new Vector3(0, 0, 10 * dirMove.x), 0.2f); + _basket.Position = currentPosition; + } + } + + // var pos_pose = new Vector2(); + // var x = Mathf.Clamp01(receivedData[i].x / 640); + // var y = Mathf.Clamp01(receivedData[i].y / 480); + + // pos_pose.x = x; + // pos_pose.y = y; + + // Objects[i].localPosition = pos_pose * -1; } + } public async void ShowTutorial() diff --git a/Assets/GadGame/Scripts/Network/ReceiverData.cs b/Assets/GadGame/Scripts/Network/ReceiverData.cs index 52fb854..3525776 100644 --- a/Assets/GadGame/Scripts/Network/ReceiverData.cs +++ b/Assets/GadGame/Scripts/Network/ReceiverData.cs @@ -18,6 +18,6 @@ namespace GadGame.Network public float Gender; public int AgeMin; public int AgeMax; - public Vector2 PosPoint; + public Vector2[] PosPoints; } } \ No newline at end of file diff --git a/Assets/GadGame/Scripts/PassByAnimation.cs b/Assets/GadGame/Scripts/PassByAnimation.cs index 50a2cf6..84d480f 100644 --- a/Assets/GadGame/Scripts/PassByAnimation.cs +++ b/Assets/GadGame/Scripts/PassByAnimation.cs @@ -1,11 +1,12 @@ +using System.Collections; +using Cysharp.Threading.Tasks; using DG.Tweening; -using GadGame.Network; using GadGame.Singleton; -using Microsoft.Unity.VisualStudio.Editor; using Sirenix.OdinInspector; using TMPro; using UnityEngine; using UnityEngine.UI; +using UnityEngine.Video; namespace GadGame.State.MainFlowState { @@ -13,16 +14,37 @@ namespace GadGame.State.MainFlowState { public Animator passBy; [SerializeField] private RectTransform _transform; - [SerializeField] private UnityEngine.UI.Image CircleImg; + // [SerializeField] private RectTransform _videoIdleTransform; + [SerializeField] private Image CircleImg; [SerializeField] private TextMeshProUGUI txtProgress; - // [SerializeField] [Range(0,1)] float progress = 1f; - + [SerializeField] private VideoPlayer videoPlayer; [Button] public void Play(bool engage) { - _transform.DOAnchorPosX(engage ? -1000 : 0, 2); + // videoPlayer.gameObject.SetActive(!passBy); + _transform.DOAnchorPosX(engage ? -1000 : 0, 1); } + public async void SetPlayVideo(bool value){ + if(value) { + while (videoPlayer.targetCameraAlpha < 1) + { + videoPlayer.targetCameraAlpha += Time.deltaTime * 3; + await UniTask.Yield(); + } + + videoPlayer.targetCameraAlpha = 1; + } else { + while (videoPlayer.targetCameraAlpha > 0) + { + videoPlayer.targetCameraAlpha -= Time.deltaTime * 3; + await UniTask.Yield(); + } + + videoPlayer.targetCameraAlpha = 0; + } + } + public void ReadyCountDown(float progress){ CircleImg.fillAmount = progress ; txtProgress.text = Mathf.Floor(progress * 3).ToString(); diff --git a/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs b/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs index f5419f7..3847a64 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/CTAState.cs @@ -1,6 +1,5 @@ using GadGame.Manager; using GadGame.Network; -using UnityEngine; namespace GadGame.State.MainFlowState { @@ -13,7 +12,7 @@ namespace GadGame.State.MainFlowState } else if (UdpSocket.Instance.DataReceived.Gender >= 0.7f){ LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneFemale.ScenePath); } else { - LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneBoth.ScenePath); + LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.CTASceneFemale.ScenePath); } } @@ -23,18 +22,8 @@ namespace GadGame.State.MainFlowState if (time >= 10) { - if(!UdpSocket.Instance.DataReceived.PassBy) - { - Runner.SetState(); - return; - } - - if(!UdpSocket.Instance.DataReceived.Engage) - { - Runner.SetState(); - return; - } - Runner.SetState(); + LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.PassByScene.ScenePath); + Runner.SetState(); } } diff --git a/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs b/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs index bf82491..efd7fcd 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/EngageState.cs @@ -1,5 +1,6 @@ using GadGame.Manager; using GadGame.Network; +using Unity.Mathematics; using UnityEngine; namespace GadGame.State.MainFlowState @@ -10,57 +11,36 @@ namespace GadGame.State.MainFlowState private bool _warned; private bool _showCountDown; - private PassByAnimation passByAnim; - public override void Enter() { - passByAnim = PassByAnimation.Instance; - passByAnim.Play(true); // LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.EndGageScene.ScenePath); + PassByAnimation.Instance.Play(true); _readyTimer = 5; } public override void Update(float time) { + if(!UdpSocket.Instance.DataReceived.PassBy) { + Runner.SetState(); + return; + } + + if(!UdpSocket.Instance.DataReceived.Engage) { + Runner.SetState(); + return; + } + + if (!UdpSocket.Instance.DataReceived.Ready) _readyTimer = 3; + PassByAnimation.Instance.ReadyCountDown(_readyTimer / 3); + _readyTimer -= Time.deltaTime; + if (_readyTimer <= 0) + { + _readyTimer = 0; + Runner.SetState(); + } if (time >= 2) { - switch (_warned) - { - case true when !UdpSocket.Instance.DataReceived.PassBy: - Runner.SetState(); - break; - case false when !UdpSocket.Instance.DataReceived.Engage: - _warned = true; - passByAnim.Play(false); - // PopupManager.Instance.Show("Come Back", 5).OnComplete(OnWaringComplete); - break; - case true when UdpSocket.Instance.DataReceived.Engage: - _warned = false; - passByAnim.Play(true); - // PopupManager.Instance.Hide(); - break; - } - - switch (_showCountDown) - { - case false when UdpSocket.Instance.DataReceived.Ready: - _showCountDown = true; - // Runner.Ready(true); - break; - case true when !UdpSocket.Instance.DataReceived.Ready: - _showCountDown = false; - // Runner.Ready(false); - break; - } - if (!UdpSocket.Instance.DataReceived.Ready) _readyTimer = 3; - passByAnim.ReadyCountDown(_readyTimer / 3); - _readyTimer -= Time.deltaTime; - if (_readyTimer <= 0) - { - _readyTimer = 0; - Runner.SetState(); - } // Runner.ReadyCountDown(_readyTimer); } diff --git a/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs b/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs index 60028a7..f21406c 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/IdleState.cs @@ -1,19 +1,22 @@ +using System.Diagnostics; using GadGame.Manager; using GadGame.Network; +using UnityEngine.SceneManagement; namespace GadGame.State.MainFlowState { public class IdleState : State { - + public override void Enter() { - LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.IdleScene.ScenePath); + PassByAnimation.Instance.Play(false); + PassByAnimation.Instance.SetPlayVideo(true); } public override void Update(float time) { - if(time < 2) return; + // if(time < 2) return; if (UdpSocket.Instance.DataReceived.PassBy) { @@ -35,7 +38,7 @@ namespace GadGame.State.MainFlowState public override void Exit() { - + PassByAnimation.Instance.SetPlayVideo(false); } } } \ No newline at end of file diff --git a/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs b/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs index 6c55fe4..d551ac5 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/PassByState.cs @@ -7,35 +7,27 @@ namespace GadGame.State.MainFlowState { public class PassByState : State { - private PassByAnimation passByAnim; public async override void Enter() { - await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); - passByAnim = PassByAnimation.Instance; - passByAnim.Play(false); + // await LoadSceneManager.Instance.LoadSceneWithTransitionAsync(Runner.SceneFlowConfig.PassByScene.ScenePath); + PassByAnimation.Instance.Play(false); } public override void Update(float time) { - if (time < 2f) return; + // if(time < 2) return; if (!UdpSocket.Instance.DataReceived.PassBy) { Runner.SetState(); return; } - + if (UdpSocket.Instance.DataReceived.Engage) { Runner.SetState(); return; } - - // if (UdpSocket.Instance.DataReceived.OnVision) - // { - // Runner.SetState(); - // return; - // } } public override void Exit() diff --git a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs index 897f0d6..d0a10c8 100644 --- a/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs +++ b/Assets/GadGame/Scripts/State/MainFlowState/PlayGameState.cs @@ -60,14 +60,10 @@ namespace GadGame.State.MainFlowState _gameManager.Resume(); if(!UdpSocket.Instance.DataReceived.PassBy) { - Runner.SetState(); + Runner.SetState(); return; } - // if(!UdpSocket.Instance.DataReceived.OnVision) - // { - // Runner.SetState(); - // return; - // } + if(!UdpSocket.Instance.DataReceived.Engage) { Runner.SetState(); diff --git a/Assets/GadGame/Scripts/State/StateRunner.cs b/Assets/GadGame/Scripts/State/StateRunner.cs index 81da28b..8c7f000 100644 --- a/Assets/GadGame/Scripts/State/StateRunner.cs +++ b/Assets/GadGame/Scripts/State/StateRunner.cs @@ -66,8 +66,8 @@ namespace GadGame.State var newState = _states.FirstOrDefault(s => s is TSt); if(newState == null) return; + newState.Enter(); ActiveState = newState; - ActiveState.Enter(); _timer = 0; } } diff --git a/Assets/Plugins/Febucci.meta b/Assets/Plugins/Febucci.meta new file mode 100644 index 0000000..8c43f36 --- /dev/null +++ b/Assets/Plugins/Febucci.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 766a79cc4c72adc929ac7638a34e1b15 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator.meta b/Assets/Plugins/Febucci/Text Animator.meta new file mode 100644 index 0000000..177296e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c3c851caa99d03d4a8c8842ded166a7c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes.meta b/Assets/Plugins/Febucci/Text Animator/Attributes.meta new file mode 100644 index 0000000..f0293eb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da631c92e6b893e49acea17d69d48252 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta new file mode 100644 index 0000000..61dd651 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 001402f99874ca24780daf2947cf5e14 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs new file mode 100644 index 0000000..f975e04 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(CharsDisplayTimeAttribute))] + public class CharsDisplayTimeAttributeDrawer : PropertyDrawer + { + const float minWaitTime = 0.0001f; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + //delay in seconds + Rect delayValueRect = new Rect(position.x, position.y, 70 + 230 - position.x, position.height); + delayValueRect.width = Mathf.Clamp(position.width * 0.6f, 170, position.width); + + Rect delayLabel = new Rect(delayValueRect); + delayLabel.x += delayLabel.width - 15; + delayLabel.width = 77; + + Rect charPerSecValueRect = new Rect(delayLabel); + charPerSecValueRect.x += charPerSecValueRect.width - 15; + charPerSecValueRect.width = 65; + + + Rect charPerSecLabelRect = new Rect(charPerSecValueRect); + charPerSecLabelRect.x += charPerSecLabelRect.width - 15; + charPerSecLabelRect.width = 120; + + switch (property.propertyType) + { + case SerializedPropertyType.Float: + + property.floatValue = EditorGUI.FloatField(delayValueRect, label, property.floatValue); + + EditorGUI.LabelField(delayLabel, $"s delay, ≈"); + + + + int charPerSecond = Mathf.RoundToInt(1 / property.floatValue); + + EditorGUI.LabelField(charPerSecLabelRect, "chars per sec"); + EditorGUI.BeginChangeCheck(); + charPerSecond = EditorGUI.IntField(charPerSecValueRect, charPerSecond); + + if (EditorGUI.EndChangeCheck()) + { + property.floatValue = 1f/charPerSecond; + } + + if (property.floatValue < minWaitTime) + property.floatValue = minWaitTime; + + break; + + + default: //unsupported, fallback to the default OnGUI + EditorGUI.PropertyField(position, property, label); + return; + } + + } + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta new file mode 100644 index 0000000..975987c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/CharsDisplayTimeAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06ce1d00801daba44918ac07070012a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef new file mode 100644 index 0000000..7b2a8e3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Febucci.Attributes.Editor", + "rootNamespace": "", + "references": [ + "GUID:448b0b55421917e4784a8f2f7449081f" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta new file mode 100644 index 0000000..60e8dd3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/Febucci.Attributes.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fbcceeb83a7197e40b5e481f8eeb8508 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs new file mode 100644 index 0000000..92bdcc1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(MinValueAttribute))] + public class MinValueAttributeDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.PropertyField(position, property, label); + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + property.intValue = Mathf.Clamp(property.intValue, (int)(attribute as MinValueAttribute).min, int.MaxValue); + break; + + case SerializedPropertyType.Float: + property.floatValue = Mathf.Clamp(property.floatValue, (attribute as MinValueAttribute).min, float.MaxValue); + break; + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta new file mode 100644 index 0000000..7419d47 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/MinValueAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6969374730fb584ea155e370491caf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs new file mode 100644 index 0000000..7a43dd8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs @@ -0,0 +1,49 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(NotZeroAttribute))] + public class NotZeroAttributeDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + int intValue = property.intValue; + intValue = EditorGUI.IntField(position, label, intValue); + if (intValue != 0) + property.intValue = intValue; + break; + + case SerializedPropertyType.Float: + float floatValue = property.floatValue; + floatValue = EditorGUI.FloatField(position, label, floatValue); + + if (floatValue != 0) + property.floatValue = floatValue; + + break; + + case SerializedPropertyType.Vector2: + Vector2 vecValue = property.vector2Value; + vecValue = EditorGUI.Vector2Field(position, label, vecValue); + + property.vector2Value = new Vector2( + (vecValue.x != 0 || vecValue.y!=0) ? vecValue.x : property.vector2Value.x, + (vecValue.y != 0 || vecValue.x!=0) ? vecValue.y : property.vector2Value.y); + + break; + + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta new file mode 100644 index 0000000..d9d6c6c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/NotZeroAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 319c5abbdd9c94e479d7c58013da0a7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs new file mode 100644 index 0000000..e34f1a3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs @@ -0,0 +1,47 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.Attributes +{ + [CustomPropertyDrawer(typeof(PositiveValueAttribute))] + public class PositiveValueAttributeDrawer : PropertyDrawer + { + const float minValue = .01f; + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + switch (property.propertyType) + { + case SerializedPropertyType.Integer: + int intValue = property.intValue; + intValue = EditorGUI.IntField(position, label, intValue); + if (intValue >= minValue) + property.intValue = intValue; + break; + + case SerializedPropertyType.Float: + float floatValue = property.floatValue; + floatValue = EditorGUI.FloatField(position, label, floatValue); + + property.floatValue = Mathf.Clamp(floatValue, minValue, floatValue); + break; + + case SerializedPropertyType.Vector2: + Vector2 vecValue = property.vector2Value; + vecValue = EditorGUI.Vector2Field(position, label, vecValue); + + vecValue.x = Mathf.Clamp(vecValue.x, minValue, vecValue.x); + vecValue.y = Mathf.Clamp(vecValue.y, minValue, vecValue.y); + + property.vector2Value = vecValue; + break; + + default: + base.OnGUI(position, property, label); + break; + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta new file mode 100644 index 0000000..ffb95cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Editor/PositiveValueAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9574f1311c20a8418059bbedf619737 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta new file mode 100644 index 0000000..6a0d661 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c54a190a44816374899a417122886ada +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs new file mode 100644 index 0000000..379614c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class CharsDisplayTimeAttribute : PropertyAttribute + { + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta new file mode 100644 index 0000000..ae69a8c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/CharsDisplayTimeAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 17a442d7a8bcb7843a7b81ae4b6fcbaa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef new file mode 100644 index 0000000..bf8b236 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef @@ -0,0 +1,14 @@ +{ + "name": "Febucci.Attributes.Runtime", + "rootNamespace": "", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta new file mode 100644 index 0000000..d2ace58 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/Febucci.Attributes.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 448b0b55421917e4784a8f2f7449081f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs new file mode 100644 index 0000000..b01f415 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class MinValueAttribute : PropertyAttribute + { + public float min = 0; + public MinValueAttribute(float min) + { + this.min = min; + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta new file mode 100644 index 0000000..d661541 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/MinValueAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15c1cd35897ccae4ea16b7d7bd05c74b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs new file mode 100644 index 0000000..f009bd4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class NotZeroAttribute : PropertyAttribute + { + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta new file mode 100644 index 0000000..c44227b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/NotZeroAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 330d54a9b2a8cde41a7128d6f9418661 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs new file mode 100644 index 0000000..4715bd4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.Attributes +{ + public class PositiveValueAttribute : PropertyAttribute + { + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta new file mode 100644 index 0000000..fb3d5e5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Attributes/Runtime/PositiveValueAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f12d9869f06b66498d39516b6e88aa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data.meta b/Assets/Plugins/Febucci/Text Animator/Data.meta new file mode 100644 index 0000000..54597c9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64096182da37e607291d723f6c861fee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta new file mode 100644 index 0000000..7c83a3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9c7916894dff634f98968d3ee28a9a6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset new file mode 100644 index 0000000..e64272e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset @@ -0,0 +1,18 @@ +%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: 975089f62a0f141b0b6c1e96bb49c873, type: 3} + m_Name: Actions Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: bf4bdbc3b8f308d09915d845bb8add45, type: 2} + - {fileID: 11400000, guid: 95dbfc172929c069b889d2e360cfad2f, type: 2} + - {fileID: 11400000, guid: 9f8d00c4e2f2a02348224f1f3e7673ae, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta new file mode 100644 index 0000000..26ddba0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/Actions Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f78b267c3825f804a4727a8b68c329d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset new file mode 100644 index 0000000..ad062e6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset @@ -0,0 +1,16 @@ +%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: 24451f867ad2a6146baf57f938a44d18, type: 3} + m_Name: SpeedAction + m_EditorClassIdentifier: + tagID: speed + defaultSpeed: 2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta new file mode 100644 index 0000000..5730b7a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/SpeedAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bf4bdbc3b8f308d09915d845bb8add45 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset new file mode 100644 index 0000000..38761cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset @@ -0,0 +1,15 @@ +%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: aed6905e7c644c14a804ef32a5216aa3, type: 3} + m_Name: WaitAnyInputAction + m_EditorClassIdentifier: + tagID: waitinput diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta new file mode 100644 index 0000000..8026803 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitAnyInputAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 95dbfc172929c069b889d2e360cfad2f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset new file mode 100644 index 0000000..320fdc5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset @@ -0,0 +1,16 @@ +%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: 7806fdd5903ae4a1b8ddb77cde0d5832, type: 3} + m_Name: WaitForAction + m_EditorClassIdentifier: + tagID: waitfor + defaultTime: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta new file mode 100644 index 0000000..55fff21 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Actions/WaitForAction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f8d00c4e2f2a02348224f1f3e7673ae +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta new file mode 100644 index 0000000..b13f25d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90b80a86f3dbb666891887f97cd9f52b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset new file mode 100644 index 0000000..35b119b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset @@ -0,0 +1,23 @@ +%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: 103e863f5c0347be8a512f431aaf5ec1, type: 3} + m_Name: Appearances Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: 580868ca94914f3a5b4799e19bbd3085, type: 2} + - {fileID: 11400000, guid: 710e372fa4a13b1479b5e6d0a55db0c8, type: 2} + - {fileID: 11400000, guid: 7316dbc102f59da72978008734e90982, type: 2} + - {fileID: 11400000, guid: 5685734b8affc629680c1bbb91624508, type: 2} + - {fileID: 11400000, guid: ca89d2a16f2b8654ab5c938d2fe4ca84, type: 2} + - {fileID: 11400000, guid: 7dbe7206d95daeb80aaef048450d3d13, type: 2} + - {fileID: 11400000, guid: f85299684f332935b8ab73a6ff36a848, type: 2} + - {fileID: 11400000, guid: 6b3c952806296327f9e007418fb4cdab, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta new file mode 100644 index 0000000..7de60b2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f440ba43b95f6c7e90fa305a0bbda32 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset new file mode 100644 index 0000000..092c734 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.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: 7303246fad8e2a049aebd6c0c71d2985, type: 3} + m_Name: DiagonalExpandAppearance + m_EditorClassIdentifier: + tagID: diagexp + baseDuration: 0.5 + diagonalFromBttmLeft: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta new file mode 100644 index 0000000..7d3f9e0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/DiagonalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 580868ca94914f3a5b4799e19bbd3085 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset new file mode 100644 index 0000000..7a4d195 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset @@ -0,0 +1,16 @@ +%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: 6d26528e73e36f64dab95b69625232a7, type: 3} + m_Name: FadeAppearance + m_EditorClassIdentifier: + tagID: fade + baseDuration: 0.5 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta new file mode 100644 index 0000000..408f655 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/FadeAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 710e372fa4a13b1479b5e6d0a55db0c8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset new file mode 100644 index 0000000..d8926ec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.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: 3dbde6098d9bea441b3ac872e52073ba, type: 3} + m_Name: HorizontalExpandAppearance + m_EditorClassIdentifier: + tagID: horiexp + baseDuration: 0.5 + type: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta new file mode 100644 index 0000000..f8f416d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/HorizontalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7316dbc102f59da72978008734e90982 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset new file mode 100644 index 0000000..6a71275 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset @@ -0,0 +1,18 @@ +%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: 146552007a93ecc42b0d63f26788e6cb, type: 3} + m_Name: OffsetAppearance + m_EditorClassIdentifier: + tagID: offset + baseDuration: 0.5 + baseAmount: 10 + baseDirection: {x: 1, y: 1} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta new file mode 100644 index 0000000..48297fb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/OffsetAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5685734b8affc629680c1bbb91624508 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset new file mode 100644 index 0000000..ea2c3fd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.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: 6a65a9b7775dded41a0295e6f75be25d, type: 3} + m_Name: RandomDirectionAppearance + m_EditorClassIdentifier: + tagID: rdir + baseDuration: 0.5 + baseAmount: 10 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta new file mode 100644 index 0000000..223b9eb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RandomDirectionAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca89d2a16f2b8654ab5c938d2fe4ca84 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset new file mode 100644 index 0000000..6b93610 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.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: 465a2951870a6954d8205f9c58a546de, type: 3} + m_Name: RotatingAppearance + m_EditorClassIdentifier: + tagID: rot + baseDuration: 0.7 + baseTargetAngle: 50 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta new file mode 100644 index 0000000..fe9d862 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/RotatingAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7dbe7206d95daeb80aaef048450d3d13 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset new file mode 100644 index 0000000..0d34f42 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.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: 5ff5882c38f1b6c4682c7f207f0c98db, type: 3} + m_Name: SizeAppearance + m_EditorClassIdentifier: + tagID: size + baseDuration: 0.5 + baseAmplitude: 2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta new file mode 100644 index 0000000..5b9709a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/SizeAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f85299684f332935b8ab73a6ff36a848 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset new file mode 100644 index 0000000..f9523bb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.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: 351d9d9e5c9ea7946842aee1160f7731, type: 3} + m_Name: VerticalExpandAppearance + m_EditorClassIdentifier: + tagID: vertexp + baseDuration: 0.5 + startsFromBottom: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta new file mode 100644 index 0000000..e4491d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/VerticalExpandAppearance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b3c952806296327f9e007418fb4cdab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta new file mode 100644 index 0000000..9717522 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07d1ecb778bb73bfbb89c1eddb804202 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset new file mode 100644 index 0000000..84d6a88 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset @@ -0,0 +1,27 @@ +%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: 103e863f5c0347be8a512f431aaf5ec1, type: 3} + m_Name: Behaviors Database + m_EditorClassIdentifier: + data: + - {fileID: 11400000, guid: 656a96850718f58f088b6f292e2437fe, type: 2} + - {fileID: 11400000, guid: 17f5322bade6132c9af4e88f9a2608dd, type: 2} + - {fileID: 11400000, guid: 7e93996a566440e0cb3a0bb99a5d24c7, type: 2} + - {fileID: 11400000, guid: 54e34e17bd344def4935c48b2c318c77, type: 2} + - {fileID: 11400000, guid: 74ee166c61550bc05b79c18b1f045558, type: 2} + - {fileID: 11400000, guid: b9dfc028dcb14496299bc95c2bfcce2c, type: 2} + - {fileID: 11400000, guid: 3312357f8bfb641fe9a1ef97387e9b7e, type: 2} + - {fileID: 11400000, guid: 5a4b74322b62c23e4ac0f1ed011ae2df, type: 2} + - {fileID: 11400000, guid: 64683658af55e22b2b00b4662f5d4fc5, type: 2} + - {fileID: 11400000, guid: 4025512822b51274db8dc40a8fbd2d12, type: 2} + - {fileID: 11400000, guid: e6c038789abd1bf0aae6cb1b2126a805, type: 2} + - {fileID: 11400000, guid: 59d46f00fa8da9799b72c7b9ee0a173a, type: 2} diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta new file mode 100644 index 0000000..d769fd3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/Behaviors Database.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1ab346c8b166fe1babb05950e874fb1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset new file mode 100644 index 0000000..b65fb95 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset @@ -0,0 +1,18 @@ +%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: a333962955c4a08498d132d86d9ce19e, type: 3} + m_Name: BounceBehavior + m_EditorClassIdentifier: + tagID: bounce + baseAmplitude: 2 + baseFrequency: 1 + baseWaveSize: 0.05 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta new file mode 100644 index 0000000..861db06 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/BounceBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 656a96850718f58f088b6f292e2437fe +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset new file mode 100644 index 0000000..312e23b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset @@ -0,0 +1,19 @@ +%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: 01a91f0b9c670b242ae5c34286409cd9, type: 3} + m_Name: DangleBehavior + m_EditorClassIdentifier: + tagID: dangle + baseAmplitude: 7.87 + baseFrequency: 3.37 + baseWaveSize: 0.306 + anchorBottom: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta new file mode 100644 index 0000000..b40f576 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/DangleBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17f5322bade6132c9af4e88f9a2608dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset new file mode 100644 index 0000000..9884468 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.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: d1f1dde3a46b6e748885a8d202c32044, type: 3} + m_Name: FadeBehavior + m_EditorClassIdentifier: + tagID: fade + baseSpeed: 0.5 + baseDelay: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta new file mode 100644 index 0000000..5054d3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/FadeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e93996a566440e0cb3a0bb99a5d24c7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset new file mode 100644 index 0000000..82bb9f1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset @@ -0,0 +1,19 @@ +%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: 5005fc4984831834d826c8a9e3d42443, type: 3} + m_Name: PendulumBehavior + m_EditorClassIdentifier: + tagID: pend + baseAmplitude: 24.7 + baseFrequency: 3.1 + baseWaveSize: 0.2 + anchorBottom: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta new file mode 100644 index 0000000..59e5c6c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/PendulumBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54e34e17bd344def4935c48b2c318c77 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset new file mode 100644 index 0000000..d39b5e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.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: 5400420051c0a9341be4aece65080148, type: 3} + m_Name: RainbowBehavior + m_EditorClassIdentifier: + tagID: rainb + baseFrequency: 0.5 + baseWaveSize: 0.08 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta new file mode 100644 index 0000000..8a43c7b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RainbowBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74ee166c61550bc05b79c18b1f045558 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset new file mode 100644 index 0000000..f77fa84 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.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: c179eec3e2795104eb216e340b8d8513, type: 3} + m_Name: RotationBehavior + m_EditorClassIdentifier: + tagID: rot + baseRotSpeed: 180 + baseDiffBetweenChars: 10 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta new file mode 100644 index 0000000..30ea32e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/RotationBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9dfc028dcb14496299bc95c2bfcce2c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset new file mode 100644 index 0000000..b02c22a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset @@ -0,0 +1,18 @@ +%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: 144066a43449f48469b89b2e2c9ab37d, type: 3} + m_Name: ShakeBehavior + m_EditorClassIdentifier: + tagID: shake + baseAmplitude: 1.13 + baseDelay: 0.1 + baseWaveSize: 0.45 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta new file mode 100644 index 0000000..fd289dc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/ShakeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3312357f8bfb641fe9a1ef97387e9b7e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset new file mode 100644 index 0000000..a447064 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset @@ -0,0 +1,18 @@ +%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: 6da0c21b80efda84188912ce510ee1ca, type: 3} + m_Name: SizeBehavior + m_EditorClassIdentifier: + tagID: incr + baseAmplitude: 1.5 + baseFrequency: 4 + baseWaveSize: 0.2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta new file mode 100644 index 0000000..752641a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SizeBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a4b74322b62c23e4ac0f1ed011ae2df +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset new file mode 100644 index 0000000..515aede --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset @@ -0,0 +1,18 @@ +%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: a740b03d4c3f2d84f9cfc7b3a6f8ea80, type: 3} + m_Name: SlideBehavior + m_EditorClassIdentifier: + tagID: slide + baseAmplitude: 5 + baseFrequency: 3 + baseWaveSize: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta new file mode 100644 index 0000000..fb051d2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SlideBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64683658af55e22b2b00b4662f5d4fc5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset new file mode 100644 index 0000000..8288636 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset @@ -0,0 +1,18 @@ +%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: 63b7822b5552d3748b1acc2a07066822, type: 3} + m_Name: SwingBehavior + m_EditorClassIdentifier: + tagID: swing + baseAmplitude: 22.74 + baseFrequency: 3.65 + baseWaveSize: 0.171 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta new file mode 100644 index 0000000..ee13dc4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/SwingBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4025512822b51274db8dc40a8fbd2d12 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset new file mode 100644 index 0000000..42b7dfa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset @@ -0,0 +1,18 @@ +%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: 99de7ce7cdaed2d42b0bd233e69e67db, type: 3} + m_Name: WaveBehavior + m_EditorClassIdentifier: + tagID: wave + baseAmplitude: 7.27 + baseFrequency: 4 + baseWaveSize: 0.4 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta new file mode 100644 index 0000000..cb46bca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WaveBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6c038789abd1bf0aae6cb1b2126a805 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset new file mode 100644 index 0000000..363541c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset @@ -0,0 +1,18 @@ +%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: 7c98870d7ebce9a4fa6c4a16e9701755, type: 3} + m_Name: WiggleBehavior + m_EditorClassIdentifier: + tagID: wiggle + baseAmplitude: 4.74 + baseFrequency: 7.82 + baseWaveSize: 0.551 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta new file mode 100644 index 0000000..861ef2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Behaviors/WiggleBehavior.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59d46f00fa8da9799b72c7b9ee0a173a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset new file mode 100644 index 0000000..7a9b544 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset @@ -0,0 +1,15 @@ +%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: 9e2a5ebb2c224910b14d053825d88b4a, type: 3} + m_Name: InstallationData + m_EditorClassIdentifier: + latestVersion: 2.0.2 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta new file mode 100644 index 0000000..e7cecde --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/InstallationData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73ab873d250d751aea5c0919aa4c705f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta b/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta new file mode 100644 index 0000000..9ee2b9c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d474c1e8238ea1a8baa2013d00d82747 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset new file mode 100644 index 0000000..98befbd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset @@ -0,0 +1,29 @@ +%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: 9743a50feedea474dbef99517d3e30eb, type: 3} + m_Name: TextAnimatorSettings + m_EditorClassIdentifier: + behaviors: + defaultDatabase: {fileID: 11400000, guid: d1ab346c8b166fe1babb05950e874fb1, type: 2} + enabled: 1 + openingSymbol: 60 + closingSymbol: 62 + appearances: + defaultDatabase: {fileID: 11400000, guid: 6f440ba43b95f6c7e90fa305a0bbda32, type: 2} + enabled: 1 + openingSymbol: 123 + closingSymbol: 125 + actions: + defaultDatabase: {fileID: 11400000, guid: 0f78b267c3825f804a4727a8b68c329d, type: 2} + enabled: 1 + openingSymbol: 60 + closingSymbol: 62 diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta new file mode 100644 index 0000000..d925649 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Data/Resources/TextAnimatorSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35ca45d2ae32867448befbe9ae946a1c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example.meta b/Assets/Plugins/Febucci/Text Animator/Example.meta new file mode 100644 index 0000000..1881d16 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85011d1648ca8914cb0fc9500772569f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity new file mode 100644 index 0000000..72eafc4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity @@ -0,0 +1,535 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 49d28ee43fb9747d884ba6ecfade7616, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 1 + 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} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804841} + - component: {fileID: 1911804842} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -80.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Hi! Welcome to TextAnimator; have fun bringing your dialogues to life! + + + Examples: + + I''m + freezing. + + I''m joking. + + It''s a secret. + + Oh, + how lucky. + + I''m confused. + + So happy right + now. + + Head over the next example scenes to discover more! + + + I''d + love to share the projects you create with TextAnimator! Let me know (if you + want) aand have a lovely day! ^^ + + Aaaaaaaaaaaaaand please do not + forget to leave a review, it really helps + ^^' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 61.6 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 15.56 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 29 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 1 + animationLoop: 0 + timeScale: 0 + _text: 'Hi! Welcome to TextAnimator; have fun bringing your dialogues to life! + + + Examples: + + I''m + freezing. + + I''m joking. + + It''s a secret. + + Oh, + how lucky. + + An EXPLOSION. + + I''m confused. + + So + happy right now. + + Head over the next example scenes to discover more! + + + I''d + love to share the projects you create with TextAnimator! Let me know (if you + want) aand have a lovely day! ^^ + + Aaaaaaaaaaaaaand please + do not forget to leave a review, it really + helps ^^' + useDynamicScaling: 1 + referenceFontSize: 5 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.33333334 + waitMiddle: 0.06666667 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta new file mode 100644 index 0000000..90037ed --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/00 - Welcome.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6eaf322d703d50146afecde586026f57 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity new file mode 100644 index 0000000..04eee01 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity @@ -0,0 +1,639 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 2011447538} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b97a825c489d94194a088dd18fedd2f0, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriter: {fileID: 1911804841} +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -363.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to watch the text animate + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 28.3 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: + useDynamicScaling: 1 + referenceFontSize: 40 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - size + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!850595691 &2011447538 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta new file mode 100644 index 0000000..7f2c5aa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1A - Effects.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 33f73b8875f94f64b867105f5c7d4747 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity new file mode 100644 index 0000000..7072f16 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity @@ -0,0 +1,650 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 567283253} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use multiple effects on the same + letters. YAY! + + + Example: writing "HEEEEY" + will result in "HEEEEY". + + + [Tip: if you have opened + multiple tags, you can use or {/} to close all of them + at once, instead of writing each single tag.]' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!850595691 &567283253 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 3 + m_GIWorkflowMode: 1 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 0 + m_LightmapMaxSize: 1024 + m_BakeResolution: 40 + m_Padding: 2 + m_TextureCompression: 1 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_FinalGather: 0 + m_FinalGatherRayCount: 256 + m_FinalGatherFiltering: 1 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press Play to watch how to stack effects on top of each other. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: Press Play to watch how to stack effects on top of each other. + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - rdir + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta new file mode 100644 index 0000000..231b54f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1B - Stacks.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82a6944f7c7c3fa47856f534f7482122 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity new file mode 100644 index 0000000..ccd37d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity @@ -0,0 +1,593 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 384671842bbd047fdb6f337fea5de8cd, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use attributes to add similar effects with different values, + like: + + wiggle1 wiggle2 + + + + In + the previous example, the first tag is "". + + The + second tag is " a=2 f=2>", + which means it has a double ''amplitude'' and ''frequency'' + than the default one.' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: --------------------- + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to watch similar effects with different values + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.02 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 0 + animationLoop: 0 + timeScale: 0 + _text: Press play to watch similar effects with different values + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 11400000, guid: 143063c9d42da4bb3bdef3e969df1633, type: 2} + databaseAppearances: {fileID: 11400000, guid: efcefe34ffbda4c5eb7e39d858738fbc, + type: 2} + databaseActions: {fileID: 11400000, guid: 59963a936d6fb4257a79cffca6bafcbb, type: 2} + defaultAppearancesTags: + - vertexp + defaultDisappearancesTags: [] + defaultBehaviorsTags: [] + defaultTagsMode: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta new file mode 100644 index 0000000..f5b449a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 1C - Attributes.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85ee4ca1f3a508347b883d20385a5eac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity new file mode 100644 index 0000000..2d1303a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity @@ -0,0 +1,1645 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 4890085278179872738, guid: 49d28ee43fb9747d884ba6ecfade7616, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &86436864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 86436866} + - component: {fileID: 86436865} + m_Layer: 0 + m_Name: foliage_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &86436865 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 86436864} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &86436866 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 86436864} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.053, y: -2.343, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &332677958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 332677959} + - component: {fileID: 332677960} + m_Layer: 0 + m_Name: fake shadow (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &332677959 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 332677958} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 4.9811, y: -2.0548997, z: 0} + m_LocalScale: {x: 0.9463681, y: 0.879066, z: 0.045535617} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!212 &332677960 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 332677958} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &376784909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 376784910} + - component: {fileID: 376784912} + - component: {fileID: 376784911} + - component: {fileID: 376784914} + - component: {fileID: 376784913} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &376784910 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 855521401} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.26, y: 0.19} + m_SizeDelta: {x: 4.8232, y: 1.5871} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &376784911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Press play to see an example of events + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 4.72 + m_fontSizeBase: 4.86 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 1.8 + m_fontSizeMax: 4.72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 376784912} + m_maskType: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 +--- !u!23 &376784912 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &376784913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + onMessage: + m_PersistentCalls: + m_Calls: [] + waitForNormalChars: 0.03 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 1 + waitForNewLines: 1 + waitForLastCharacter: 0 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &376784914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376784909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriterStartsAutomatically: 1 + animationLoop: 0 + timeScale: 0 + _text: Hello how + useDynamicScaling: 1 + referenceFontSize: 10 + isResettingTimeOnNewText: 1 + useDefaultDatabases: 1 + databaseBehaviors: {fileID: 0} + databaseAppearances: {fileID: 0} + databaseActions: {fileID: 0} + defaultAppearancesTags: + - diagexp + defaultDisappearancesTags: + - size + defaultBehaviorsTags: [] + defaultTagsMode: 0 +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.89, y: -0.48, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &557036334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 557036336} + - component: {fileID: 557036335} + m_Layer: 0 + m_Name: character + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &557036335 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557036334} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 3351748369286481944, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &557036336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557036334} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.43, y: -2.4, z: 0} + m_LocalScale: {x: 1.14, y: 1.14, z: 1.14} + m_Children: + - {fileID: 1715889608} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &673277488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 673277490} + - component: {fileID: 673277489} + m_Layer: 0 + m_Name: crate_0 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &673277489 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673277488} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -1 + m_Sprite: {fileID: 834852548192020694, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &673277490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673277488} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.973, y: -2.0629997, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &835184617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 835184619} + - component: {fileID: 835184618} + m_Layer: 0 + m_Name: foliage_2 (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &835184618 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835184617} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &835184619 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835184617} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3.793, y: -2.2919998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &855521399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855521401} + - component: {fileID: 855521400} + m_Layer: 0 + m_Name: dialogue box + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &855521400 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855521399} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 0ee0b44b8c03546a392c57dc59d85589, type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 1 + m_Size: {x: 7.5092654, y: 3.6853285} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &855521401 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855521399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.23, y: 0.26, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 376784910} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1242330695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1242330697} + - component: {fileID: 1242330696} + m_Layer: 0 + m_Name: foliage_2 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1242330696 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242330695} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 9166712023175037457, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1242330697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242330695} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.473, y: -2.7729998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1264690267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1264690269} + - component: {fileID: 1264690268} + m_Layer: 0 + m_Name: foliage_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1264690268 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1264690267} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: -7061757903698255618, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1264690269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1264690267} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.093, y: -2.7629998, z: 0} + m_LocalScale: {x: 0.6723, y: 0.6723, z: 0.6723} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1625340089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1625340092} + - component: {fileID: 1625340091} + - component: {fileID: 1625340090} + m_Layer: 0 + m_Name: Continue text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1625340090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: (press any key to continue) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4290690750 + m_fontColor: {r: 0.74509805, g: 0.74509805, b: 0.74509805, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18.65 + m_fontSizeBase: 12.12 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 1625340091} + m_maskType: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 +--- !u!23 &1625340091 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!224 &1625340092 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625340089} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.18482, y: 0.18482, z: 0.18482} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.45, y: -1.06} + m_SizeDelta: {x: 22.5552, y: 2.2409} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1694713420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1694713421} + m_Layer: 0 + m_Name: Scenery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1694713421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694713420} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1823198194} + - {fileID: 673277490} + - {fileID: 1264690269} + - {fileID: 86436866} + - {fileID: 1242330697} + - {fileID: 835184619} + - {fileID: 1787796922} + - {fileID: 332677959} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1715889606 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1715889608} + - component: {fileID: 1715889607} + m_Layer: 0 + m_Name: fake shadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1715889607 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715889606} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1715889608 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715889606} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 0.009999986, y: 0.019999972, z: 0} + m_LocalScale: {x: 1.5824505, y: 1.4699122, z: 0.07614146} + m_Children: [] + m_Father: {fileID: 557036336} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!1 &1787796920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787796922} + - component: {fileID: 1787796921} + m_Layer: 0 + m_Name: fake shadow (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1787796921 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787796920} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -100 + m_Sprite: {fileID: -2413806693520163455, guid: e074a9b4b276847b0b578d2c96d2c1db, + type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.20784314} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1787796922 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787796920} + m_LocalRotation: {x: 0.5545259, y: -0, z: -0, w: 0.8321665} + m_LocalPosition: {x: 4.2630005, y: -2.5129998, z: 0} + m_LocalScale: {x: 1.1683557, y: 1.0852667, z: 0.05621681} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 67.356, y: 0, z: 0} +--- !u!1 &1790845101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1790845102} + - component: {fileID: 1790845103} + m_Layer: 0 + m_Name: '[Script is here!]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1790845102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790845101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1790845103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790845101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90f9467af4b1d44aab0c2f932db2b5a7, type: 3} + m_Name: + m_EditorClassIdentifier: + typewriter: {fileID: 376784913} + dialoguesLines: + - Hi! Welcome!! + - You can easily have characters change expressions mid-sentence.. + - Did you see it?? + - ' Probaby I was too too fast.' + - Noticed it now? + - These are named "Events", and can be called whenever a specific + part of the text is shown. + - Of course you can use them to make anything happen in your game, not + only characters! + - For example, you can make the scenery move word + after word! + - It's your turn now, there's no limit to creativity here!! + faces: + - {fileID: 3351748369286481944, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 567328745045655870, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 2750705142841656183, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: -7053939661997144990, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 1892523670701107293, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 405182146505222058, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 2785564300681498144, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + - {fileID: 6645427384175290001, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + faceRenderer: {fileID: 557036335} + continueText: {fileID: 1625340089} + crates: + - {fileID: 1823198194} + - {fileID: 673277490} +--- !u!1 &1823198192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1823198194} + - component: {fileID: 1823198193} + m_Layer: 0 + m_Name: crate_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1823198193 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823198192} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 834852548192020694, guid: 4dffe6eab57ca4e4ba2f967307bd1c29, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2800001, y: 1.3002625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1823198194 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823198192} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.2530003, y: -2.5229998, z: 0} + m_LocalScale: {x: 0.83, y: 0.83, z: 0.83} + m_Children: [] + m_Father: {fileID: 1694713421} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta new file mode 100644 index 0000000..4c2a48e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 2 - Events.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6a3261d7db5245c5b24f3ec0d4968b5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity new file mode 100644 index 0000000..4fbe0c7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity @@ -0,0 +1,664 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 2 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &333414662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 333414663} + m_Layer: 0 + m_Name: '---------------------' + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &333414663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333414662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &349547107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 349547109} + - component: {fileID: 349547108} + m_Layer: 0 + m_Name: Formatted Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &349547108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65cd2c622bcc2df47813a20bb2263361, type: 3} + m_Name: + m_EditorClassIdentifier: + textAnimatorPlayer: {fileID: 1911804841} + textToShow: 'You can use special tags to pause the typewriter until a certain action + is completed. + + + Example: + + + Waiting one second: done. + + Waiting three seconds: done. + + Waiting your input: done. + + + You can also create your own (via C#). + + Read the docs for more ^^' +--- !u!4 &349547109 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349547107} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.50578886, y: -0.5419356, z: -3.6875} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &519420028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519420032} + - component: {fileID: 519420031} + - component: {fileID: 519420029} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &519420029 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 +--- !u!20 &519420031 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 4.15 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 0 + m_HDR: 1 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 0 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &519420032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519420028} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.62, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &903061070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903061074} + - component: {fileID: 903061073} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!223 &903061073 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &903061074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903061070} + 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: 1911804838} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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} +--- !u!1 &923047835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 923047836} + m_Layer: 0 + m_Name: '---------------------' + m_TagString: EditorOnly + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &923047836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 923047835} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1911804837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911804838} + - component: {fileID: 1911804840} + - component: {fileID: 1911804839} + - component: {fileID: 1911804842} + - component: {fileID: 1911804841} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911804838 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 903061074} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 2.5, y: 0} + m_SizeDelta: {x: -84.9, y: -506.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911804839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_text: Press play to test typewriter actions + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, type: 2} + m_sharedMaterial: {fileID: 7453642021753212536, guid: 1ffb8c3515fb6dc4688eff5a7e48200f, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 1 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 72 + m_fontSizeBase: 53.61 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 1911804839} + characterCount: 37 + spriteCount: 0 + spaceCount: 5 + wordCount: 6 + linkCount: 0 + lineCount: 2 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1911804840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_CullTransparentMesh: 0 +--- !u!114 &1911804841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3} + m_Name: + m_EditorClassIdentifier: + useTypeWriter: 1 + startTypewriterMode: 3 + canSkipTypewriter: 1 + hideAppearancesOnSkip: 0 + triggerEventsOnSkip: 0 + resetTypingSpeedAtStartup: 1 + disappearanceOrientation: 0 + onTextShowed: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onTypewriterStart: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onTextDisappeared: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + onCharacterVisible: + m_PersistentCalls: + m_Calls: [] + m_TypeName: Febucci.UI.Core.CharacterEvent, Febucci.TextAnimator.Runtime, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + waitForNormalChars: 0.03 + waitLong: 0.6 + waitMiddle: 0.2 + avoidMultiplePunctuactionWait: 0 + waitForNewLines: 1 + waitForLastCharacter: 1 + useTypewriterWaitForDisappearances: 1 + disappearanceWaitTime: 0.015 + disappearanceSpeedMultiplier: 1 +--- !u!114 &1911804842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911804837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3} + m_Name: + m_EditorClassIdentifier: + triggerAnimPlayerOnChange: 0 + effectIntensityMultiplier: 100 + appearancesContainer: + tagsFallback_Appearances: + - rot + - fade + tagsFallback_Disappearances: + - size + values: + defaults: + sizeDuration: 0.36 + sizeAmplitude: 2 + fadeDuration: 0.3 + verticalExpandDuration: 0.3 + verticalFromBottom: 0 + horizontalExpandDuration: 0.3 + horizontalExpandStart: 0 + diagonalExpandDuration: 0.3 + diagonalFromBttmLeft: 0 + offsetDir: {x: 1, y: 1} + offsetDuration: 0.3 + offsetAmplitude: 1 + rotationDuration: 0.3 + rotationStartAngle: 180 + randomDirDuration: 0.3 + randomDirAmplitude: 1 + presets: [] + tags_fallbackBehaviors: [] + behaviorValues: + defaults: + wiggleAmplitude: 0.15 + wiggleFrequency: 8.9 + waveFrequency: 4.78 + waveAmplitude: 0.2 + waveWaveSize: 0.18 + angleSpeed: 180 + angleDiffBetweenChars: 10 + swingAmplitude: 27.5 + swingFrequency: 5 + swingWaveSize: 0 + shakeStrength: 0.085 + shakeDelay: 0.04 + sizeAmplitude: 1.4 + sizeFrequency: 4.84 + sizeWaveSize: 0.18 + slideAmplitude: 0.12 + slideFrequency: 5 + slideWaveSize: 0 + bounceAmplitude: 0.08 + bounceFrequency: 1 + bounceWaveSize: 0.08 + hueShiftSpeed: 0.8 + hueShiftWaveSize: 0.08 + fadeDelay: 1.2 + dangleAmplitude: 0.13 + dangleFrequency: 2.41 + dangleWaveSize: 0.18 + dangleAnchorBottom: 0 + pendAmplitude: 25 + pendFrequency: 3 + pendWaveSize: 0.2 + pendInverted: 0 + presets: [] + scriptable_globalBehaviorsValues: {fileID: 0} + scriptable_globalAppearancesValues: {fileID: 0} + useDynamicScaling: 0 + referenceFontSize: -1 + isResettingEffectsOnNewText: 1 + timeScale: 0 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta new file mode 100644 index 0000000..be677bf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Example 3 - Actions.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba92474cac6c572459cd8fb75148ea94 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font.meta new file mode 100644 index 0000000..ab11377 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b13dc9321a13ef4383917b6db657d65 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset new file mode 100644 index 0000000..68cf88b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset @@ -0,0 +1,5367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!28 &-2340667833886341526 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lato-Regular Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 1048576 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020eeffffeb6b000000000000000000000000000000000000177ac4e9fae7bd6f0d00000000000000000000000c6dbae5f9ebc77d1a000000000000000000000000000000000000007cffffffffa300000000000000000000000000000000000000009bffffffff80000000000000000000000000000064fffffffaaa06000000000000000000000000000000000000000010ffffffffffffffffffffffffffffffffffffffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000a56798080807807000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000c7e7f6b1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000034fffffffffffffffffffffffffffffef6e9cdaa773b02000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d0000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000000000000000002c7ab9dff5fbf0d9b68445050000000000000000000028c5faffffffe12000000000000000000bedfffffa9e00000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff1800000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000000000000000000000000058ffffffff7b0000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000001aacf5ec8908000000000000000000000000000000000000000006478fc9e2f7f9eac7934903000000000000000000000ad9ffffffe833000000000000000000000000000fc9ffffffff8d0000000000000000000000000348727042010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffe4c0000000000000000000000000000000071f3ffffffffffffffea5900000000000000000054e8fffffffffffffff579010000000000000000000000000000000000cdfffffffff10700000000000000000000000000000000000004ecffffffffd0000000000000000000000000000003d7ffffffff8a00000000000000000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffff3c00000000000000000000000000000000000000000000000000000000000000000000002de2fffffffffc51000000000000000000000000000358befdfffffffffffffffffffffffffab44c0100000000000000000000000000008efffff85f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c01000000000000000000000000000000000034ffffffffffffffffffffffffffffffffffffffffffe892240000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000000000000003ebdffffffffffffffffffffffed911a0000000000000028eaffffffffe3220000000000000000000082ffffffff4f000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000c0ffffffffe00200000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000007d7ffffffffa4000000000000000000000000000000000000076be4ffffffffffffffffffffe0530000000000000000000036fcffffffe10f000000000000000000000000a3ffffffffd60800000000000000000000000093ffffffff76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffffed1e000000000000000000000000000097ffffffffffffffffffffff780000000000000070feffffffffffffffffffffa5010000000000000000000000000000001effffffffffff4f00000000000000000000000000000000000047ffffffffffff21000000000000000000000000000053fffffffff619000000000000000000000000000000000000004effffffffffffffffffffffffffffffffffffffffff3c0000000000000000000000000000000000000000000000000000000000000000000026e9fffffffffe610000000000000000000000000055deffffffffffffffffffffffffffffffffffffd4470000000000000000000000000006d0fffffc3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd4470000000000000000000000000000000034fffffffffffffffffffffffffffffffffffffffffffffffda41c0000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000000000793fefffffffffffffffffffffffffffff78e150000000022e5ffffffffe625000000000000000000000015f6ffffffbf000000000000000000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000000028ffffffffffff4b00000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000055ffffffffffff2a0000000000000000000000000000000023d3ffffffffffffffffffffffffffffb21200000000000000000082ffffffffa1000000000000000000000049fffffffffc350000000000000000000000000092ffffffff750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7ffffffc80500000000000000000000000067ffffffffffe6d1e6fffffffffe4e000000000042fdffffffffecd1dfffffffffff7c0000000000000000000000000000006effffffffffffa50000000000000000000000000000000000009dffffffffffff71000000000000000000000000000000c9ffffffff92000000000000000000000000000000000000006effffffffe4cccccccccccccccccccccccccccccccc2f0000000000000000000000000000000000000000000000000000000000000000001ee2ffffffffff7300000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000000000002af6ffffdf0f00000000074a82b5d8e9f8fbf0dcbb9057140000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e000000000000000000000000000034ffffffffffd2cccccccccccccccccdd6ecfffffffffffffffff463000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000000007b7ffffffffffffffecd3d2e2fdffffffffffffef4e00001cdfffffffffe8270000000000000000000000000095ffffffff2f0000000000000000000000000000000033cccccccccccccccccccccccccccccccccccccccccccccccccccc130000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000000000090ffffffffffffb300000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000078ffffffffffff4d0000000000000000000000000000003beffffffffffffff2d7d8f2ffffffffffffcd10000000000000000004ccffffffff520000000000000000000de2ffffffff8400000000000000000000000000008affffffff6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001dedffffff8e000000000000000000000010f2ffffffbe2d0000002dbdffffffe40700000002d8ffffffd43e0000001da3fffffffb210000000000000000000000000000bffffffffffffff3080000000000000000000000000000000005edffffffffffffc200000000000000000000000000000041fffffffff81b0000000000000000000000000000000000008dffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016daffffffffff8600000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000006bffffffa700002d9beffffffffffffffffffffffffffcbb550300000000000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000000034ffffffffff200000000000000000000000114a97eeffffffffffff9c03000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000000a8ffffffffffed802500000000083d89e7fffffffffe891ad9ffffffffea2a000000000000000000000000000021fcffffff9d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000000000000009eefffffffffffffd1e000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000054ffffffffffff2700000000000000000000000000001feafffffffffda03801000000328ffaffffffffc805000000000000000028f6ffffffeb18000000000000000096ffffffffd005000000000000000000000000000082ffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffff4f0000000000000000000078ffffffc505000000000004c1ffffff6700000050ffffffe1110000000000009dffffff970000000000000000000000000013fcffffffffffffff520000000000000000000000000000000049fffffffffffffffd15000000000000000000000000000000b9ffffffff95000000000000000000000000000000000000acffffffff4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d0ffffffffff9800000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000b3ffffff76a1fdffffffffffffffffffffffffffffffffffdd550000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe82800000000000000000000000034ffffffffff2000000000000000000000000000000f88f7ffffffffffad03000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000054ffffffffffbb170000000000000000000978f0fffffffff7ffffffffec2d00000000000000000000000000000000a7fffffff715000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8ffffffffe93500000000000000000387fffffffffe470000000000000000000000000060fffffff7c7ffffff83000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000005d3ffffffff9f000000000000000000000000000001caffffffffeb3d00000000000000002bddffffffff790000000000000000006fffffffffb4000000000000003dfefffffff92f0000000000000000000000000000007affffffff5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000089ffffffef20000000000000000000c6ffffff380000000000000031ffffffba0000009effffff600000000000000012f6ffffe90100000000000000000000000060ffffffffffffffffa8000000000000000000000000000000009fffffffffffffffff6300000000000000000000000000000031fefffffff91e0000000000000000000000000000000000cbffffffff2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc5ffffffffffa902000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe018000000000000000000000015e8ffffffffffffffffffffffffffffffffffffffffffffffffb6170000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe018000000000000000000000034ffffffffff200000000000000000000000000000000021d6ffffffffff9800000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000004e1ffffffffc10700000000000000000000000016c0ffffffffffffffee30000000000000000000000000000000000030ffffffff7b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000000c8ffffffc585ffffffe6040000000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000016a7f4ea8406000000000000000000000000000057fffffffff52c0000000000000000000020e6fffffff620000000000000000001bcffffffff66000000000008d9ffffffff7b0000000000000000000000000000000073ffffffff570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c3ffffffca060000000000000008faffffe5000000000000000000dbfffff7050000dbfffffe0f0000000000000000b3ffffff2d000000000000000000000000b1ffffffffe6fffffff40a000000000000000000000000000005eeffffffedffffffffb400000000000000000000000000000000a8ffffffff990000000000000000000000000000000000ebffffffff0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bbffffffffffb805000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb0100000000000000000000004affffffffffffffffffffffffffffffffffffffffffffffffffe732000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000000000034ffffffffff20000000000000000000000000000000000011c1ffffffffff5c0000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000048fffffffff621000000000000000000000000000004a4ffffffffffef3300000000000000000000000000000000000000baffffffe505000000000000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d00000000000000000000002fffffffff823dffffffff520000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6ffffffff6900000000000000000000000057ffffffff920000000000000000001deffffffff4230000000088ffffffffc903000000000000000000000000000000006bffffffff5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bebffffff91000000000000001fffffffb9000000000000000000abffffff1b0000f7ffffe100000000000000000083ffffff4b00000000000000000000000af6ffffffff82ffffffff5500000000000000000000000000004bffffffff9af0fffffff80c00000000000000000000000000000024fafffffffa200000000000000000000000000000000affffffffee000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbefd6b2753406aeffffffffffc50a00000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b0000000000000000000004a3ffffffffffffffe092572b13050b1f3462a7ebfffffffffffffff3390000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b0000000000000000000034ffffffffff200000000000000000000000000000000000000eddfffffffff1170000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc4000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400008affffffffa600000000000000000000000000000028e5ffffffffff6f000000000000000000000000000000000000000043ffffffff59000000000000000000000000000000000000000000000000001cffffffe80000000000000000000000000000002bfffffffff1090000000000000000000000000076ffffffffb2000000000000000000000097ffffffff3602e9ffffffba0000000000000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffffe20500000000000000000000000000c9ffffffeb050000000000000000005cffffffffc503000032fbfffffff728000000000000000000000000000000000063ffffffff4900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047feffffff5300000000000031ffffffa90000000000000000009affffff300009ffffffd100000000000000000072ffffff60000000000000000000000052fffffffffd18f6ffffffab0000000000000000000000000000a1ffffffff55bcffffffff550000000000000000000000000000000096ffffffff9d00000000000000000000000000000029ffffffffd00000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffff8ffffffffffd21100000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed11000000000000000001a8ffffffffffffd4480000000000000000000000035fdbffffffffffffee28000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed1100000000000000000034ffffffffff200000000000000000000000000000000000000036fbffffffff9a0000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000b0ffffffff6000000000000000000000000000002de9ffffffffffffde080000000000000000000000000000000000000000ccffffffc9000000000000000000000000000000000000000000000000001cffffffe80000000000000000000000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000cf2ffffffdb010090fffffffe2300000000000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074ffffffff84000000000000000000000000000067ffffffff4d00000000000000000000aaffffffff790004cfffffffff730000000000000000000000000000000000005bffffffff410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085fffffff02300000000002bffffffad0000000000000000009fffffff2a0004ffffffd500000000000000000077ffffff5a0000000000000000000000a3ffffffffcc00b6fffffff60b00000000000000000000000006f0fffffff80d7fffffffffa60000000000000000000000000000000018f5fffffffb23000000000000000000000000000049ffffffffb1000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffffffdd190000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d000000000000000082ffffffffffffffec2000000000000000000000000000037efeffffffffffd2080000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d00000000000000000034ffffffffff20000000000000000000000000000000000000000091fffffffffb1c000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000bcffffffff450000000000000000000000000032ecffffffffffffffff7e000000000000000000000000000000000000000056ffffffff380000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000067ffffffff7700002affffffff8a00000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adffffffff43000000000000000000000000000012fdffffff8f0000000000000000000013e6fffffffa237affffffffc30200000000000000000000000000000000000053ffffffff3a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c0ffffffcd070000000019ffffffc4000000000000000000b7ffffff180000f1ffffec0000000000000000008fffffff470000000000000000000004eeffffffff820062ffffffff580000000000000000000000004dffffffffb00036fffffffff0060000000000000000000000000000000085ffffffffffffffffffffffffffffffffffffffffffffffff9300000000000000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffff6a0000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000003dfefffffffff0f9ffffce0900000000000000000000000000004ff4ffffffffff8700000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe905000000000000000034ffffffffff20000000000000000000000000000000000000000021fcffffffff860000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc40000abffffffff4700000000000000000000000037efffffffffeb93fffffff40f000000000000000000000000000000000000005effffffffa70000000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b000000000000000000cefffffffb17000000c5ffffffeb07000000000000000000000000000000000000001cffffffe8000000000000000000000000000033cccccccccccccccccccccccccccccccccccccccccccccccccccc130000c5ffffffff19000000000000000000000000000000d7ffffffc1000000000000000000000049ffffffffaef8fffffff423000000000000000000000000000000000000004cffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e9ffffff950000000002effffff3050000000000000003edffffef020000caffffff210000000000000000c9ffffff200000000000000000000044ffffffffff350010f9ffffffae000000000000000000000000a2ffffffff590001e7ffffffff47000000000000000000000000000000000fedffffffffffffffffffffffffffffffffffffffffffffff75000000000000000000000000000000000000000000000000000030e6fffffffffffffffffffffffffffffffffffffffffffffffe8d03000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000005dafffffffffc4769ffffffa100000000000000000000000000000056fffffffffff922000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000000034ffffffffff20000000000000000000000000000000000000000000adffffffffdf0000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000089ffffffff6d00000000000000000000003cf2ffffffffe92c06e2ffffff6c00000000000000000000000000000000000000cefffffffffb1b00000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000037ffffffffaf0000000060ffffffff5a000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000daffffffff07000000000000000000000000000000a2fffffff101000000000000000000000098ffffffffffffffff6a000000000000000000000000000000000000000044ffffffff2b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044fdffffff5700000000b3ffffff590000000000000053ffffffb20000008bffffff81000000000000002bffffffdf000000000000000000000095ffffffffe7010000b3fffffff70d0000000000000000000007f0fffffff60c00009cffffffff97000000000000000000000000000000000074ffffffffffffffffffffffffffffffffffffffffffffff570000000000000000000000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffab0500000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000066ffffffffff7700009effffff6c0000000000000000000000000000008effffffffff980000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000000000034ffffffffff200000000000000000000000000000000000000000005dffffffffff2f0000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000045ffffffffb80000000000000000000042f4ffffffffe82a000077ffffffd400000000000000000000000000000000000040ffffffffffff8500000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000faffffffff120000000000000000000000000000008bffffffff8200000000000000009fffffffff4b0000000009f0ffffffc1000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000e0ffffffff0400000000000000000000000000000081ffffffff1800000000000000000000000bdbffffffffffffbb0100000000000000000000000000000000000000003cffffffff230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081fffffff2250000005affffffe51b000000000019e2ffffff5a00000032fffffff63100000000000bc8ffffff860000000000000000000001e4ffffffff9b0000005bffffffff5b000000000000000000004effffffffab0000004fffffffffe6010000000000000000000000000000000008e2ffffffffe2ccccccccccccccccccccccccf8ffffffff3900000000000000000000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffab01000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000001ddffffffffdc04000008cbfffffa3c00000000000000000000000000000aeafffffffff71000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd7000000000000000034ffffffffff2000000000000000000000000000000000000000000021ffffffffff6b0000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff580000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc4000005e0fffffffd2c000000000000000048f7ffffffffe6280000001afcffffff260000000000000000000000000000000000b0ffffffffffffeb08000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000f9ffffffff130000000000000000000000000000008cffffffff810000000000000010f6ffffffe303000000000095ffffffff2a0000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000cbffffffff160000000000000000000000000000006dffffffff28000000000000000000000000bbffffffffffff4d00000000000000000000000000000000000000000034ffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bdffffffd008000004ddffffffe5651b051b65e4ffffffdf0400000000bafffffff27723061454d3fffffff6170000000000000000000036ffffffffff4e0000000cf6ffffffb100000000000000000000a4ffffffff540000000af7ffffffff39000000000000000000000000000000000063ffffffffbc000000000000000000000000efffffffff1b000000000000000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffff7b000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d00000042ffffffffff61000000001eebffffe71a000000000000000000000000000079ffffffffff6000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000034ffffffffff2000000000000000000000000000000000000000000000e3ffffffff9e000000000000000076ffffffffab000000000000000000000000002fffffffffea060000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000066ffffffffc6050000000000004ef9ffffffffe5260000000000c7ffffff650000000000000000000000000000000023fdffffffffffffff63000000000000000000000000000000000000000000001cffffffe8000000000000000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000006effffffff820000000000002fffffffff910000000000000033ccccccccccccccccccccd1fffffffbcccccccccccccccccccccc130000000000000000000000000000000000000000000000000000000000000000b2ffffffff410000000000000000000000000000005dffffffff36000000000000000000000066ffffffffffffffd80900000000000000000000000000000000000000002cffffffff15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017e7ffffff990000003dfcfffffffffffffffffffffffc3e000000000021f0ffffffffffffffffffffffff65000000000000000000000086fffffffff70a00000000acfffffff80f000000000000000007f1fffffff30900000000b5ffffffff89000000000000000000000000000000000003d6ffffffff41000000000000000000000efffffffffa02000000000000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6fffffffffd370000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f00000098ffffffffe904000000000043fcffffc506000000000000000000000000000ffaffffffffae00000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000034ffffffffff2000000000000000000000000000000000000000000000beffffffffc0000000000000000015f9fffffffa1600000000000000000000000095ffffffff89000000000000000000fcffffffe8000000000000000000000098ffffffff4c0000000000000000000020ffffffffc400000001bdffffffff9f020000000055faffffffffe32400000000000083ffffffa50000000000000000000000000000000092ffffffffc7ffffffd2000000000000000000000033ccccccccccccccccccccd1fffffffbcccccccccccccccccccccc13000000d3ffffffff38000000000000000000000000000000b2ffffffff5a00000000000000d5fffffffe2000000000000000caffffffef0900000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000078ffffffff82000000000000000000000000000000a6ffffffff450000000000000000000020f2fffffff0ebffffff91000000000000000000000000000000000000000025ffffffff0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040fcffffff5a0000005ffbfffffffffffffffffffa5f0000000000000041f1ffffffffffffffffffff86000000000000000000000000d7ffffffffb5000000000054ffffffff5e000000000000000050ffffffffa6000000000068ffffffffda00000000000000000000000000000000000051ffffffffc5000000000000000000002fffffffffde000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffce0300000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c000000daffffffff9b0000000000000075ffffff960000000000000000000000000000c4ffffffffe900000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c0000000000000034ffffffffff2000000000000000000000000000000000000000000000acffffffffdd000000000000000000a7ffffffff7600000000000000000000000af0fffffffe23000000000000000000fcffffffe8000000000000000000000099ffffffff4d0000000000000000000021ffffffffc20000000018dcffffffffae0f00005bfcffffffffe123000000000000004effffffcf0000000000000000000000000000000ff3ffffffec40ffffffff410000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff18000000aaffffffff66000000000000000000000000000000e1ffffffff320000000000003effffffffb9000000000000000065ffffffff6100000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffe404000000000000000000000000002bfcffffffff4400000000000000000001beffffffff6980fffffffe44000000000000000000000000000000000000001dffffffff06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfffffff3280000003ed0ffffffffffffffcf3d00000000000000000029bcffffffffffffffe15800000000000000000000000027ffffffffff68000000000009f3ffffffb40000000000000000a6ffffffff4f00000000001bffffffffff2b000000000000000000000000000000000000c8ffffffff4a0000000000000000004fffffffffffffffffffffffffffffffffffffffa8000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff5b0000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000014ffffffffff5e0000000000000000aaffffff610000000000000000000000000081ffffffffff1a00006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff580000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000009affffffffe900000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000fcffffffe80000000000000000000000a5ffffffff5e000000000000000000002effffffffb3000000000021daffffffffe15462fdffffffffe021000000000000000024ffffffe700000000000000000000000000000074ffffffff9701ddffffffb00000000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff180000006affffffffa200000000000000000000000000001dffffffffef02000000000000a6ffffffff5500000000000000000cf2ffffffc900000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d2ffffffff7300000000000000000000000004c7ffffffffff380000000000000000006dffffffffc4010fe4ffffffe31000000000000000000000000000000000000015fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b9ffffffd30900000002438eb4c5b38d41010000000000000000000000003583b0c5b7964e070000000000000000000000000078ffffffffff1c000000000000a5fffffff91100000000000008f3fffffff107000000000000ceffffffff7b00000000000000000000000000000000000040ffffffffce0100000000000000006fffffffffffffffffffffffffffffffffffffffa80000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffcc00000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100003affffffffff3000000000000000000cd4fffff7340000000000000000000000004effffffffff3c000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff610000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000008cfffffffff100000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000fcffffffe80000000000000000000000bfffffffff84000000000000000000004bffffffffa100000000000010b1ffffffffffffffffffffde1f00000000000000000000c5fffffc020000000000000000000000000003e1ffffffff2d0076fffffffd2200000000000000000040ffffffffffffffffffffffffffffffffffffffffffffffffffff1800000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000014f8ffffffea060000000000000000009affffffff31000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000001aacf5ec8908000000000000000000000000000058fffffffff83e0000000000000000000002a0ffffffffffff2b000000000000000024f5fffffff92a00004bffffffffa40000000000000000000000000000000000000dfffffff700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e5f9edcb84220000000015e5ffffff9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9ffffffffce000000000000004dffffffff6100000000000052ffffffffa10000000000000081ffffffffcc00000000000000000000000000000000000000b8ffffffff5300000000000000008fffffffffffffffffffffffffffffffffffffffa80000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff3300000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800005bffffffffff1000000000000000000025f0ffffe11400000000000000000000003affffffffff5200006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff580000a0ffffffffffffffffffffffffffffffffffffffff9c0000000000000000000000009bffffffffe80000000000000000000071ffffffffa70000000000000000002bffffffffe70400000000000000000000fcfffffff10c00000000000000000005f0ffffffffd10000000000000000000086ffffffff77000000000000000057e2ffffffffffffffdc1d000000000000000000000000000000000000000000000000000000000056ffffffffbf000013f7ffffff8e00000000000000000000000000000000000000001cffffffe800000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000076ffffffff8c0000000000000000000034ffffffff98000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000007d7ffffffffa4000000000000000000000000000002c0fffffffff762010000000000000019b8ffffffffffffff0d0000000000000002c4ffffffff8100000000a1ffffffff55000000000000000000000000000000000005ffffffef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059eafffffffffffffffa8e050000003dfcffffff5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001afeffffffff810000000000000006efffffffb7000000000000a8ffffffff4a0000000000000034ffffffffff1d00000000000000000000000000000000000030feffffffd50200000000000000afffffffffd9cccccccccccccccccccccccccccc8500000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff81000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b00006affffffffff01000000000000000000004dfeffffbd030000000000000000000026ffffffffff5d000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000000000034ffffffffff2000000000000000000000000000000000000000000000adffffffffdc0000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000fcffffffffba05000000000000000053ffffffffffff50000000000000000009e4ffffffff3c0000000000000000000689ffffffffffda1b000000000000000000000000000000000000000000000000000000000000c7ffffffff52000000a1fffffff10c000000000000000000000000000000000000001cffffffe80000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf00000000000001dcffffffff280000000000000000000000cefffffff30d0000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000055ffffffffffff2a000000000000000000000000000019e9ffffffffffcd712d1306184897f6fffffea4ffffffe5000000000000000074ffffffffd8070000000010e6ffffffed190000000000000000000000000000000000fdffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffbe0800000078fffffff52a0000000000000000000000000000000000000000000000000000000000000000000000000000000000006affffffffff3400000000000000009efffffffb130000000009f4ffffffed050000000000000001e5ffffffff6d00000000000000000000000000000000000000a6ffffffff5c00000000000000cfffffffff3100000000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffca000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d000074fffffffffb00000000000000000000000082ffffff8b0000000000000000000019ffffffffff5e000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000000000034ffffffffff2000000000000000000000000000000000000000000000beffffffffc00000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000fcffffffffffbc1500000000000014dfffffffc6ffffed2c0000000000000098ffffffffe40400000000000000000007d0ffffffffda1a00000000000000000000000000000000000000000000000000000000000037ffffffffe00300000037ffffffff6c000000000000000000000000000000000000001cffffffe80000000000000000000000000000000000b3ffffffffea370000000000000000048afffffffffd4200000000000045ffffffffc400000000000000000000000069ffffffff680000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000078ffffffffffff4d0000000000000000000000000000002ee4fffffffffffffffffffffffffffffe6985ffffffb90000000000000029f7fffffffe3e0000000000004dffffffffb60000000000000000000000000000000000f6ffffe1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050ffffffffffecd1ddfeffffffff9f00000001b5ffffffd50b0000000000000000000000000000000000000000000000000000000000000000000000000000000000bbffffffffe601000000000000000046ffffffff640000000054ffffffff9c0000000000000000009affffffffbe0000000000000000000000000000000000000023faffffffdc04000000000000efffffffff1200000000000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffff8030000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c000070ffffffffff0c000000000000000000000001b5ffffff560000000000000000002affffffffff53000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000034ffffffffff2000000000000000000000000000000000000000000000e5ffffffff9e00000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000fcfffffff6ffffe6710e0000034adafffffffd25ccfffff377140000002db0ffffffffff79000000000000000000008affffffffe11c00000000000000000000000000000000000000000000000000000000000000a8ffffffff760000000000ccffffffda010000000000000000000000000000000000001cffffffe8000000000000000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff8000000000000000adffffffff5f0000000000000000000000000ef5ffffffd00000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000054ffffffffffff27000000000000000000000000000000001dc6fffffffffffffffffffffffff05100c7ffffff7900000000000003caffffffff9a0000000000000000a4ffffffff6700000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e0ffffffce3a000000178fffffffff3b00000013e2ffffffa10000000000000000000000000000000000000000000000000000000000000000000000000000000010faffffffff9a00000000000000000003eaffffffba00000000a9ffffffff440000000000000000004dfffffffffb120000000000000000000000000000000000000095ffffffff6500000000000efffffffff20000000000000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff270000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd300000065ffffffffff1f00000000000000000000000010dcfffff42c00000000000000003dffffffffff40000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000000000000034ffffffffff2000000000000000000000000000000000000000000023ffffffffff69000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e000000000000000000000000fcffffff87a6fffffffee3d5f2ffffffffffa2002bf6fffffffdded2e9ffffffffffffd2070000000000000000001df8fffffff62d000000000000000000000000000000000000000000000000000000000000001dfbfffffff612000000000062ffffffff4b0000000000000000000000000000000000001cffffffe80000000000000000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff980200000000000019fbfffffff00a000000000000000000000000009fffffffff3800000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000005d3ffffffff9f000000000000000000000000000000000000015addfffffffffffffffff696170018fdffffff350000000000007bffffffffe710000000000000000012e7fffffff424000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffda0d0000000000007effffffb5000000003afbffffff620000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffff4d0000000000000000000097fffffffb1400000af4ffffffea0300000000000000000009f6ffffffff5f0000000000000000000000000000000000000017f4ffffffe207000000002fffffffffd30000000000000000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff460000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000004bffffffffff35000000000000000000000000002df5ffffdb100000000000000058ffffffffff1d000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff95000000000000000034ffffffffff200000000000000000000000000000000000000000005fffffffffff2d0000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000fcffffff6704a1ffffffffffffffffffffdf12000043f4ffffffffffffffffffffffe1260000000000000000000095ffffffff7000000000000000000000000000000000000000000000000000000000000000008affffffff9b00000000000009eeffffffba0000000000000000000000000000000000001cffffffe80000000000000000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000007dffffffff97000000000000000000000000000039ffffffffa000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000016a7f4ea84060000000000000000000000000000000000000000013b7ea9c1c7ba965a1000000079ffffffdd0100000000002ef9ffffffff55000000000000000000004fffffffffc6030000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffff590000000000000006e4fffff90b0000000074fffffff62d0000000000000000000000000000000000000000000000000000000000000000000000000000adfffffffff60a000000000000000000003fffffffff67000055ffffffff960000000000000000000000b3ffffffffaf000000000000000000000000000000000000000084ffffffff6e000000004effffffffb4000000000000000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff5300000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000028ffffffffff6c000000000000000000000000000058ffffffb40100000000000095fffffffff1010000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000034ffffffffff20000000000000000000000000000000000000000000b1ffffffffdc000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000fcffffff4a000062f3ffffffffffffffd4220000000026c2ffffffffffffffffffb31a0000000000000000000002e9ffffffe504000000000000000000000000000000000000000000000000000000000000000befffffffff2e000000000000008dffffffff2a00000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000002e1ffffffff32000000000000000000000000000000d3fffffff611000000000000000000000000001cffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be7ffffff7b000000000005cfffffffffb3000000000000000000000000a7ffffffff7a0000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dafffffc0d000000000000000099ffffff420000000001b2ffffffd80c00000000000000000000000000000000000000000000000000000000000000000000000008f4ffffffffb3000000000000000000000002e5ffffffbd0000abffffffff3f000000000000000000000066fffffffff60a000000000000000000000000000000000000000eecffffffe80a0000006effffffff940000000000000000000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000003f2ffffffffae0000000000000000000000000000008fffffff80000000000000d5ffffffffb5000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe403000000000000000034ffffffffff20000000000000000000000000000000000000000024fdffffffff8300000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000fcffffd30c000000157bc5eefbecbe6908000000000000003d94cdf0fae9ce8d3800000000000000000000000033ffffffff8200000000000000000000000000000000000000000000000000000000000000006cffffffffc0000000000000000024feffffff9800000000000000000000000000000000001cffffffe80000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f17000000000000000000004dfffffffb8f0000000000000000000000000000000042eeffffff6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008afffffff416000000000082ffffffffd91a00000000000000000000000010c7fffffffa3100000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2ffffe300000000000000000070ffffff5b000000000011e0ffffffa50000000000000000000000000000000000000000000000000000000000000000000000004effffffffff6700000000000000000000000090fffffffc170bf5ffffffe602000000000000000000000019feffffffff51000000000000000000000000000000000000000073ffffffff770000008effffffff75000000000000000000000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5a00000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000000baffffffffee07000000000000000000000000000004bffffffe4d0000000029ffffffffff6e000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000034ffffffffff20000000000000000000000000000000000000000095fffffffff919000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054ffffffff4b0000000000000000000000000000000000000000000000000000000000000002dbffffffff53000000000000000000b9fffffff512000000000000000000000000000000001cffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b62a6d1eefbf4dfc995521000000000000000000000000000000000000000000009b62f0000000000004dfeffffff85000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feffffd800000000000000000064ffffff6a00000000000037faffffff6600000000000000000000000000000000000000000000000000000000000000000000009effffffffff1b00000000000000000000000038ffffffff6956ffffffff9100000000000000000000000000cbffffffffa1000000000000000000000000000000000000000007e2ffffffed0e0000aeffffffff560000000000000000000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4e0000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000006bffffffffff6800000000000000000000000000000016e3fffff0250000009cfffffffffc1600000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000034ffffffffff20000000000000000000000000000000000000003afcffffffff9500000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069ffffffff2f000000000000000000000000000000000000000000000000000000000000004effffffffe2030000000000000000004effffffff76000000000000000000000000000000001cffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018f6fffff4ae1200000000000000000000000000000000000000000000000357c9fffffffffffffffffffffff79621000000000000000000000000000000000000007efff86f0000000026efffffffe00e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffe500000000000000000072ffffff5b0000000000000070fffffff73000000000000000000000000000000000000000000000000000000000000000000003ebffffffffcd0000000000000000000000000000deffffffb7a9ffffffff3a000000000000000000000000007effffffffee04000000000000000000000000000000000000000061ffffffff800000ceffffffff370000000000000000000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff33000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff6100000000000016f9ffffffffdf0400000000000000000000000000000036f8ffffd40b001ff8ffffffffaa000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000034ffffffffff200000000000000000000000000000000000000fdfffffffffef140000000000000000000000000000000067ffffffff9d0021feffffffe0020000000000000000000000000000000000000063fffbcb2f000000000000000000000000000000000000000064ffff9c00000000000000000000005bffffffff3f0000000000000000000016bcbb8b5b06000000000000000000000000000000beffffffff780000000000000000000002e0ffffffe2030000000000000000000000000000001cffffffe80000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000126bb2e0f8fae9cc934a02000000000000000000000000008effffffffba0000000000000000000000000000000000000000000054dcfffffffffffffffffffffffffffffffb7b020000000000000000000000000000000000aeffffffb515003decfffffffd3d00000000000000000000000000000000054a73714502000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8fffffe110000000000000000a0ffffff430000000000000000aeffffffda0d000000000000000000000000000000000000000000000000000000000000000040ffffffffff80000000000000000000000000000088fffffff3edffffffe2010000000000000000000000000031ffffffffff43000000000000000000000000000000000000000003d5fffffff21100eeffffffff170000000000000000000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008affffffffff100000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb00000000000000000a0ffffffffff820000000000000000000000000000000065ffffffaa03c3fffffffffe2f0000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb0000000000000000000000034ffffffffff20000000000000000000000000000000000012c4ffffffffff5600000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000001c7ffffe4100000000000000000000000000000000000000064ffff9c00000000000000000000003bffffffff7e0000000000000000000084fffffffa0500000000000000000000000000002ffffffffff713000000000000000000000079ffffffff5400000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000a7ff5ffffffffffffffffffde5400000000000000000000000016f5ffffffff440000000000000000000000000000000000000000a3ffffffffffffffffead6d3e7fdffffffffffffba0e0000000000000000000000000000000014b4ffffffe784f9ffffffff6c000000000000000000000000000000000093ffffffff77000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009fffffff620000000000000009ebfffffb0c000000000000000010deffffffa9000000000000000000000000000000000000000000000000000000000000000090ffffffffff33000000000000000000000000000031ffffffffffffffff8c000000000000000000000000000000e3ffffffff9300000000000000000000000000000000000000000050ffffffff760dfffffffff7010000000000000000000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffdb0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd712000000000000000026fafffffffffe4c000000000000000000000000000000009bffffffc9ffffffffff9b0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd712000000000000000000000034ffffffffff200000000000000000000000000000000023d8ffffffffff920000000000000000000000000000000000000098ffffffff46d2fffffffb1800000000000000000000000000000000000000000031fcffff930000000000000000000000000000000000000064ffff9c000000000000000000000004efffffffe80d000000000000000016ebffffffc8000000000000000000000000000000a0ffffffff9d00000000000000000000000015f9ffffffc300000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000033e0ffffffffffffffffffffffffff9d0200000000000000000000008affffffffc400000000000000000000000000000000000000007dffffffffffcc681c000000001257c5ffffffffffbb05000000000000000000000000000000000065f3ffffffffffffff820000000000000000000000000000000000008affffffff6e000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffe11200000000000089ffffffbc0000000000000000000033f9ffffff6a00000000000000000000000000000000000000000000000000000000000000e0ffffffffe501000000000000000000000000000000d8ffffffffffffff3500000000000000000000000000000097ffffffffe300000000000000000000000000000000000000000000c7ffffffe02fffffffffd8000000000000000000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff9e000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000000008cfffffffffff24b00000000000000000000000000000007c9ffffffffffffffe311000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe02000000000000000000000000034ffffffffff200000000000000000000000000000118bf8ffffffffffa9020000000000000000000000000000000000000030ffffffffb1ffffffffac000000000000000000000000000000000000000000000095fffffc3100000000000000000000000000000000000064ffff9c00000000000000000000000094ffffffffb60a00000000000007c1ffffffff68000000000000000000000000000018f9ffffffff2f00000000000000000000000000a5ffffffff33000000000000000000054785b8daf1fbf5e1cc9c57130000000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080036f6fffffffffffee0d0defeffffffffff97000000000000000000000014f3ffffffff440000000000000000000000000000000000000003c2ffffcf460000000000000000000059f5ffffffff9b000000000000000000000000000000000654cbfffffffffffe71000000000000000000000000000000000000007dffffffff62000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ddffffffd43f0100001a96ffffffff4700000000000000000000006cfffffff832000000000000000000000000000000000000000000000000000000000031ffffffffff990000000000000000000000000000000081ffffffffffffde000000000000000000000000000000004affffffffff340000000000000000000000000000000000000000003fffffffff8bffffffffb90000000000000000000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4e000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000000000009d4fffffffffffd7803000000000000000000000000000037fffffffffffff83600000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b0000000000000000000000000034ffffffffff200000000000000000000000124d9bf0ffffffffffff9803000000000000000000000000000000000000000000c9ffffffffffffffff44000000000000000000000000000000000000000000000010e9ffffc601000000000000000000000000000000000064ffff9c00000000000000000000000016f1ffffffffd6550900000449d1ffffffffd706000000000000000000000000000082ffffffffc200000000000000000000000000003affffffffa100000000000000188deffffffffffffffffffffffff8951d000000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080009deffffffdc6812000000147df8ffffffff46000000000000000000000086ffffffffc400000000000000000000000000000000000000000f77570200000000000000000000000038f7ffffffff3b0000000000000000000000000e549eecffffffffffffffffa41000000000000000000000000000000000000070ffffffff560000000000000000000000000099ccccccccccccccccccccfdfffff9cccccccccccccccccccc850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffffffeed2deffffffffffaf00000000000000000000000000aaffffffdd0f0000000000000000000000000000000000000000000000000000000082ffffffffff4c0000000000000000000000000000000029ffffffffffff870000000000000000000000000000000008f5ffffffff8500000000000000000000000000000000000000000000b6fffffff3ffffffffedcccccccccccccccccccccccccccccccccccccccc2f0000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffec0700000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000028edffffffffffffd85a02000000000000000000001279f3fffffffffff94d000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a000000000000000000000000000034ffffffffffd2cccccccccccccccccdd8edfffffffffffffffff360000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000000000000000060ffffff620000000000000000affeffffffffffffffffffffffffff7c0000000000000000000049fbfffffffffff8dad4f1fffffffffff233000000000000000000000000000008eaffffffff54000000000000000000000000000000cffffffff917000000001091f7fffffffffffffffffffffffffffffff8650000000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000041f8f57c06000000000000003efaffffffc5000000000000000000000012f1ffffffff4400000000000000000000000000000000000000000000000000000000000000000000000068ffffffffca000000000000000000000088fafffffffffffffffdd5ffffffe546000000000000000000000000000000000063ffffffff4900000000000000000000000000bfffffffffffffffffffffffffffffffffffffffffffffffffa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ffffffffffffffffffffffce0f000000000000000000000000000edbffffffad00000000000000000000000000000000000000000000000000000000d3fffffffff6090000000000000000000000000000000000d2ffffffffff300000000000000000000000000000000000b0ffffffffd6000000000000000000000000000000000000000000002ffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c0000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff820000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000000000000003af2ffffffffffffffe8a45d341f090a1a366cabf8ffffffffffffffa900000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e0000000000000000000000000000000034fffffffffffffffffffffffffffffffffffffffffffffffda11a0000000000000000000000000000000000000000000000000af0ffffffffffff760000000000000000000000000000000000000000000000000001c4ffffea110000000000000fffffffffffffffffffffffffffffff9c000000000000000000000051f1ffffffffffffffffffffffffe83c00000000000000000000000000000064fffffffdad020000000000000000000000000000003becffffff7f00000035defffffffffffffffee9d7d3e5feffffffffffff9800000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000d0e0000000000000000000096fffffffe1c000000000000000000000083ffffffffc400000000000000000000000000000000000000000000000000000000000000000000000002d9ffffffff3e00000000000000000009fffffffffffffffdab290172f9fffffb1a0000000000000000000000000000000056ffffffff3d000000000000000000000000009bffffffffffffffffffffffffffffffffffffffffffffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057e9fffffffffffffffda00b00000000000000000000000000000030f7ffffff6e000000000000000000000000000000000000000000000000000023ffffffffffb100000000000000000000000000000000000078ffffffffd800000000000000000000000000000000000061ffffffffff2700000000000000000000000000000000000000000000a5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffef13000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000000000000000031e6fffffffffffffffffffffffffffffffffffffffffffffffffffd3500000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000034ffffffffffffffffffffffffffffffffffffffffffe58d2100000000000000000000000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000000002ffcffff9600000000000015efffff8728282828287cffffab28281800000000000000000000000023acfefffffffffffffffffca3160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f9ffffffffffffbb5715000000001357c5ffffffffff7c000000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000048ffffffff47000000000000000000000010f0ffffffff440000000000000000000000000000000000000000000000000000000000000000000000006fffffffff9300000000000000000000e1ffffffffda7e1d0000000031d8ffe4060000000000000000000000000000000049ffffffff31000000000000000000000000001cc1f7f0dec1a17d593a1efaffffe724456687a8cae7f5f6b8130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e4f9edcf8b2d00000000000000000000000000000000000052ebfffff9350000000000000000000000000000000000000000000000000074ffffffffda2f0000000000000000000000000000000000000db8fcffe44500000000000000000000000000000000000008affbffffff770000000000000000000000000000000000000000000022faffffffffffffffffffffffffffffffffffffffffffffffffffffff3c00000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff6e0000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f0000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffdffdffffcd0300000000000000000000000000000000000000155792bcddf0faf9eedab88b500f000000000000000000000000000000000000000034fffffffffffffffffffffffffffffef4e8cba974370100000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000091fffffd3300000000000053fffff62d0000000064ffff9c00000000000000000000000000000000002777badef2f8e3bf7a2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c9ffffffffcb380000000000000000000063f9fffffffe400000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000000000000003affffffff5f0000000000000000000000007fffffffffc40000000000000000000000000000000000000000000000000000000000000000000000002affffffffd20000000000000000000090dda86d2400000000000000000b9c5100000000000000000000000000000000003dffffffff24000000000000000000000000000000000000000000000008fffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffbd020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054ddfffffffffffffffffffffffffffffffffff57a0799ffffff6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ee7ffffc90100000000000095ffffd90d00000064ffff9c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032fcfffd820400000000000000000000000058ffffffffc70000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000064ffffffff540000000000000000000000000eeeffffffff44000000000000000000000000000000000000000000000000000000000000000000000000f8fffffff80200000000000000000001000000000000000000000000000000000000000000000000000000000000000030ffffffff18000000000000000000000000000000000000000000000016fffffffe0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffe0180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000357bdfcffffffffffffffffffffffffdc7817000011eafffff11a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffff6500000000000007cfffffa700000064ffff9c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ae41000000000000000000000000000000b0ffffffff4100000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000000000bdaffffffff37000000000000000000000000007bffffffffc4000000000000000000000000000000000000000000000000000000000000000000000000e5ffffffff1100000000000000000000000000000000000000000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009437aaacbe6f3fdfaf1e1c6a4753f050000000000000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc80000000000000000000000000000000004437db0d7e9f8f7e7d4aa783b010000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe82800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175893bcddf0faf5e3d1aa6f3401000000000060ffffffa9000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffec1300000000000026f3ffff69000064ffff9c000000000024ffffffffffffffffffffffffffffffffffffffffffffffffffff280000000000000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000000000000000000000000000000000000000000000044ffffffff9000000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000000000019c4ffffffffe603000000000000000000000000000decffffffff440000000000000000000000000000000000000000000000000000000000000000000000e0ffffffff1600000000000000000000000000000000000000000000000000000000000000000000000000000000000016fffffffe01000000000000000000000000000000000000000000000031ffffffff1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000352aff5fffffffffffffffffffffffffffff2a73d000000000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000000000000002a97ebffffffffffffffffffffffffe48d1f00000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffda2200000000000000000000000000000000000000000000000000000035c7fbffffd217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffff47000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff9800000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000000000000000000000000000000002cfbffff99000000000000005bfffff8320064ffff9c000000000021ffffffffffffffffffffffffffffffffffffffffffffffffffff2800000885c6100000000000000000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000000000005fbffffffd800000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff0800000000000000000000000d78eeffffffffff7300000000000000000000000000000078ffffffffc40000000000000000000000000000000000000000000000000000000000000000000000f3fffffffe04000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000009fffffff30000000000000000000000000000000000000000000000003effffffff26000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056be2ffffffffffffffffffffffffffffffffffffffffcf6304000000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000000000027abfefffff9ba85553f2f2e3b5983c0f9fffffa9d1b00000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000000000000000000000000000000172faffffffcd13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ac8fcffdc0800000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff3100000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000000000000000000000000000000020ddfffffff35c000000000000000000000000000000000000000000000000000000000000008efffffd36000000000000009effffdd0f63ffff9c000000000003f3ffffffffffffffffffffffffffffffffffffffffffffffffff28000077ffffca0e000000000000000000000084ffffffffff7a000000a6ffffffffff5600000000000000000000000000000000000000000000000000000000e5fffffffb01000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff080000000000000000000d7deeffffffffffffbc030000000000000000000000000000000beaffffffff4400000000000000000000000000000000000000000000000000000000000000000025ffffffffec00000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000b8dc4c2b4987959381700fbffffe7011a3b5c7c9bb6c3c28506000000000000000000000000004cffffffff33000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041dafffffffffffffffffee8d7cfd6e4f2feffffffffffffffffd0350000000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc8000000000000000000000376f7ffffcf6010000000000000000000001169e0fffff1660000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffd34600000000000000000000000000000000000000000000000000000014b4ffffffffc60f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc90000000000000000000000000000000000000000000000001bd9ffffffff9f0b00000000000000000000000000000000000000000000000000000000000de6ffffcb020000000000000ad5ffffae5dffff9c0000000000006fffffffffffffffffffffffffffffffffffffffffffffffffff1a000018e8ffffa7000000000000000000000080ffffffffff75000000a2ffffffffff5100000000000000000000000000000000000000000000000000000000f0ffffffff14000000acffffffffa40000000000000000000000000000000000000000000000e4ffffffff08000000000000000473ebffffffffffffffb40a000000000000000000000000000000000074ffffffffc40000000000000000000000000000000000000000000000000000000000000000006fffffffffb500000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000088fffffffffffffffffff5fefffffcf7ffffffffffffffffff71000000000000000000000000005affffffff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048efeffffffffffeea6632f07000000000000032a5a8bcafffffffffffd8d00000000000038ffffffff7400000000000000000000000000000000000000000000000000000000000000e4ffffffc800000000000000000011beffffde4e0000000000000000000000000000000771ecffffad0a0000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000253bafcfffffffffffffffffffffffff9b34b010000000000000000000000000000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff62000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000005affffff68000000000000002bf6ffffbaffff9c000000000000007afffffffffc94aad6eefffffffffffffffffffffffffff893000000004bffffff550000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000000000000000000000000000000000000000001effffffffff1b000000acfffffffffffffffffffffff7e6d5ba83490d00000000000000000000e4ffffffff080000000000000ec1ffffffffffffffed6b0100000000000000000000000000000000000009e7ffffffff440000000000000000000000000000000000000000000000000000000000000006e0ffffffff6e00000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c00000000bdffffffffffffffffffffffffffffffffffffffffffffffffa50000000000000000000000000067ffffffff4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb9ffffffffffc355050000000000000000000000000000002076d9ffffffaf00000000000038ffffffff740000000000000000000000000002465f380000000000000000000000000000e4ffffffc8000000000000000022d9ffff980b00000000000000000000000000000000000012baffffcb170000000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000000000000000155792bcddf0faf9eedab88d521000000000000000000000000000000000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000000000000000000000000000000013cefffffffff76a0000000000000000000000000000000000000000000000000000000000beffffed140000000000000065ffffffffff9c000000000000000078ffffffffe62800000000000000000000000000000000000000000000b8ffffe507000000000000000000003bc7f1be31000000000051d1f0b4230000000000000000000000000000000000000000000000000000000093fffffffffe05000000acfffffffffffffffffffffffffffffffffff395290000000000000000e4ffffffff08000000000000b5fffffffffffff1821000000000000000000000000000000000000000000070ffffffffc4000000000000000000000000000000000000000000000000000000000000009bfffffffff41600000038ffffffffff240000000000000000000000000000000000000000000000c0ffffffffffffffffffffffffffffffffffffffffffffffffa80000000000000000000000000075ffffffff59000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc5ffffffffdb4800000000000000000000000000000000000000000258d3ff4300000000000038ffffffff7400000000000000000000000000a1ffffff7100000000000000000000000000e4ffffffc80000000000000018defffc6b000000000000000000000000000000000000000000038fffffcf0e0000000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001abfffffffffffaf0700000000000000000000000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff930000000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000029faffff9c0000000000000000a6ffffffff9c00000000000000000076ffffffffe72900000000000000000000000000000000000000000051ffffff5b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063ffffffffffe100000000acfffffffffffffffffffffffffffffffffffffffd8c07000000000000e4ffffffff0800000000003cfffffffffffe9612000000000000000000000000000000000000000000000008e5ffffffff44000000000000000000000000000000000000000000000000000000000aa1ffffffffff880000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000083ffffffff6600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b7ffffffff9909000000000000000000000000000000000000000000000000160000000000000038ffffffff7400000000000000000000000043fffffffff61b000000000000000000000000e4ffffffc80000000000000bd0fffe5c00000000000000044389a7bfc7bb9d6d28000000000000007bffffbf04000000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c0000000000000000000000000000000000000000000000000000000000065c7d808080805f000000000000000000000000000000000000000000000000000000008bfffffe38000000000000000ddbffffff9c0000000000000000000074ffffffffe82a000000000000000000000000000000000000000013ffffffaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169dffffffffffff9000000000acffffffffedccccccccccccd5e7fcffffffffffffffd41a0000000000e4ffffffff08000000000079fffffffffe5600000000000000000000000000000000000000000000000000006dffffffffc500000000000000000000000000004591dbe4914e1600000000012f7ce9ffffffffffd00b0000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000090ffffffff730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ffffffffe6f0000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000002d0ffffffffff9d000000000000000000000000e4ffffffc800000000000099ffff7b0000000000000a7deeffffffffffffffffffc537000000000000a4ffff8000000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcffffffffffffffffffff7400000ce4ffffce020000000000000031f8ffff9c000000000000000000000072ffffffffe92c0000000000000000000000000000000000000000f6ffffdc0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000000000000000003595f5fffffffffffffa2a00000000acffffffffa400000000000000000d48a2faffffffffffd41200000000e4ffffffff0800000000008cffffffffb100000000000000000000000000000000000000000000000000000007e3ffffffff4500000000000000000000000000dbfffffffffffff0d9d0dff3ffffffffffffffe31e000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000004dcaf2f0c43d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032fcffffff6d000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000061fffffffffffffd2d0000000000000000000000e4ffffffc8000000000049ffffbc0100000000003ae4fffffffffffffffffffffffffe99050000000008cbfffc35000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d00000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bcffffffffffffffffffff7400000057ffffff6b00000000000000000000000000000000000000000000000071ffffffffea2d0000000000000000000000000000000000000afefffff10000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000000000044292e1ffffffffffffffffff860000000000acffffffffa4000000000000000000000021c7ffffffffffb300000000e4ffffffff0800000000006dffffffff960000000000000000000000000000000000000000000000000000000069ffffffffc500000000000000000000000000aeffffffffffffffffffffffffffffffffffbd1500000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c8ffffff9800000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000ae5ffffffffffffffb60000000000000000000000e4ffffffc80000000002d5fff41e000000000052f7ffffffffffffffffffffffffffffffb3080000000035feffbf0000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed0800000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc0000000000000000003a505050c9ffffea5050502400000000bbffffef160000000000000000000000000000000000000000000000006fffffffffeb2e000000000000000000000000000000000046ffffffeb0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000000003291eaffffffffffffffffffffffa6020000000000acffffffffa400000000000000000000000005b9ffffffffff47000000e4ffffffff08000000000019f8ffffffe61100000000000000000000000000000000000000000000000000000006e0ffffffff4500000000000000000000000081ffffffffffffffffffffffffffffffd45a020000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004fffffffda0800000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000007fffffffffcbffffffff4200000000000000000000e4ffffffc8000000005bffff8a000000000033f9ffffffffe67d3412020c2b6fd0ffffffe31c0000000000a9ffff43000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff98000000000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000000000000000000000b0ffffe0000000000000000027f9ffff9f000000000000000000000000000000000000000000000000006effffffffec3000000000000000000000000000000000adffffffcc0000acffffffffa4000000000000000000000000000000000000000000000000000000000000000157d2fffffffffffffffffffffffffc8003000000000000acffffffffa4000000000000000000000000000fe7ffffffffc4000000e4ffffffff080000000000006fffffffffcc1900000000000000000000000000000000000000000000000000000065ffffffffc500000000000000000000000054ffffffeb7ba4cbe2f0fbecd8bc7d390100000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c7ffffff460000000000000469c0ecf9e1bb6610000000000b72cbedfae2ae5b0500000000000000000038ffffffff7400000000000000000019f4ffffffe823fcffffffcd01000000000000000000e4ffffffc800000000c7fff715000000000bddffffffff980b00000000000000015fedeb2800000000000022fcffaf000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff280000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb23000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff310000000000000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff28000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000b4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc00000000000000000000000000b0ffffe000000000000000000088fffffe3a000000000000000000000000000000000000000000000000006cffffffffed31000000000000000000000000000026ffffffff910000acffffffffa40000000000000000000000000000000000000000000000000000000000001dc3fffffffffffffffffffffffffeb12e0000000000000000acffffffffa400000000000000000000000000006ffffffffffd170000e4ffffffff080000000000000081ffffffffe84e000000000000000000000000000000000000000000000000000004deffffffff45000000000000000000000027fffffffb05000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffc300000000000015ccffffffffffffffef61000014d8ffffffffffffffdb3f000000000000000038ffffffff740000000000000000009dffffffff7700a4ffffffff5b000000000000000000e4ffffffc800000023ffffab000000000075ffffffff8c000000000000000000000011170000000000000000b4fff910000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe82800000000000000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc900000000000000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc40000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf0000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf00000000000000008fccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaf00000000000000000000000000b0ffffe00000000000000000000be2ffffd003000000000000000000000000000000000000000000000000006afeffffffee330000000000000000000000000014d3ffffff370000acffffffffa4000000000000000000000000000000000000000000000000000000000028eaffffffffffffffffffffffe3832200000000000000000000acffffffffa4000000000000000000000000000016feffffffff5f0000e4ffffffff08000000000000000051f0ffffffff9c070000000000000000000000000000000000000000000000000062ffffffffc5000000000000000000000003f7ffffff2c000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000087ffffff51000000000002c3ffffffffffffffffffff89009bfffffffffffffffffffe7c0000000000000038ffffffff7400000000000000002efdffffffe60c0025faffffffe0070000000000000000e4ffffffc800000075ffff530000000007e7ffffffcb040000000000000000000000000000000000000000005bffff5c000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe0180000000000000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff6200000000000000000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff580000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000000053ffffff6e000000000000000000000000000000000000000000000000000068feffffffef33000000000000000000000000000143a9b7000000acffffffffa40000000000000000000000000000000000000000000000000000000010e1ffffffffffffffffffec9c4703000000000000000000000000acffffffffa4000000000000000000000000000000d7ffffffff800000e4ffffffff0800000000000000000022cbffffffffc81a00000000000000000000000000000000000000000000000004dbffffffff450000000000000000000000cdffffff58000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffed06000000000058fffffffc7b1a052170eaffff78f4ffffc13409185ad4ffffff7c00000000000038ffffffff740000000000000000bbffffffff6100000093ffffffff730000000000000000e4ffffffc8000000acffff150000000047ffffffff4c0000000000000000000000000000000000000000000019ffff9400000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a000000000000000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000000000b8fffff017000000000000000000000000000000000000000000000000000066feffffffee3000000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000000000000091fffffffffffffff6a34504000000000000000000000000000000acffffffffa4000000000000000000000000000000beffffffff980000e2ffffffff0c000000000000000000000695ffffffffd7100000000000000000000000000000000000000000000000005effffffffc50000000000000000000000a0ffffff83000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffdffffa8000000000000b6ffffff85000000000018d4fffffffff2140000000009a8ffffff46000000000038ffffffff74000000000000004affffffffce0200000013f0ffffffee1100000000000000e4ffffffc8000000e0ffe200000000008affffffe9010000000000000000000000000000000000000000000000e7ffca00000000000000000015f9fffffffa1600000000000000000000000095ffffffff8900000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff93000000000000000000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff8900000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000097fff7b4160000000000000000000000004cffffffffffffffffffffffffffc00000000000000000000000000000b0ffffe0000000000000000000000025f8ffffa200000000000000000000000000000000000000000000000000000066feffffffec2d000000000000000000000000000000000000acffffffffedccccccccccccc3b3a28751180000000000000000000000000000000ef9fffffffffff98714000000000000000000000000000000000000acffffffffa4000000000000000000000000000000b8ffffffff9f0000d0ffffffff1e0000000000000000000000008fffffffff9d00000000000000000000000000000000000000000000000003d8ffffffff450000000000000000000073ffffffaf000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040ffffff6c000000000000eefffffc1100000000000021f2ffffffc000000000000005c1ffffe10d0000000038ffffffff7400000000000003d5ffffffff3f000000000075ffffffff8c00000000000000e4ffffffc8000001fdffbf0000000000c2ffffffaa000000000000000000000000000000000000000000000000c1ffe900000000000000000000a7ffffffff7600000000000000000000000af0fffffffe23000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed1100000000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe2300000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000011ebffffbc0000000000000000000000003affffffffffffffffffffffffffc00000000000000000000000000000b0ffffe000000000000000000000000085ffffff3d0000000000000000000000000000000000000000000000000000006bffffffffea290000000000000000000000000000000000acffffffffffffffffffffffffffffffffffd1670b00000000000000000000000059ffffffffffe3300000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000cdffffffff880000b9ffffffff3900000000000000000000000003d1fffffffd190000000000000000000000000000000000000000000000005affffffffc50000000000000000000046ffffffdb000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffff3f000000000008ffffffe000000000000000007dffffffbc0000000000000025fbffff720000000038ffffffff7400000000000067ffffffffae00000000000007dffffffff81f000000000000e4ffffffc8000010ffffaf0000000000daffffff83000000000000000000000000000000000000000000000000b0fffa0000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc40000000000000000000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000000000063ffffff5b000000000000000000000001b9ffffffffffffffffffffffffba0000000000000000000000000000b0ffffe000000000000000000000000009e0ffffd2040000000000000000000000000000000000000000000000000000007cffffffffe11900000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffee6200000000000000000000008bfffffffff627000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000008f7ffffffff6f000093ffffffff75000000000000000000000000006effffffff5c00000000000000000000000000000000000000000000000002d5ffffffff4500000000000000000019fffffffd090000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084ffffff1d00000000000bffffffcf000000000000000010f9ffffd400000000000000009fffffde0200000038ffffffff7400000000000de9fffffff9230000000000000058ffffffffa4000000000000e4ffffffc800001bffffa30000000000eeffffff70000000000000000000000000000000000000000000000000a8ffff0700000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe90500000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff58000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000001c7ffffe70e00000000000000000000000abcfffff69dbacbccccccccc74f0000000000000000000000000000b0ffffe00000000000000000000000000050ffffff710000000000000000000000000000000000000000000000000000000097ffffffffcc07000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffb30c000000000000000000a2ffffffff9200000000000000000000000000000000000000000000acffffffffa400000000000000000000000000004dffffffffff3100004affffffffc8000000000000000000000000004fffffffff740000000000000000000000000000000000000000000000000057ffffffffc500000000000000000000ecffffff320000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093ffffff08000000000000f3ffffe6000000000000000000b3fffffb090000000000000041ffffff3f00000038ffffffff74000000000085ffffffff8b000000000000000000c8fffffffe320000000000e4ffffffc800000effffac0000000000edffffff71000000000000000000000000000000000000000000000000b6fff9000000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe70400000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe7040000000000000000000000000000000031fcffff9000000000000000000000000008b8ffffc70f000000000000000000000000000000000010000000b0ffffe00000000000000000000000000000b5fffff21900000000000000000000000000000000000000000000000000000004bfffffffff91000000000000000000000000000000acffffffffa4000000000000091a3d79d0ffffffffffffbe080000000000000000adffffffff5700000000000000000000000000000000000000000000acffffffffa40000000000000000000000000001cbffffffffe500000008f1ffffffff410000000000000000000000006fffffffff620000000000000000000000000000000000000000000000000001d1ffffffff45000000000000000000bfffffff5e0000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffd00000000000000d2fffffe16000000000000000069ffffff3e0000000000000002f4ffff7e00000038ffffffff74000000001df6ffffffeb0f0000000000000000003bffffffffbd0000000000e4ffffffc8000001fcffc00000000000d6ffffff84000000000000000000000000000000000000000000000000c8ffe8000000000000000000000011f7fffffff914000000000000000090ffffffff84000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a0000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000095fffffc2e00000000000000000000000007b3ffffcb110000000000000000000000000000004bfccb1f00b0ffffe0000000000000000000000000000023f7ffffa5000000000000000000000000000000000000000000000000000000001beeffffffff3b0000000000000000000000000000acffffffffa4000000000000000000000047e1ffffffffffa0000000000000000097ffffffff4800000000000000000000000000000000000000000000acffffffffa40000000000000000000000000088ffffffffff7b000000007dffffffffe0120000000000000000000002d0ffffffff29000000000000000000000000000000000000000000000000000042ffffffffc500000000000000000092ffffff890000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dfffffc000000000000008cffffff60000000000000000024ffffff810000000000000000c4ffffbc00000038ffffffff7400000000a3ffffffff690000000000000000000000adffffffff4900000000e4ffffffc8000000deffe50000000000bdffffffb0000000000000000000000000000000000000000000000001f0ffc8000000000000000000000000a2ffffffff730000000000000008edfffffffd1f000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff2800000000000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f00000000000000000000000000000000000010e9ffffc30100000000000000000000000005aeffffcf14000000000000000000000000000ae8ffffea3fabffffe000000000000000000000000000000081ffffff400000000000000000000000000000000000000000000000000000000064ffffffffce0100000000000000000000000000acffffffffa400000000000000000000000011cefffffffffe390000000000000072ffffffff6900000000000000000000000000000000000000000000acffffffffa400000000000000000000000a97ffffffffffe409000000000be4ffffffffd42200000000000000000497ffffffffc80000000000000000000000000000000000000000000000000000000092ffffffff40000000000000000065fffffffffffffffffffffffffffffffff2c02b0000000038ffffffffffd3cccccccccccccccccccccccccccc5f00000000000000000000000000000000000000f4ffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008effffff070000000000003effffffcd000000000000000000dfffffc700000000000000009fffffdb00000038ffffffff7400000033feffffffd403000000000000000000000024faffffffd202000000e4ffffffc8000000aaffff1a0000000081ffffffee040000000000000000000000000000000000000000000026ffff920000000000000000000000003bffffffffd8000000000000005bffffffffb600000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb0000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000000000000000000061ffffff5f0000000000000000000000000004a9ffffd316000000000000000000000000005ff9fffffbdeffffe000000000000000000000000000000008ddffffd40500000000000000000000000000000000000000000000000000000003d6ffffffff4800000000000000000000000000acffffffffa40000000000000000000000000019efffffffffbd0000000000000026ffffffffba00000000000000000000000000000000000000000000acffffffffa40000000000000000073783e8fffffffffff63d00000000000036f6fffffffff69034020000000f57cdfffffffffe3b00000000000000a9feffffffffffffffffffffffffffffffffffffffffffffffffa2000000000000000039ffffffffffffffffffffffffffffffffffffc00000000038ffffffffff24000000000000000000000000000000000000000000000099ccccccccccccccccccccfdfffff9cccccccccccccccccccc850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dffffff2000000000000000c8ffffff5700000000000000009bfffffc100000000000000090ffffee00000038ffffffff74000000c0ffffffff470000000000000000000000000090ffffffff62000000e4ffffffc800000072ffff5c0000000037ffffffff5a000000000000000000000000000000000000000000006bffff5900000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e00000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff58000000000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e00000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e000000000000000000000000000000000000000001c4ffffe9100000000000000000000000000003a7ffffd618000000000000000000000000003feeffffffffffe0000000000000000000000000000000004cffffff74000000000000000000000000000000000000000000000000000000006bffffffffb100000000000000000000000000acffffffffa4000000000000000000000000000078fffffffffc1400000000000000c8ffffffff4b0000000000000000000000003bb770000000000000acffffffffedccccccccccccd5e5fafffffffffffffff64b00000000000000004ff6fffffffffffff4ddd1e0fdffffffffffff720000000000000000f7ffffffffffffffffffffffffffffffffffffffffffffffffffca00000000000000000dfeffffffffffffffffffffffffffffffffffe30000000038ffffffffff240000000000000000000000000000000000000000000000bfffffffffffffffffffffffffffffffffffffffffffffffffa70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffff440000000000000044ffffffef210000000000000056ffffff510000000000000087fffffe00000038ffffffff74000050ffffffffb5000000000000000000000000000012eeffffffe4090000e4ffffffc800000020feffb40000000002d7ffffffd80a000000000000000000000000000000000000000000c4fff80f000000000000000000000000006cffffffffa4000000000027ffffffffe30300000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c000000000000000076ffffffffab000000000000000000000000002fffffffffea0600000000000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe3030000000000000000000000000000000000000000002ffcffff93000000000000000000000000000005b6ffffd50f0000000000000000000000000026dcffffffffe00000000000000000000000000000000000b3fffff31b00000000000000000000000000000000000000000000000000000014fefffffff305000000000000000000000000acffffffffa400000000000000000000000000001afeffffffff5d000000000000003ffffffffff247000000000000000000108ffdffff380000000000acffffffffffffffffffffffffffffffffffffffffc727000000000000000000002dd7fffffffffffffffffffffffffffff86b000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000dfffffffffffffffffffffffffffffffffffe40000000038ffffffffff2400000000000000000000000000000000000000000000009bffffffffffffffffffffffffffffffffffffffffffffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002affffff7a000000000000000096ffffffde2500000000000013feffff960000000000000092fffff400000038ffffffff740005d9fffffffb2900000000000000000000000000000073ffffffff7a0000e4ffffffc800000000c4fffb230000000057ffffffffa3020000000000000000000000000000000000000029feffac00000000000000000000000000000ff5fffffff712000000008cffffffff7f000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000000015f9fffffffa1600000000000000000000000095ffffffff890000000000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f000000000000000000000000000000000000000000000092fffffc3100000000000000000000000000000ddcffffb9030000000000000000000000000014c4ffffffe000000000000000000000000000000000001fefffffa800000000000000000000000000000000000000000000000000000000d7ffffffff32000000000000000000000000acffffffffa4000000000000000000000000000000d8ffffffff7f000000000000000097fffffffffeaa420800000003338cefffffffffbe0000000000acfffffffffffffffffffffffffffffffffffebc55030000000000000000000000000868dcfffffffffffffffffffffeaf2d00000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffd0000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000001cc1f7f0dec1a17d593a1efaffffe724456687a8cae7f5f6b81300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f4ffffbc000000000000000005c3ffffffec60010000000000cdffffdb00000000000000a7ffffe300000038ffffffff74006dffffffff930000000000000000000000000000000006ddfffffff11500e4ffffffc80000000057ffffa70000000001c2ffffffffb319000000000000000032c9da1a000000000000a7ffff400000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff61000000000000000000a7ffffffff7600000000000000000000000af0fffffffe230000000000000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000000000000000000000000fe8ffffc70100000000000000000000000000003affffff61000000000000000000000000000007a6ffffe000000000000000000000000000000000000037cefcff43000000000000000000000000000000000000000000000000000000b9ffffffff49000000000000000000000000acffffffffa4000000000000000000000000000000beffffffff98000000000000000004b6fffffffffffff9dfd0dcf4ffffffffffffffec1700000000acfffffffffffffffffffffff7e8d8c3915c200000000000000000000000000000000000033c7dbbd8ecfbecd9b47126000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000008fffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aefffffc1700000000000000000bb0ffffffffd0732e120829bcffffff20000000000000cbffffcb00000038ffffffff7310ecffffffef13000000000000000000000000000000000056ffffffff9300e4ffffffc80000000001d2fffe320000000017e3fffffffff5954a1d070a225ab3feffffb9010000000035fdffbd0000000000000000000000000000000036ffffffffd400000057ffffffffb100000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800000000000000000040ffffffffdb010000000000000000000060ffffffffbb0000000000000000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb10000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000005effffff62000000000000000000000000000000baffffe20200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028aad3f4d92a0000000000000000000000000000adffffffff55000000000000000000000000acffffffffa4000000000000000000000000000000b9ffffffff9e000000000000000000048bffffffffffffffffffffffffffffffffb2180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000016fffffffe01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffff79000000000000000000027ff6ffffffffffffffffffffffff65000000000009f9ffff9700000038ffffffff6e8bffffffff7100000000000000000000000000000000000000c6fffffffa24e0ffffffc8000000000047ffffc907000000002de0ffffffffffffffffffffffffffffffe11800000007d5fffb330000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b00000000000000000000d7ffffffff4200000000000000000000c6ffffffff5300000000000000000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff490000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff490000000000000000000000000000000000000000000000000000c2ffffeb11000000000000000000000000000067ffffff2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019ffffffffa60000000000000000000000000000c0ffffffff3f000000000000000000000000acffffffffa4000000000000000000000000000000ceffffffff8800000000000000000000003abafffffffffffffffffffffffbaa3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000023ffffffff0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffe909000000000000000000001da0fbffffffffffffffffffffa800000000004affffff6000000038ffffffff82f8ffffffda050000000000000000000000000000000000000039ffffffffabd6ffffffc800000000000097ffff9f000000000015bbffffffffffffffffffffffffffc117000000009dffff7e00000000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000000000000000071ffffffffa70000000000000000002bffffffffe704000000000000000000000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000002dfbffff970000000003b9e4f05500000000005dffffff460000000000000000000019649ecfe3f3fae9d6ac6f2900000000000000000000033b697a6e541600000000000000000000ddfffffff20a00000000000000000000000003eeffffffff24000000000000000000000000acffffffffa400000000000000000000000000000bf8ffffffff6e000000000000000000000000002a72b5d6ebfbeddac5915416000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000368acce7fbf2d4a050030000000060f8ffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000031ffffffff1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081ffffff800000000000000000000000001667a7d1eefaf9edcfa15f0f0000000000a9fffffb1700000038ffffffffebffffffff4f000000000000000000000000000000000000000000aafffffffff1ffffffc80000000000000acfffff7100000000000049cbffffffffffffffffffda5700000000007effffbd030000000000000000000000000000000000000cf2ffffffee057effffffff7b00000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000000000011f7fffffff914000000000000000090ffffffff8400000000000000000000000000000000000000000000000000000ff5fffffff712000000008cffffffff7f0000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b0000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000008ffffffd3300000000cfffffe60c0000000099ffffff30000000000000000027a5faffffffffffffffffffffffbe4a000000000000000080fffffffffffeb830000000000000000081ffffffff770000000000000000000000004affffffffe000000000000000000000000000acffffffffa4000000000000000000000000000056ffffffffff2d00000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000001fb2ffffffffffffffffffdc44000000c1ffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000003effffffff2600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f1fffff72b00000000000000000000000000000000000000000000000000000031fdffffb40000000038ffffffffffffffffbd0000000000000000000000000000000000000000000022f9ffffffffffffffc80000000000000017dcffff7600000000000000216b9bb2c5b6a07c2f0000000000018bffffcd0d000000000000000000000000000000000000000098ffffffff46d2fffffffb1800000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000000000000000000000a2ffffffff730000000000000008edfffffffd1f0000000000000000000000000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb180000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000ee6ffffc9020000006dffffffbe2200046afdffffe702000000000000006ff6ffffffffffffffffffffffffffffffa9130000000000006cfffffffffffffff8530000000000000018f9fffffff7330000000000000000000009d2ffffffff8c00000000000000000000000000acffffffffa40000000000000000000000000006d7ffffffffe00000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000032eefffffffffffffffffffffffe960700e2ffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000004cffffffff330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071ffffffd50c0000000000000000000000000000000000000000000000000000c0ffffff4b0000000038fffffffffffffffd2f00000000000000000000000000000000000000000000008dffffffffffffffc8000000000000000020d7ffffa50d00000000000000000000000000000000000016b1ffffc91500000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000000000000000000000003bffffffffd8000000000000005bffffffffb60000000000000000000000000000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000005bffffff6600000005ccffffffffecf9ffffffff640000000000000088fffffffffffffff1dbd2e7fdffffffffffffdf1d000000000053fffffffffffffffff72c0000000000000081ffffffffef4500000000000000000eb5fffffffff21900000000000000000000000000acffffffffa400000000000000000000000002a6ffffffffff6f000000000000000000000000000000f3ffc30600000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000027eefffffffffffff4dad0e6ffffffffb60dfcffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000005affffffff400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c6ffffffbb060000000000000000000000000000000000000000000000006bffffffc1000000000038ffffffffffffff9b00000000000000000000000000000000000000000000000011edffffffffffffc800000000000000000010bdffffe4570100000000000000000000000000000463ebffffab090000000000000000000000000000000000000000000000c9ffffffffffffffff4400000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff44000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff4400000000000000000000000000000000000000000000000000000000000000c0ffffed1300000013befffffffffffffffd7e000000000000006afffffffffff68c30000000001159caffffffffffdb160000000008464c5c96f6ffffffffb00000000000000004c8ffffffffffab4206000000186ce1ffffffffff700000000000000000000000000000acffffffffa4000000000000000000000022bfffffffffffd905000000000000000000000000000000e2ffff3600000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000001c1ffffffffffb83e030000001b72e7ffffccffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000067ffffffff4d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026efffffffbb0c0000000000000000000000000000000000000000000057fdfffffa32000000000038fffffffffffff2170000000000000000000000000000000000000000000000000070ffffffffffffc8000000000000000000000375f7ffffd2620e00000000000000000000196fdefffff0640000000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe403000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc0100000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc01000000000000000000000000000000000000bcffffffffffffffffffff74002bfbffff9a00000000004daae0f7f5d8972e0000000000000024f5ffffffffcc2100000000000000000067f9ffffffffa80000000000000000003bfcfffffffd120000000000000012ccfffffffffffff6dbd2e5ffffffffffffff96000000000000000000000000000000acffffffffa400000000000008183468b3fdffffffffffec2b00000000000000000000000000000000d0ffff4900000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000059ffffffffff7e000000000000000014b4ffffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000075ffffffff5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042faffffffd52b000000000000000000000000000000000000000064faffffff7300000000000038ffffffffffff79000000000000000000000000000000000000000000000000000005dbffffffffffc800000000000000000000000026a9fdfffff6bb7e573a2d32425b8fc6fdfffffa9c1b00000000000000000000000000000000000000000000000000000af0ffffffffffff760000000000000000000000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000000000000000ff5fffffff712000000008cffffffff7f0000000000000000000000000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff7600000000000000000000000000000000000000bcffffffffffffffffffff7400008dfffffe3700000000000000000000000000000000000000aaffffffffd00e00000000000000000000004bfdffffffff45000000000000000000b6ffffffff4800000000000000000fa5fffffffffffffffffffffffffffffc8102000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffffe6340000000000000000000000000000000000bfffff5b00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000c2ffffffffab000000000000000000000197ffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000000083ffffffff66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cfbfffffff781090000000000000000000000000000000017b2ffffffffa50100000000000038ffffffffffdf0800000000000000000000000000000000000000000000000000000053ffffffffffc800000000000000000000000000002995e9ffffffffffffffffffffffffe18c1f000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d0000000000000000000000000000009dffffffff6f00000006ebfffffffc1c0000000000000000000000000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000003a505050c9ffffea5050502400000de5ffffcc02000000000000000000000000000000000028fdfffffff828000000000000000000000000008affffffffb900000000000000000081ffffffff64000000000000000000004ac5fffffffffffffffffffffeb6360000000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffa111000000000000000000000000000000000000adffff6d00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000024fffffffffd21000000000000000000000002abffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000090ffffffff7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bf5ffffffffe87817000000000000000000000000309bf5ffffffffa5030000000000000038ffffffffe9440000000000000000000000000000000000000000000000000000000000a0f9ffffffc800000000000000000000000000000000033f79add6e7f8f6e5d3a7743701000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000000000000000036ffffffffd400000057ffffffffb1000000000000000000000000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000000000000002cffffffffffa7000000000000000000000000000000000000000000000000b0ffffe00000000000000059ffffff6900000000000000000000000000000000008fffffffff91000000000000000000000000000011f6fffffffb0f000000000000000071ffffffff720000000000000000000000002e77b1dbedfbeddaaf722700000000000000000000000000000000000000acffffffffffffffffffffffffffffffffffec8e2900000000000000000000000000000000000000009fffff7e00000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000068ffffffffc0000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000000000000000004dcaf2f0c43d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d9fffffffffffcbc7b46210e03102335609bd6fffffffffffd81020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb0000000000000000000000000000000000000ceffffffff3a0000bcffffffff49000000000000000000000000000000000000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000bdffffee1500000000000000000000000000000000dafffffff617000000000000000000000000000000b3ffffffff40000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffedcccccccccccbc3b4a5905f2a020000000000000000000000000000000000000f6ab5e7fffffffef4dcb274200000000000000000000038ffffffffff24000000000000000000000000000000000000000000009affffffff76000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a92fdffffffffffffffffffffffffffffffffffffffffdb43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a3e7fae1961e000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000000000000000000000000000067ffffffff9d0021feffffffe00200000000000000000000000000000000000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe0000000000000000029faffff9e000000000000000000000000000000000b69bfd3600000000000000000000000000000000088ffffffff5f000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000000000000000000000000000000000c8ff6fffffffffffffffffffffffeb22d000000000000000038ffffffffff2400000000000000000000000000000000000000000000caffffffff4b000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029aafeffffffffffffffffffffffffffffffffe774060000000000000000000000000000000000000000000000000004437db0d7e9f8f7e7d4aa783b0100000000000000000000000000000000000000001574b6e3f6faebca9b550a000000000000000000001e76b9e5f8f5dfc8954e0d000000000000000000000000000000000000000000004df7fffffffffff03d000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000000000000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffe00000000000000000008afffffe3a00000000000000000000000000000000000000000000000000000000000000000000000080ffffffff67000000000000000070ffffffff740000000000000000000001245065727c705f481400000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000000003ee2fffffffffffffffffffffffffffffffa740000000000000038ffffffffff2400000000000000000000000000000000000000000000e1ffffffff28000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002581dcfffffffffffffffffffffff5b55805000000000000000000000000000000000000000000000000002a97ebffffffffffffffffffffffffe48d1f000000000000000000000000000000000278f8ffffffffffffffffffed8108000000000000139dfbfffffffffffffffffff89f23000000000000000000000000000000000000001bf4ffc8360f40d9ffeb100000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b00000000000000000000000000000000000000000098ffffffff46d2fffffffb18000000000000000000000000000000000000000000000000000000000000000000000093fffffffffff915000000000000000000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000000000000000000000000000000000000000000003effff91000000001679cef8f2bb3f000000000000000000000000000000000000000000b0ffffe00000000000000000000be3ffffcf03000000000000000000000000000000000000000000000000000000000000000000000096ffffffff58000000000000000070ffffffff74000000000000000658adf3ffffffffffffffffffda8b2400000000000000000000000000000000000000acffffffffa40000000000000000000000000000000000000000000000000000004bf7fffffffffffffbfffff5d7f0ffffffffffff8c00000000000038ffffffffff2400000000000000000000000000000000000000000000f0ffffffff1b000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022588ca7b8c7bfb1986d4007000000000000000000000000000000000000000000000000000027abfefffff9ba85553f2f2e3b5983c0f9fffffa9d1b00000000000000000000000000009bffffffffffffffffffffffffffda290000000035e6fffffffffffffffffffffffffff87701000000000000000000000000000000000082fff4170000002bfdff6d000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000000000000000000000030ffffffffb1ffffffffac0000000000000000000000000000000000000000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff9203000000000000000000000000000000000000000000000017fffff04008359ff9fffffffffffc4f0000000000000000000000000000000000000000b0ffffe00000000000000000000056ffffff6d0000000000000000000000000000000000000000000000000000000000000000000000cdffffffff35000000000000000070ffffffff740000000000005ce0fffffffffffffffffffffffffffffeab1a0000000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000034fafffffffffca53d46ffffd400012e8ef4ffffffe70e000000000038ffffffffff2400000000000000000000000000000000000000000000fdffffffff0f000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000035c7fbffffd2170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000376f7ffffcf6010000000000000000000001169e0fffff1660000000000000000000000005cfffffffffffff9d7d2e7ffffffffffef31000030f1fffffffffffbe2d0dbf4ffffffffffffa30200000000000000000000000000000000b4ffc20000000000dbffa0000000000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e00000000000000000000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028effffffff9724b4fffffffb690000000000000000000000000000000000000000000000000000beffffffffffffffffffffffffffe70600000000000000000000000000000000000000b0ffffe00000000000000000000000bbfffff01700000000000000000000000000000000000000000000000000000000000000000030fffffffff104000000000000000070ffffffff74000000000299fffffffffffffffffffffffffffffffffffff15100000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000000ad9ffffffffe339000030ffffe60000000017a5fffa3d00000000000038ffffffffff2400000000000000000000000000000000000000000000f8ffffffff16000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000172faffffffcd1300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011beffffde4e0000000000000000000000000000000771ecffffad0a00000000000000000000deffffffffe65d080000001d74e8ffffffe2150ddcffffffffd3570d000000033089effffffff92700000000000000000000000000000000b2ffc50000000000dfff9d00000000000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066fbffffffffffffffef4400000000000000000000000000000000000000000000000000000028edfffffffffffffff5d6e3ffffff4100000000000000000000000000000000000000b0ffffe0000000000000000000000027f9ffffa100000000000000000000000000000000000000000000000000000000000000000bc9ffffffff9100000000000000000070ffffffff740000000083fffffffffffdc78d69574e556488bbf8fffffffffc5d000000000000000000000000000000acffffffffa4000000000000000000000000000000000000000000000000007cffffffffe9210000001efffff8000000000000382d0000000000000038ffffffffff2400000000000000000000000000000000000000000000e7ffffffff23000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffffd50e00000000000000000000000005cdffffffe7020000000000000000000000000000000022d9ffff980b00000000000000000000000000000000000012baffffcb1700000000000000002dfffffffff0210000000000000015c2ffffff9788ffffffff90030000000000000000119effff6b00000000000000000000000000000000007cfff71e00000034feff680000000000000000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f00000000000000000000000000000000000000000000000000000000000af0ffffffffffff7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042eeffffffffffdb28000000000000000000000000000000000000000000000000000000000022a3e9f8e1b97a370300007fffff6600000000000000000000000000000000000000b0ffffe000000000000000000000000087ffffff3d0000000000000000000000000000000000000000000000000000000000002cc9ffffffffec1800000000000000000070ffffffff740000001dfcffffffff981d0000000000000000000e75f2fffffff82d0000000000000000000000000000acffffffffa400000000000000000000000000000000000000000000000007e9ffffffff4a000000000cffffff0a000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000d3ffffffff3e000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016fdffffffff690000000000000000000000004dffffffffff3b00000000000000000000000000000018defffc6b000000000000000000000000000000000000000000038fffffcf0e000000000000005bffffffff8900000000000000000010dbfffffbf7ffffff9c000000000000000000000000404f00000000000000000000000000000000000017f1ffd64a2455e3ffe70d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c00000000000000000000000000000000000000000000000000000000000025808080807c1300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000b0ffffe00000000000000000000000000ae1ffffd2040000000000000000000000000000000000000000000000000001215db6fcfffffffff8470000000000000000000070ffffffff7400000074ffffffff6b0000000000000000000000000025e6ffffffc400000000000000000000000000000000000000000000000000000000000000000000000000000000000000005bffffffffba000000000000faffff1c000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000a5ffffffff6e000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000000000000027ffcffffffffb809000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066ffffffffffbe000000000000000000000000a2ffffffffff8d00000000000000000000000000000bd0fffe5c0000002b8c8c8c890000000000000000001c7e8c8c8c52007bffffbf040000000000006fffffffff4e000000000000000000004fffffffffffffe20c00000000000000000000000000000000000000000000000000000000000000000049f5ffffffffffee3900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffffffa7000000000000000000000000000000000000000000000000000000000000000010e5fffffff729000000000044ffffffffd20500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfccb1f00b0ffffe00000000000000000000000000053ffffff700000000000000000000000000000000000000000000073d2e1f7ffffffffffffffe844000000000000000000000070ffffffff7400000097ffffffdb0000000000000000000000000000004fffffffff2d000000000000000000000000000000000000000000000000000000000000000000000000000000000000009effffffff58000000000000e9ffff2e000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000006bffffffffab000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000001abfffffffffffaf07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b9fffffffffffd170000000000000000000006efffffffffffdf000000000000000000000000000099ffff7b0000000050fffffffc00000000000000000adaffffffef1d0000a4ffff8000000000000062ffffffff440000000000000000000000ddffffffffff700000000000000000000000000000000000000000000000000000000000000000000000279fe5f9df931c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcc000000000000000000000000b4ffff54000000000ae8ffffea3fabffffe00000000000000000000000000000b8fffff11900000000000000000000000000000000000000000090fffffffffffffffff48e1400000000000000000000000070ffffffff740000008cffffffb600000000000000000000000000000004fbffffff6f00000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000000ddfffffffe0e000000000000d7ffff40000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000029fffffffff80f0000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffff7800000000000000000038ffffffffffd3cccccccccccccccccccccccccccc5f0000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010faffffffffffff69000000000000000000004bffffffffffffff3200000000000000000000000049ffffbc010000000050fffffffc000000000000000094ffffffff5a00000008cbfffc35000000000037ffffffff72000000000000000000000097fffffffffa0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffff7d00000000009cffffffffff350000000000000000000000000020b4f6e98306000000000000000013a1f2f0970e0000000000000000088becf5ac1c0000000000000000000000004cffffff2c0000000000003cffffcc000000000000000000000000b4ffff5400000000005ff9fffffbdeffffe0000000000000000000000000000025f8ffffa500000000000000000000000000000000000000000090fffffffffffff8780e000000000000000000000000000070ffffffff740000004bffffffdf00000000000000000000000000000005faffffff8d00000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000006ffffffffdb00000000000000c5ffff52000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000c3ffffffff8400000000000000000000000063ffffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccc5f00000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005effffffd3feffffbf000000000000000000009fffffffd5ffffff85000000000000000000000002d5fff41e000000000050fffffffc0000000000000042feffffffa7000000000035feffbf000000000000d5ffffffe1110000000000000000000071ffffffffc6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020ddfffffff35c0000000000000000000000000000000000000000000000000000000000000000000005e7ffffffff4c00000000000000000000000000000000000000000000000000000000000000000de1fffffff52400000000003dfeffffffcb030000000000000000000000000de1ffffffff9a0000000000000002c8ffffffffbc0000000000000000a3ffffffffdc0a00000000000000000000004cffffff2c0000000000003cffffcc000000002ad9e04200000000b4ffff540000000000003feeffffffffffe000000000000000000000000000000085ffffff40000000000000000000000000000000000000000090fffffffffffffffeb6350000000000000000000000000070ffffffff7400000001c5ffffff68000000000000000000000000000078ffffffff8100000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000000000019ffffffffbd00000000000000b3ffff64000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccc5f000000000000000057fffffffff9320000000000000000000017e1ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ffffff91cefffffd17000000000000000005eefffffd69ffffffd700000000000000000000005bffff8a00000000000050fffffffc0000000000000ee1ffffffe311000000000000a9ffff43000000000055ffffffffcb220000000000000000005dffffffff8c000000000000000000000000000000000000000084fffffff9960000000000000000000000000000000000000000000000000032e2fffffff30d00000000000000000000000000000000000000001bd9ffffffff9f0b000000000000000000000000000000000000000000000000000000000000000056ffffffffffb500000000000000000000000000000000000000000000000000000000000000000026baf1c63b0000000000000053d3efab180000000000000000000000000065fffffffffffe1d00000000000041ffffffffffff400000000000001affffffffffff6800000000000000000000004cffffff2c0000000000003cffffcc00000000c3ffffde07000000b4ffff540000000000000026dcffffffffe000000000000000000000000000000009e0ffffd50500000000000000000000000000000000000000010e1d4477ccfffffffffd8401000000000000000000000070ffffffff740000000015c3fffffc6f010000000000000000001752b2ffffffffff5700000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000002bffffffffaf00000000000000a2ffff76000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000001c3ffffffffec37000000000000000021d4ffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf7ffffff5e87ffffff69000000000000000048ffffffc822ffffffff2900000000000000000000c7fff71500000000000050fffffffc0000000000009dfffffffe440000000000000022fcffaf0000000000008afffffffff58d250000000000000058ffffffff6d00000000000000000000000000000000000000001ffdffffffff49000000000000000000000000000000000000000000000000ccffffffff980000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000000000c0fffffffffffd21000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffff3d00000000000064ffffffffffff610000000000003cffffffffffff8900000000000000000000004cffffff2c0000000000003cffffcc00000056ffffffff75000000b4ffff54000000000000000014c4ffffffe00000000000000000000000000000000048feffff740000000000000000000000000000000000000000000000000039d0ffffffff90000000000000000000000070ffffffff7400000000000680efffffcb80adc4ccccccd5e3f3ffffffffffffffe70700000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000002affffffffae0000000000000090ffff88000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000025f6fffffffffd9837010000002b86f3ffffffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffff283affffffbf00000000000000009cffffff8000e1ffffff7c00000000000000000023ffffab0000000000000050fffffffc00000000004bffffffff90000000000000000000b4fff91000000000000070f9ffffffffffd897674423160c5affffffff54000000000000000000000000000000000000000000b6ffffffffac000000000000000000000000000000000000000000000031ffffffffff31000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000029ffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064fffffffffffe1b00000000000040ffffffffffff3d00000000000018ffffffffffff6500000000000000000000004cffffff2c0000000000003cffffcc000007dffffffbfff0140000b4ffff5400000000000000000007a6ffffe000000000000000000000000000000000005bdefef31b0000000000000000000000000000000000000000000000000009bcffffffff4c0000000000000000000070ffffffff74000000000000003ff6fffffffffffffffffffffffffffffffffff83d0000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000016ffffffffbe000000000000007effff9a000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000046f6fffffffffffff3dbd6f1fffffffff4ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7ffffffe40002e7fffffd1700000000000004ecffffff320099ffffffce00000000000000000075ffff530000000000000050fffffffc0000000012e6ffffffd5080000000000000000005bffff5c0000000000000028aefdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb680000004efffffffff9140000000000000000000000000000000000000000000092ffffffffc90000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000093ffffffffffffffeb0700000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff7400000bdeffffffff950000000000000001c3ffffffffb600000000000000009dffffffffd90800000000000000000000004cffffff2c0000000000003cffffcc000079ffffc9acffff930000b4ffff54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017f1ffffffce0000000000000000000070ffffffff740000000000004ffaffffffffffffffffffffffffffffffffffc62d000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000003fdffffffd9000000000000006cffffac000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000043ebffffffffffffffffffffffffbb68ffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffff9a000096ffffff6a00000000000045ffffffe000004cffffffff210000000000000000acffff150000000000000050fffffffc00000000a7fffffffa300000000000000000000019ffff940000000000000000002482d4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa200000003e3ffffffff6f00000000000000000000000000000000000000000006ecffffffff620000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000000000000000000000000000000000000bf1ffffffffffffffff5b00000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff740000001caff6e77d0400000000000000000f9cf1ee920b00000000000000000685eaf4a8180000000000000000000000004cffffff2c0000000000003cffffcc0017f2ffff5234fefffb2700b4ffff5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099ffffffff2900000000000000000070ffffffff74000000000009e9fffffffffffffffffffffffffcf1dbb77f340000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000d0fffffffe0e0000000000005affffbe000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000139ffefffffffffffffffff579055cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffffff4e000043ffffffbf0000000000009affffff90000009f5ffffff730000000000000000e0ffe2000000000000000050fffffffc00000773ffffffff78000000000000000000000000e7ffca0000000000000000000000001c5486aac9ddedf4fbfffffffffdfcfcfcfcfcfcfcfcfcfcfcfcfcfeffffff9a0000000080ffffffffd000000000000000000000000000000000000000000055fffffffff00a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066ffffffffb8ffffffffc400000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcc009cffffc10000a3ffffb100b4ffff54000000000000000000000e5197cbe1f6f5e0c9964f0d00000000000000000000001445000000000000000000000000000000000000000000000000000000005affffffff6300000000000000000070ffffffff74000000000038fffffffff39048210b020000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000008effffffff5100000000000049ffffd0000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000237dbee6f8f4ddbb6d1800005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009ffffffff80b000003ecfffffd180000000003eaffffff3f000000b2ffffffc60000000000000001fdffbf000000000000000050ffffffffffffffffffffffa902000000000000000000000000c1ffe9000000000000000000000000000000000000000058ffffffff6e00000000000000000000000000baffffff87000000001bfcffffffff310000000000000000000000000000000000000000b6ffffffff9300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cfffffffff51e2ffffffff2e000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cffffff2c0000000000003cffffcb2ffdfffe3200001cf5ffff41b3ffff5400000000000000001083f1fffffffffffffffffffff38915000000000000000040edfd5a00000000000000006bb2dae881000000000000000000000000000043ffffffff7d00000000000000000070ffffffff74000000000041ffffffff3900000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000045ffffffffb700000000000037ffffe2000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ecffffffb7000000009dffffff6a0000000043ffffffeb0300000065fffffffe1a00000000000010ffffaf000000000000000050ffffffffffffffffffffffd17a110000000000000000000000b0fffa00000000000000000000000000000000000000005dffffffff9f00000000000000000000000000d1ffffff6f0000000000b1ffffffff93000000000000000000000000000000000000001bfcffffffff2c00000000000000000000003ffffdd74500000000000000000000000000000000000000005cffffa4000000000000000000000000000000000000000038fffffffff70d9dffffffff97000000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff740000000000000000000000000000234c4c4c4000000000000000284c4c4c3b0000000000000000000000000000000000004cffffff2c0000000000003cffffb5beffff9f0000000082ffffce9fffff54000000000000003feafffffffffffffffffffffffffffff35c0000000000000057fffffc4a0000000000000096fffffffe25000000000000000000000000004effffffff8400000000000000000070ffffffff74000000000011f6fffff80100000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000001d3ffffffff44000000000025fffff4000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044ffffffff6c000000004affffffc00000000097ffffff9d0000000019feffffff6a0000000000001bffffa3000000000000000050ffffffffffffffffffffffffffee5100000000000000000000a8ffff070000000000000000000000000000000000000071ffffffffea0300000000000000000000000dfcffffff34000000000049ffffffffed0700000000000000000000000000000000000079ffffffffc400000000000000000000000000a5fffff424000000000000000000000000000000000000005cffffa40000000000000000000000000000000000000000a2ffffffffaf0048fffffffff30d0000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000004cffffff2c0000000000003cffffe2fffff41a000000000be5ffffdbffff5400000000000062fbffffffffffffe8d4d7edffffffffffffff9501000000000000a4ffffe8130000000000005affffffff800000000000000000000000000074ffffffff6c00000000000000000070ffffffff7400000000000085ffffff5f00000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000005cffffffffe01c0000000013ffffff060000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096ffffffff210000000006f0fffffd18000002e8ffffff4c0000000000cbffffffbd0000000000000effffac000000000000000050fffffffc00000004133d8ff8fffffd54000000000000000000b6fff90000000000000000000000000000000000000000a3ffffffffff5c000000000000000000000064fffffff003000000000002dfffffffff55000000000000000000000000000000000000d9ffffffff5d0000000000000000000000000018f1ffffb7000000000000000000000000000000000000005cffffa40000000000000000000000000000000000000013f7ffffffff530004e7ffffffff6a0000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000004cffffff2c0000000000003cffffffffff7d00000000000061ffffffffff5400000000003ffbffffffffdc651a00000000226fe1ffffffffff8800000000000013edffffa40000000000000ef2ffffffed10000000000000000000000000c7ffffffff4700000000000000000070ffffffff7400000000000003acfffff97874a6bdc7b9a36f3000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000001b6ffffffffdd2f00000003feffff180000004f9e3b0000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e6ffffffd5000000000000a4ffffff6b000040fffffff30800000000007efffffffc13000000000001fcffc0000000000000000050fffffffc0000000000000038f9ffffee130000000000000000c8ffe80000000000004b741c000000000000000000000ff2ffffffffffe3160000000000000000000ddeffffff95000000000000007bffffffffb600000000000000000000000000000000003cffffffffed08000000000000000000000000000071ffffff510000000000000000000000000000000000005cffffa40000000000000000000000000000000000000075ffffffffe705000086ffffffffd30000000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000033dcdcdcdce6ffffffe2dcdcdcdc1b003cffffffffe20900000000000002ceffffffff540000000011e9ffffffff92050000000000000000068dffffffffff5a00000000000082fffffe2800000000000092ffffffffad020000000000000000000051ffffffffee0600000000000000000070ffffffff7400000000000000026ef7ffffffffffffffffffffcd570000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000014e3fffffffffc96320000f0ffff2a0f62d0ffffed1d00000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bffffffff8a00000000000050ffffffc0000095ffffffaa00000000000031ffffffff62000000000000deffe5000000000000000050fffffffc0000000000000000a0ffffff760000000000000001f0ffc8000000000060fffff67b070000000000000001a4fffffffeffffffcc1b0000000000000008b5fffffffc220000000000000018faffffffffffffffffffffffffffffffffffffffffffffffffffff8e00000000000000000000000000000004d1ffffe10a00000000000000000000000000000000005cffffa400000000000000000000000000000000000001dcffffffff8400000020fdffffffff3d00000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000003cffffffffffffffffffffffffff20003cffffffff5b00000000000000003fffffffff540000000083ffffffff8f00000000000000000000000074ffffffffe50a00000000002bffffff8500000000000017eaffffffffa90d00000000000000003ef2ffffffff8d0000000000000000000070ffffffff74000000000000000893ffffffffffffffffffffffffffb10d000000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000023d9ffffffffffffe7bef6ffffddfbffffffffff9d00000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffff2400000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffffff3e00000000000009f4fffffd1802e6ffffff5900000000000000e3ffffffb4000000000000aaffff1a0000000000000050fffffffc000000000000000064ffffffbc0000000000000026ffff920000000004e7ffffffffe378230000000032b6ffffffff52e7ffffffed7b210000000954d7ffffffff88000000000000000000acffffffffffffffffffffffffffffffffffffffffffffffffffff28000000000000000000000000000000003cffffff860000000000000000a9feffffffffffffffffffffffffff7e00000000000000000000000000000048fffffffffd1f00000000b7ffffffffa700000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000003cffffffffffffffffffffffffff20003cffffffb00100000000000000000097fcffff540000000ef1ffffffd60400000000000000000000000000afffffffff79000000000005fcffffc5000000000000004ffeffffffffe4721b00000003379cfdffffffffe50d0000000000000000000070ffffffff740000000000000acaffffffffffffffffffffffffffffffc40a0000000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000013b6fffffffffffffffffffffffffffffffe9a0800000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dfffffffee0400000000000000aaffffff6a3dfffffff90f0000000000000097fffffff90e000000000072ffff5c0000000000000050fffffffc000000000000000059ffffffdc000000000000006bffff5900000000003cebffffffffffffecd7d3edffffffffffaa0039f9ffffffffffe9d4dcf7ffffffffffc50400000000000000000045ffffffffffffffffffffffffffffffffffffffffffffffffffbf000000000000000000000000000000000000a2fffff9260000000000000afdffffffffffffffffffffffffffffa4000000000000000000000000000000b1ffffffffb5000000000050fffffffff916000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000053ffffffff5f000000000000000000000000000027feffffffd3000000000000f8ffffe9000000000000000063fdffffffffffffe6d2d9f4fffffffffffff034000000000000000000000070ffffffff74000000000000abffffffffed83360f04134195f7ffffffff8d0000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000046d0fffffffffffffffffffffffeb935000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032ffffffffa7000000000000000057ffffffb487ffffffb800000000000000004affffffff59000000000020feffb40000000000000050fffffffc00000000000000007affffffdd00000000000000c4fff80f0000000000001abaffffffffffffffffffffffffffd11000003de4ffffffffffffffffffffffffbc0d0000000000000000000001dbffffffffe2ccccccccccccccccccccccccccccfdffffffff5800000000000000000000000000000000000017f0ffffba00000000000010ecffffaa7c7c7c7c7cabffffd07c7c4f00000000000000000000000000001efcffffffff4d000000000004e5ffffffff79000000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097fffffffd11000000000000000000000000000000caffffffff230000000021fffffff20000000000000000004ee7ffffffffffffffffffffffffffffdc3500000000000000000000000070ffffffff74000000000052ffffffffca17000000000000002ae3fffffffc2000000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000003884bde2f5feffffeaac731e0000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffffff5c00000000000000000cf7fffff1c7ffffff67000000000000000008f4ffffffab000000000000c4fffb2300000000000050fffffffc0000000000000007d6ffffffc400000000000029feffac00000000000000000054d3ffffffffffffffffffffa90f0000000015acfefffffffffffffffff1780600000000000000000000000076ffffffffab000000000000000000000000002fffffffffea06000000000000000000000000000000000000006dffffff540000000000004bfeffdd0f000000005cffffa4000000000000000000000000000000000084ffffffffe20300000000000082ffffffffe0020000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc800000000000000000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000002abc3200000000000000000000cfffffffd7000000000000000000000000000000008affffffff550000000073ffffffe000000000000000000000118defffffffffffffffffffffec840a0000000000000000000000000070ffffffff740000000000bcfffffff2190000000000000000003affffffff7800000000000038ffffffffffffffffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000090ffff850000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff88000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d7fffffffd13000000000000000000b1fffffffefffffd18000000000000000000b0fffffff409000000000057ffffa700000000000050fffffffc00000000000138bfffffffff83000000000000a7ffff4000000000000000000000003886bfe4f6fbedcb913500000000000000002a81bfe7f8f5dcb46614000000000000000000000000000015f9fffffffa1600000000000000000000000095ffffffff89000000000000000000000000000000000000000003cfffffe30b0000000000008dffffad000000005cffffa40000000000000000000000000000000005e8ffffffff7e000000000000001efdffffffff4c0000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000000000025edefffffffffffffffffffffeaa27000000000000000073faffca02000000000000000000e6ffffffc00000000000000000000000000000000071ffffffff6e00000008e4ffffffb2000000000000000000000000095794cae4f6f7e5cc9556080000000000000000000000000000000000000000000000000005f9ffffff990000000000000000000000c9ffffffb200000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000007fffff960000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff10000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029ffffffffc5000000000000000000005effffffffffffc50000000000000000000063ffffffff50000000000001d2fffe32000000000050ffffffffccccccccd7f4fffffffffff51f000000000035fdffbd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7ffffffff7600000000000000000000000af0fffffffe2300000000000000000000000000000000000000000039feffff8900000000000005c9ffff700000005cffffa40000000000000000000000000000000057fffffffffb1b0000000000000000b4ffffffffb60000000000000000000000000000000000000000000000000058fffffffff8000000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000000001bcafffffffffffffffffffffffffffffc7a00000000000000ebffffff69000000000000000000faffffffbc000000000000000000000000000000006effffffff8100000032ffffffff680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffff65000000000000000000000096ffffffcd00000000000038ffffffffffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000006fffffa7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffff790000000000000000000010faffffffffff740000000000000000000017feffffffa300000000000047ffffc9070000000050fffffffffffffffffffffffffffffe60000000000007d5fffb330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040ffffffffdb010000000000000000000060ffffffffbb00000000000000000000000000000000000000000000009ffffffa2900000000000021f0fffa3700005cffffa400000000000000000000000000000000c0ffffffffaf0000000000000000004dfffffffffd210000000000000000000000000000000000000000000000006afffffffffb0e0000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa003000000000099ffffffed0f0000000000000003ffffffffd60000000000000000000000000000000085ffffffff710000000058c7fff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024ffffffff60000000000000000000000091ffffffc500000000000038ffffffffffd3cccccccccccccccccccccccccccc5f000000000000000000000000000000000000000000000000000000000000005effffb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e2fffff7b8250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceffffffff2e0000000000000000000000b7ffffffffff230000000000000000000000c9ffffffef0500000000000097ffff9f0000000050ffffffffffffffffffffffffffe04d0000000000009dffff7e00000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000000d7ffffffff4200000000000000000000c6ffffffff53000000000000000000000000000000000000000000000015eeffffbd0000000000000053ffffe112005cffffa40000000000000000000000000000002affffffffff4700000000000000000003e2ffffffff8900000000000000000000000000000000000000000000000de5ffffffffff930000000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000001bf6ffffff810000000000000000f1fffffffe16000000000000000000000000000000bdffffffff5a0000000000002e4b00000000000000000000002f71abd4e7f8f6e4d1a268230000000000000000000000000000000000000000000000000000000bffffffff860000000000000000000000b8ffffffa700000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f00000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffffe200000000000000000000000064ffffffffd20000000000000000000000007cffffffff480000000000000acfffff7100000050fffffffffffffffff4e7c6984c050000000000007effffbd03000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c0100000000000000000000000000000000000000000071ffffffffa70000000000000000002bffffffffe7040000000000000000000000000000000000000000000000006affffff570000000000000096ffffb4015cffffa400000000000000000000000000000093ffffffffde01000000000000000000007fffffffffeb070000000000000000000000000000000000000000000091fffffffffffffd3300000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000000000b8ffffffffe93500000000000000000387fffffffffe47000000000089fffffff11300000000000000c8ffffffff72000000000000000000000000000016f9ffffffff2d00000000000000000000000000000000025dcafffffffffffffffffffffffeb9480000000000000000000000000000000000000000000000000000daffffffdf060000000000000000001ef8ffffff6100000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023fdffda0000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000000000000000037f9ffffffef9f0e0000000000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff920300000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073fffffff2560000000000000000000000000acafffff24e00000000000000000000000012d4ffffff9a0000000000000017dcffff76000000000000000000000000000000000000000000018bffffcd0d0000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000000000000011f7fffffff914000000000000000090ffffffff840000000000000000000000000000000000000000000000000002ccffffe50d00000000000007cfffff7758ffffa400000000000000000000000000000bf1ffffffff7800000000000000000000001bfcffffffff5b00000000000000000000000000000000000000000031fcffffffffffffffcb02000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000004bfffffffff52b000000000000000000000094ffffffffd4010000000016f7ffffff82000000000000008dffffffffeb13000000000000000000000000008effffffffdf0000000000000000000000000000000025c3ffffffffffffffffffffffffffffffffa813000000000000000000000000000a93eff29f12000000000083ffffffff9801000000000000000ac3fffffffc3a0a000000000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000487f73000000000000000000000000000000000010e5fffffff729000000000044ffffffffd205000000000000000000006cffffffffffb600000000000000000000000000000000000000000000000000028effffffff9724b4fffffffb69000000000000000000000000000000000000000000000017d3ffffffffd72e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d7ffffa50d00000000000000000000000000000000000016b1ffffc91500000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000000000000000a2ffffffff730000000000000008edfffffffd1f000000000000000000000000000000000000000000000000000037feffff8c0000000000000026f3fffc87ffffa4000000000000000000000000000066fffffffffa16000000000000000000000000b1ffffffffc5000000000000000000000000000000000000000002c9ffffffffb9ffffffff6c000000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc800000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000099ffffffe8060000000000003fffffffffffbf07000000000000000000000049fcffffffff8500000000000000000000000000000035f1ffffffffffffffe7d3d6ebffffffffffffffdc1a000000000000000000000000b7ffffffffce050000000012eaffffffffc044050000000b58d9ffffffffffffffe59f05000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a0000000000000000000000a6ffffffffff6c000000000000000000000000000000000000000000000000000066fbffffffffffffffef440000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010bdffffe4570100000000000000000000000000000463ebffffab0900000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb230000000000000000000000000000000000003bffffffffd8000000000000005bffffffffb6000000000000000000000000000000000000000000000000000000009bfffffb2b000000000000005cfffffbffffa40000000000000000000000000000cfffffffffa9000000000000000000000000004affffffffff2e0000000000000000000000000000000000000069ffffffffce21fefffffff1180000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000002bfffffffff1090000000000000000000000000076ffffffffb2000000000027ffffffff5c00000000000001deffffffffffc91f0000000000000000005df6ffffffffec0f000000000000000000000000000028eeffffffffffca5b16000000001f6adbffffffffffd60f0000000000000000000043ffffffffffff6200000000004dfbfffffffffff8dad0defcffffffffffffffffffffff34000038ffffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffff7d00000000009cffffffffff3500000000000000000000000bd5fffffffff72a000000000000000000000000000000000000000000000000000042eeffffffffffdb2800000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020efffffeb6b000000000000000000000000000000000000177ac4e9fae7bd6f0d000000000000000000000000000000000375f7ffffd2620e00000000000000000000196fdefffff0640000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000000000000000d3ffffffff3e000000000000c1ffffffff4e0000000000000000000000000000000000000000000000000000000013edffffc000000000000000009fffffffffa40000000000000000000000000039ffffffffff410000000000000000000000000002e0ffffffff9800000000000000000000000000000000000016efffffffff5300a8ffffffffa70000000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc80000000000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000c4ffffffc3000000000000006ffffffffffffff89239020000001154c4ffffffffffff5d000000000000000000000000000000c3fffffffff8690000000000000000000489ffffffffff930000000000000000000066ffffffffffff8800000000000055f4ffffffffffffffffffffffffffffffffffffffff38000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ac33b00000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000000000028f3ffffffffd006000000000000000000000000000000000000000000000000000025808080807c130000000000000000000000000000000000000000000000000000000000065c7d808080805f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffe4c0000000000000000000000000000000071f3ffffffffffffffea59000000000000000000000000000000000026a9fdfffff6bb7e573a2d32425b8fc6fdfffffa9c1b0000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe01800000000000000000000000000000000006cffffffffa4000000000027ffffffffe303000000000000000000000000000000000000000000000000000000000067ffffff5a000000000000000ad5ffffffa400000000000000000000000000a2ffffffffd80000000000000000000000000000007cfffffffff30e0000000000000000000000000000000000a3ffffffffcd010027fbffffffff4500000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000adffffffff64000000000000000000000000000000dfffffffff35000000000063fffffffe1c0000000000000ae4fffffffffffffffff5ded2e5fdffffffffffffff8000000000000000000000000000000057fffffffffe5700000000000000000000000081fffffffffc2a0000000000000000003fffffffffffff5e0000000000000021affdffffffffffffffffffe3694c4c4c4c4c4c4c10000038ffffffffff240000000000000000000000000000000000000000000000799f020000000000000000000000000000000012bc310000000000000000000000a9fffe92000000000000000026baf1c63b0000000000000053d3efab18000000000000000000000000000057ffffffffff8a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008effffffed1e000000000000000000000000000097ffffffffffffffffffffff780000000000000000000000000000000000002995e9ffffffffffffffffffffffffe18c1f000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb01000000000000000000000000000000000ff5fffffff712000000008cffffffff7f00000000000000000000000000000000025bb4e5f9f7dca13f000000000002caffffe70e000000000000002cf6ffffa400000000000000000000000013f7ffffffff7200000000000000000000000000000019fbffffffff6b0000000000000000000000000000000041fffffffffe3b00000090ffffffffdb08000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b00000000000ffaffffff6f000000000000005ffffffffffffffffffffffffffffffffffffff86b00000000000000000000000000000000b6ffffffffa80000000000000000000000000001cfffffffff8700000000000000000000b3ffffffffcc040000000000000000001f74afdceffbeed19d4f06000000000000000000000038ffffffffff240000000000000000000000000000000000000000000079ffffa202000000000000000000000000000013d0ffee3100000000000000000046ffffffff0d00000000000000000000000000000000000000000000000000000000000000000000000000000091fffffffffe41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7ffffffc80500000000000000000000000067ffffffffffe6d1e6fffffffffe4e00000000000000000000000000000000000000033f79add6e7f8f6e5d3a77437010000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b00000000000000000000000000000000009dffffffff6f00000006ebfffffffc1c00000000000000000000000000000013c6ffffffffffffffffa9090000000034fdffff8f00000000000000000000000000000000000000000000000075fffffffff71200000000000000000000000000000000adffffffffd400000000000000000000000000000006d7ffffffffa2000000000fe8ffffffff80000000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000baffffffc00000000000000000beffffffffb9befffffffffffffffffffeaf2e000000000000000000000000000000000df9ffffffff3100000000000000000000000000005affffffffdb000000000000000000000a8fedf19c11000000000000000000000000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000047ffffffffa40300000000000000000000000014d1ffffffeb100000000000000003d7ffffffbc0000000000000000000000000000000000000000000000000000000000000000000000000000000005c6ffffffffe31100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001eedffffff8e000000000000000000000010f2ffffffbe2d0000002dbdffffffe407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed110000000000000000000000000000000036ffffffffd400000057ffffffffb100000000000000000000000000000003c4fffffffff7fcffffffffb3000000000098fffffb2d0000000000000000000000000000000000000000000001dcffffffffa2000000000000000000000000000000000046ffffffffff3e00000000000000000000000000007cfffffffff118000000000060fffffffff8250000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000faffffffff120000000000000000000000000000008bffffffff820000000000006bfffffff9080000000000000021f1ffffffff572d85c1e6f8f2dcb7742700000000000000000000000000000000000031ffffffffe700000000000000000000000000000011ffffffffff07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000195ffffffffa7030000000000000000000015d3fffffffd5e00000000000000005fffffffff3500000065808080180000000000000000000000000000000000000000000000000000000000000000001ceaffffffffa90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffff4f0000000000000000000078ffffffc505000000000004c1ffffff67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000000000000000000000000ceffffffff3a0000bcffffffff4900000000000000000000000000000067ffffffbd2b000553e4ffffff530000000012ebffffc20000000000000000000000000000000000000000000048ffffffffff3b000000000000000000000000000000000001ddffffffffa70000000000000000000000000022f6ffffffff7100000000000001c6ffffffffbb0000000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000f9ffffffff130000000000000000000000000000008cffffffff8100000000000029ffffffff4000000000000000005afffffffff52e0000000000000000000000000000000000000000000000000000004affffffffc500000000000000000000000000000000eeffffffff2000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000092ffffffffaa04000000000000000016d4fffffffc5b000000000000000005deffffffac00000000beffffff4c0000000000000000000000000000000000000000000000000000000000000000000043fdffffffff5e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008affffffef20000000000000000000c6ffffff380000000000000031ffffffba00000000000000000000000000000000175a94bedff1fbfbf0dbba8d54110000000000000000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000000000000000000000000067ffffffff9d0021feffffffe002000000000000000000000000000000d9ffffc906000000002efaffffb0000000000064ffffff5d000000000000000000000000000000000000000000b1ffffffffd20000000000000000000000000000000000000078fffffffff916000000000000000000000000b6ffffffffd4040000000000000033fdffffffff5a00000000000000000070ffffffff74000000000000000000000000000078ffffffd80000000000000088ffffffc8000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e00000000000000ebffffff7d0000000000000000009bffffffffde12000000000000000000000000000000000000000000000000000056ffffffffba00000000000000000000000000000000e2ffffffff2d000094fff4e1b6731500000000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff2400000000000000000000000000000000000000000000000090ffffffffad0500000000000017d6fffffffc5800000000000000000062ffffffff3000000000a0ffffff840000000000000000003a93d2f3f7e0a5470000000000000000000000000000000000007cfffffffff221000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4ffffffca060000000000000008faffffe5000000000000000000dbfffff7050000000000000000000000000358befdfffffffffffffffffffffffffab44c010000000000000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff48000000000000000000000000000000000cf2ffffffee057effffffff7b000000000000000000000000000000057de1ef33000000000000caffffd6000000000001c7ffffe80f000000000000000000000000000000000000001efcffffffff6b0000000000000000000000000000000000000016faffffffff7a000000000000000000000054ffffffffff4100000000000000000099ffffffffe80f000000000000000070ffffffff7400000000000000000004387799acdbffffffd80000000000000088ffffffc8000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a00000000000000b1ffffffab00000000000000000008cfffffffffba030000000000000000000000000000000000000000000000000046ffffffffce00000000000000000000000000000000f7ffffffff1d000094fffffffffff57d020000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000000000000008fffffffffaf050000000019d7fffffffb5500000000000000000000ceffffffbb000000000065fffffff11700000000001476d8ffffffffffffffffaf0b0000000000000000000000000000000001b4ffffffffc50300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cebffffff91000000000000001fffffffb9000000000000000000abffffff1b000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a000000000000000000000000000000000098ffffffff46d2fffffffb180000000000000000000000000000000000000100000000000000ceffffce00000000000032fdffff920000000000000000000000000000000000000084fffffffff50f0000000000000000000000000000000000000000aaffffffffe1020000000000000000000de4ffffffffa80000000000000000000013edffffffff95000000000000000070ffffffff74000000000000001887eeffffffffffffffffd80000000000000088ffffffc8000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff320000000000000083ffffffd60000000000000000000024f1ffffffff8a0000000000000000000000000000000000000000000000000023fffffffff10500000000000000000000000000001ffffffffff504000090ffffffffffffffae0200000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c000000000000008dffffffffb20600001ad8fffffffa52000000000000000000003bffffffff49000000000012f5ffffffd7490b1047a2f8ffffffffffffffffffffffbf020000000000000000000000000000000011dfffffffff7d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048feffffff5300000000000031ffffffa90000000000000000009affffff3000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e00000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd7000000000000000000000000000000000030ffffffffb1ffffffffac00000000000000000000000000000000000000000000000000001df8ffff950000000000000095fffffc2f000000000000000000000000000000000005e8ffffffff9c00000000000000000000000000000000000000000043ffffffffff4d0000000000000000008efffffffff41c000000000000000000000069fffffffffd350000000000000070ffffffff740000000000006af6ffffffffffffffffffffd80000000000000088ffffffc80000000000000000006affffffffa200000000000000000000000000001dffffffffef020000000000000057fffffffb050000000000000000000053ffffffffff5800000000000000000000000000000000000000000000000000e7ffffffff4600000000000000000000000000006effffffffbe00000034c3d4f6ffffffffff8000000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000008bffffffffb4071bdafffffff94f0000000000000000000000a1ffffffe30200000000000085fffffffffffffffffffffffffffff8d7dcffffffffff70000000000000000000000000000000000033f8fffffffb3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fffffff02300000000002bffffffad0000000000000000009fffffff2a000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb23000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000000000000000000000000c9ffffffffffffffff440000000000000000000000000000000000000000000000082363dfffffe6170000000000000010e9ffffc5010000000000000000000000000000000057ffffffffff3500000000000000000000000000000000000000000001daffffffffb600000000000000002ffcffffffff7800000000000000000000000002ceffffffffcd0300000000000070ffffffff740000000003a7ffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000002fffffffff1d000000000000000000000091fffffffff52f0000000000000000000000000000000000000000000000008affffffffc4000000000000000000000000000be3ffffffff5e0000000000000869f6fffffff618000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff1000000000000000000089ffffffffbadbfffffff94c000000000000000000000006f0ffffff840000000000000005beffffffffffffffffffffffc2590b00002cd4ffffffe404000000000000000000000000000000000067ffffffffdb0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c1ffffffcd070000000019ffffffc4000000000000000000b7ffffff180000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe8280000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f000000000000000000000000000000000062ffffffffffffffdc010000000000000000000000000000000000000000000054fffffffffbaa1900000000000000000061ffffff6000000000000000000000000000000000c1ffffffffcd000000000000000000000000000000000000000000000075fffffffffd2200000000000001c7ffffffffd906000000000000000000000000003afeffffffff6e00000000000070ffffffff74000000009dffffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000000bfffffffff780000000000000000000000000de5ffffffff47000000000000000015ffffffff36000000000000000000000005c8ffffffffde1300000000000000000000000000000000000000000000001af0ffffffff7e000000000000000000000002a5ffffffffd70700000000000000004bffffffff74000000000038ffffffffff240000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000000000000000000087fffffffffffffff8490000000000000000000000004cffffffff2900000000000000000898fdffffffffffffeb902c00000000000025fcffffff3f000000000000000000000000000000000000a1ffffffff910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ae9ffffff950000000002effffff3050000000000000003edffffef0200000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe01800000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c00000000000000000000000000000000000af0ffffffffffff76000000000000000000000000000000000000000000000054ffffffffb6210000000000000000000001c4ffffe91000000000000000000000000000002affffffffff62000000000000000000000000000000000000000000000014f7ffffffff8900000000000067ffffffffff47000000000000000000000000000000a2fffffffff11a000000000070ffffffff7400000054ffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000046fffffffff62d000000000000000000000098ffffffffcf00000000000000000001faffffff4f0000000000000000000000001eedffffffffbb0300000000000000000000000000000000000000000000005bfeffffffff950c000000000000000018b1fffffffff63700000000000000000000c0ffffffb6000000000038ffffffffff24000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085fffffffffff746000000000000000000000000009dffffffda0000000000000000000000277db0c5ba934f06000000000000000000a7ffffff7900000000000000001e72b5def4f8e5c286340bd6fffffffd3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045fdffffff5700000000b3ffffff590000000000000053ffffffb200000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb0100000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff5800000000000000000000000000000000000093fffffffffff91500000000000000000000000000000000000000000000000d3255adfffff137000000000000000000002ffcffff95000000000000000000000000000094fffffffba8020000000000000000000000000000000000000000000000005eeeffffffeb070000000015eeffffffffaf0000000000000000000000000000000018f1ffffffffaa000000000070ffffffff74000004e1ffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000b3ffffffffea370000000000000000048afffffffffd4200000000000000000000e7ffffff5e000000000000000000000000004bfeffffffff8b0000000000000000000000000000000000000000000000006bfcffffffffec904a1b070a20539ef4fffffffff34800000000000000000000007affffffd6000000000038ffffffffff2400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ef0ffffffffc90900000000000000000000000000dfffffff8b0000000000000000000000000000000000000000000000000000000074ffffff950000000000001aa1fbffffffffffffffffffc666f9ffffffd80500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffff2250000005affffffe51b000000000019e2ffffff5a00000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff610000000000000000000000000000000000002cffffffffffa70000000000000000000000000000000000000000000000000000000094ffffdc030000000000000000000092fffffd3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1fffffffff620000000000000000000000000000000000073ffffffffff470000000070ffffffff74000047ffffffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff800000000000000000000000deffffff66000000000000000000000000000088ffffffffff590000000000000000000000000000000000000000000000003ed9ffffffffffffffffffffffffffffffffc52700000000000000000000000061ffffffe6000000000038ffffffffff24000000000000000000000000000000000000000000d0fffff54c0000002285c7eefcf7deb06a110000000000000000000000000000000000000020dfffffffffffffbd0a00000000000000000000001effffffff49000000000000000000000000000000000000000000000000000000002c80808051000000000044eafffffffffffffffffffffffffcecffffffff6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002beffffffd008000004ddffffffe5651b051b65e4ffffffdf04000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed11000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052605000000000021ffffff41000000000000000000000fe8ffffc70100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fffffffffff7e00000000000000000000000000000000000004d5ffffffffdc0800000070ffffffff74000095ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff98020000000000000000000000d5ffffff6e000000000000000000000000000003c1fffffffff530000000000000000000000000000000000000000000000000035cbdfdfffffffffffffffffffff8ae4900000000000000000000000000006bffffffd7000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffa3000380fbfffffffffffffffff576040000000000000000000000000000000021e0fffffff9ffffffffbf0b000000000000000000005bfffffffd0f000000000000000000000000000000000000000000000000000000000000000000000000003df8fffffffffffffde2d1dcf4ffffffffffffffffe30700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018e7ffffff990000003dfcfffffffffffffffffffffffc3e00000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066faffc1000000000009ffffff6600000000000000000000005dffffff6300000000000000000038fffffffffffffffffffffffffffffff6eaceab783c03000000000000000000000000000000000000000005d6ffffffffdc080000000000000000000000000000000000000042feffffffff8300000070ffffffff740000b9ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000000000000000d3ffffff700000000000000000000000000000001ae9ffffffffdf1300000000000000000000000000000000000000000000000032aafafffffffffffffffffffff4982000000000000000000000000000007effffffc2000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffba09bfffffffffffffffffffffffffcf1b000000000000000000000000000022e2fffffff54176ffffffffc10c0000000000000000008affffffd10000000000000000000000000000000000000000000000000000000000000000000000000018edffffffffffc3510f000000023692f8ffffffffffff680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fdffffff5a0000005ffbfffffffffffffffffffa5f00000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe90500000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fffffff490000000043ffffff63000000000000000000000000c2ffffeb12000000000000000038ffffffffffffffffffffffffffffffffffffffffffe992240000000000000000000000000000000000007affffffffde2e00000000000000000000000000000000000000000075f5fffffff927000070ffffffff740000d1ffffffffffffffffffffffffffffffd80000000000000088ffffffc800000000000000000000000000000155d8fffffffffffffffffffffda1210000000000000000000000000000dcffffff680000000000000000000000000000000043fdffffffffbc030000000000000000000000000000000000000000000593fdffffffffffe7d3d6ecfffffffffff7720000000000000000000000000092ffffffa5000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffd4b3fffffffce6d1e0f8ffffffffffffdc1d00000000000000000000000024e3fffffff43f000074ffffffffc30d0000000000000000b6ffffffa30000000000000000fcffffffe80000000000000000000000000000000000000000000000009cfffffffffd6f00000000000000000023d0ffffffffffca00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007efffffff3280000003ed0ffffffffffffffcf3d0000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff4800000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000000000000000000000000000000000000035c7fbffffd21700000000000000000000000000000000000001d7ffffed53070441dfffffff270000000000000000000000002cfbffff98000000000000000038fffffffffffffffffffffffffffffffffffffffffffffffda31b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000c4ffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000000000000e4ffffff6000000000000000000000000000000000007dffffffffff8c000000000000000000000000000000000000000005baffffffffe26a1900000000247beeffffffff92000000000000000000000000baffffff78000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffffffc85a10000000074abbffffffffffd1050000000000000000000025e4fffffff33d0000000072ffffffffc50e00000000000000e0ffffff790000000000000000fcffffffe800000000000000000000000000000000000000000000001dfdffffffff7800000000000000000000000cd2ffffffffff190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002baffffffd30900000002438eb4c5b38d41010000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a00000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd30000000000000000000000000000000000000172faffffffcd1300000000000000000000000000000000000000003dfbfffffffdfbffffffffa300000000000000000000000000008ffffffd340000000000000038ffffffffffd3cccccccccccccccccdd6ebfffffffffffffffff361000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aaffffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4ffffff5400000000000000000000000000000000000070ddfdffffff590000000000000000000000000000000000000090ffffffffb20c00000000000000001accffffffff630000000000000000000000e4ffffff49000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffff7e01000000000000000068feffffffff8100000000000000000026e5fffffff33c00000000000070ffffffffc70f000000000001fbffffff520000000000000000fcffffffe800000000000000000000000000000000000000000000006bffffffffd80200000000000000000000000028fcffffffff56000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e5f9edcb84220000000016e5ffffff9d0000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd700000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff95000000000000000000000000000000000014b4ffffffffc60f000000000000000000000000000000000000000000004eefffffffffffffffb00900000000000000000000000000000ddeffffca0200000000000038ffffffffff240000000000000000000000114997eeffffffffffff9a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000effffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000027fcffffffd1080000000000000000000018eaffffffed0b0000000000000000000fffffffff1a000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff7d000000000000000000000070fffffffffa190000000000000028e6fffffff23b00000000000000006fffffffffc9100000000016ffffffff370000000000000000fcffffffe80000000000000000000000000000000000000000000000b1ffffffff6f0000000000000000000000000000a3ffffffff7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059eafffffffffffffffa8e050000003efcffffff5f00000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000000000000000000003fe4ffffffffbf0c000000000000000000000000000000000000000000000000177fc9f1fae6af4e000000000000000000000000000000000024c1f9ff6600000000000038ffffffffff2400000000000000000000000000000f88f7ffffffffffad030000000000000000000000000000000000000000000000000024e2fffff7b8250000000000000000000000000000000000acffffff200000001dfeffffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ffffffff22000000000000000000000000000000000000000000000000000000000000000000000000000000000000008affffffff4f0000000000000000000000007affffffff610000000000000000003bffffffeb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000001c5ffffffff7f00000000000029e7fffffff139000000000000000000006dffffffffcb110000002dffffffff1d0000000000000000fcffffffe80000000000000000000000000000000000000000000000ceffffffff2c000000000000000000000000000051ffffffff9700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffbe080000007afffffff52a000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe4030000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000021d6ffffffffff98000000000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000acffffff20000000009effffffffffffffffffffffffffffd80000000000000088ffffffc80000000000000000000000000000000000000000003eddffffaa00000000000000000000000000000000004cfffffffe0900000000000000000000043c83c1daeff9e6d1ab651d000000000000000000000000000000000000000000cbfffffff8070000000000000000000000002affffffffa100000000000000000065ffffffc000000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c0000000000000000000000004bffffffffe400000000000de7fffffff1380000000000000000000000006afeffffffb40000003cffffffff090000000000000000fcffffffe80000000000000000000000000000000000000000000000e5ffffffff0b000000000000000000000000000025ffffffff9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050ffffffffffecd1ddfeffffffff9f00000001b7ffffffd50b0000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c0000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff7600000000000000000000000000001abfffffffffffaf07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000011c1ffffffffff5b00000000000000000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000acffffff200000000015e9ffffffffffffffffffffffffffd80000000000000088ffffffc8000000000000000000000000000000000000000034f4fffff31b000000000000000000000000000000000076ffffffdf000000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000eeffffffd90000000000000000000000000003feffffffc40000000000000000007effffffa700000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c00000000000000000000000003e9ffffffff27000000000065fefff036000000000000000000000000000068feffe62700000044ffffffff010000000000000000fcffffffe80000000000000000000000000000000000000000000000e3fffffffc00000000000000000000000000000016ffffffff8e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e0ffffffce3a000000178fffffffff3b00000014e3ffffffa1000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000000000000036a808080807c530200000000000000000000000000000000000000000000000000000000000000000000000012558fbbddf1fbfdf7eedcc6a37c470f000000000000000000000038ffffffffff240000000000000000000000000000000000000edefffffffff016000000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000acffffff2000000000002eeefffffffffffffffffffffffff7cccccccccccccce7fffffff4cccccccccca50000000000000000000000000023e9ffffff73000000000000000000000000000000000000a2ffffffb400000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000000000f5ffffffd40000000000000000000000000001fbffffffcc00000000000000000091ffffff9200000000000038ffffffffffffffffffffffffffffffffffffffffff500000000000d0ffffffff1c00000000000000000000000000afffffffff6200000000000065ee350000000000000000000000000000000066e426000000004cfffffff8000000000000000000fcffffffe80000000000000000000000000000000000000000000000caffffffff0e00000000000000000000000000002affffffff7900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffda0d0000000000007effffffb5000000003bfbffffff6200000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014eb6fafffffffffffffffffffffffffffffab86211000000000000000038ffffffffff240000000000000000000000000000000000000038fbffffffff9800000000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000acffffff2000000000000029ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd000000000000000000000000015dbffffffd304000000000000000000000000000000000000dbffffff88000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000000000000dcfffffff2040000000000000000000000001fffffffffb30000000000000000009affffff9000000000000038ffffffffffd3cccccccccccccccccccccccccccccc3f0000000000d0ffffffff1c000000000000000000000000007fffffffff9200000000000000120000000000000000000000000000000000000c00000000004cfffffff7000000000000000000fcffffffe80000000000000000000000000000000000000000000000a5ffffffff3a000000000000000000000000000056ffffffff53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffff590000000000000006e4fffff90b0000000076fffffff62d00000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff58000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ad6fffffffffffffffffffffffffffffffffffffffff9961900000000000038ffffffffff24000000000000000000000000000000000000000094fffffffffa1a00000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000acffffff2000000000000000046edcffffffffffffffffffffffffffffffffffffffffffffffffffffffd000000000000000000000000bcafffffffe3d00000000000000000000000000000000000017ffffffff4e00000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000000000000000000000000000b1ffffffff4700000000000000000000000070ffffffff870000000000000000007cffffffbb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000065ffffffffa5000000000000000000000000000000000000000000000000000000000000000045fffffffe000000000000000000fcffffffe8000000318bcce6fbf4d8a65b080000000000000000000059ffffffff890000000000000000000000000000a5fffffffc10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dafffffc0d000000000000000099ffffff420000000001b3ffffffd80c0000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000046fffffffff55b0000000000000000000000000000000000000000006cf7ffffffff960000000000000000000000000011abfffffffffffffffffee6d4cdd3e2fafffffffffffffffffff685000000000038ffffffffff24000000000000000000000000000000000000000024fdffffffff8200000000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000acffffff20000000000000000000024281bcdbedfdffffffffffffffffffffffffffffffffffffffffffd00000000000000000000004b5ffffffffa00000000000000000000000000000000000000056fffffffd11000000000000b8ffffffffe93500000000000000000387fffffffffe470000000000000000000000000000005cffffffffcd070000000000000000000015e8ffffffff3000000000000000000029fefffffd35000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000056ffffffffb800000000000000000000000000000000000000000000000000000000000000003dffffffff060000000000000000fcffffffe80012a5ffffffffffffffffffe85c0000000000000000000df5fffffff11400000000000000000000000023fbffffffc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f2ffffe300000000000000000070ffffff5b000000000012e1ffffffa50000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe020000000000000000098fffffffff7270000000000000000000000000000000000000032fcffffffffdf0c0000000000000000000000002ae0ffffffffffffda803c090000000000052d5ea8f4fffffffffffff4000000000038ffffffffff24000000000000000000000000000000000000000000b1ffffffffdb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffee1600000000000000000000000000000000000000a4ffffffcf0000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000000000009deffffffffb00d00000000000000001ccdffffffffbb000000000000000000000089ffffffe44d0500000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000050ffffffffbe000000000000000000003078bad8effae7d2b37431010000000000000000000031ffffffff170000000000000000fcffffffe81fdfffffffffffffffffffffffffb50b000000000000000081ffffffffb7030000000000000000000007c7ffffffff4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feffffd800000000000000000064ffffff6a00000000000038faffffff6600000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b0000000000000000000cdeffffffffc602000000000000000000000000000000000004cefffffffffe4200000000000000000000000032eeffffffffffd95a020000000000000000000000000966defffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000061ffffffffff2b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffffee1470000000000000000000000000000000000000004edffffff80000000000000c4ffffffff750000000000000000000000000be3ffffffff4d00000000000000000000000000000048feffffffffe26f1c000000002781eefffffffff6250000000000000000000000007dfbfffffffb47000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000005dffffffffaf000000000000000047caffffffffffffffffffffffe37c0d00000000000000001bffffffff300000000000000000fcfffffff2defffffffae2d1e4fcffffffffffffc10c000000000000000be3ffffffffb512000000000000000014bcffffffffc50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffe500000000000000000072ffffff5b0000000000000072fffffff730000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd30000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a00000000000000000000003ffeffffffff73000000000000000000000000000000000076ffffffffff9700000000000000000000000022e9ffffffffff8c030000000000000000000000000000000004e5fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000023ffffffffff670000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff2000000000000000000000043c83c1daeff9e6d1ab651d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047ffffffff2b00000000002bfffffffff1090000000000000000000000000076ffffffffb20000000000000000000000000000000069ffffffffffffffe8d4d7edfffffffffffff74500000000000000000000000000002be1ffffff4c000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000006bffffffffa00000000000000badffffffffffffffffffffffffffffffe9540000000000000004fdffffff4a0000000000000000fcffffffffffffb14c080000000f5ad4ffffffffffa9000000000000000031f3ffffffffee7f2a00000000267dedffffffffea1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8fffffe110000000000000000a0ffffff430000000000000000b0ffffffda0d0000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff950000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000000000091fffffffff72700000000000000000000000000000023f6ffffffffdf0c000000000000000000000006ccfffffffff95d00000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000e5ffffffff9a0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffd60000000000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000000000000000057edffffffffffffffffffffffffffffdd3b000000000000000000000000000065f2ffffffff4c000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000000000091ffffffff8800000000001bd0fffffffffffffce5d2d7ecffffffffffffff8100000000000000e7ffffff6e0000000000000000fcfffffffff85900000000000000000592ffffffffff53000000000000000047f2ffffffffffffefd8d6ecfffffffffffff13d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009fffffff620000000000000009ebfffffb0c000000000000000010dfffffffa900000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff43000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000000000009daffffffffc6020000000000000000000000000000bcfffffffffe4300000000000000000000000082ffffffffff690000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000bfffffffffbc0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000000043c83c1daeff9e6d1ab651d000000000000000000000000000000000000000011f8ffffff72000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000000000000001894f3ffffffffffffffffffffe9810b000000000000000000000000000070ffffffed611400000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c00000000000000000000000000bfffffffff570000000005c8ffffffffffc55410000000001e69ccffffffffe90f000000000000bfffffff980000000000000000fcfffffffd4e00000000000000000000009fffffffffe103000000000000000026d2ffffffffffffffffffffffffffffd8270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055ffffffe11200000000000089ffffffbc0000000000000000000035f9ffffff6a000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000000000000000000000000000000000000155792bcddf0faf9eedab88b500f0000000000000000000000000000000000000039fdffffffff730000000000000000000000000060ffffffffff9800000000000000000000000020f7ffffffffa1000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000adffffffffd90000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa0030000000000000000000000025edefffffffffffffffffffffeaa2700000000000000000000000000000000000078fffffff410000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b000000000000000000000000000000000000000f5b9acfe4f7f4e1c98f50070000000000000000000000000000001bf9ffffff44000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1d00000000000000000000000010f9ffffffff240000000090fffffffffa620000000000000000000043cefffb3f0000000000000093ffffffc30000000000000000fcffffffe80000000000000000000000000fe7ffffffff4f0000000000000000000564dfffffffffffffffffffffe87108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ddffffffd43f0100001a96ffffffff4700000000000000000000006ffffffff8320000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008afffffffff727000000000000000000000016edffffffffe00d0000000000000000000000009affffffffef0f000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000009affffffffe50000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000001bcafffffffffffffffffffffffffffffc7a0000000000000000000000000000000007e6ffffff9800000000000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffc600000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffa100000000000000000000000068ffffffffde0000000024fcfffffffe4e000000000000000000000000024e38000000000000000066fffffff50500000000000000fcffffffe8000000000000000000000000007bffffffffb50000000000000000000000043e86c3dcf2f6e1ca924a0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004bfeffffffffeed2deffffffffffaf00000000000000000000000000adffffffdd0f0000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d4ffffffffc60200000000000000000000a7ffffffffff4300000000000000000000000014f8ffffffff8100000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000008cffffffffed0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa003000000000000000000000000000067fffffffb2300000000000000faffffffff120000000000000000000000000000008bffffffff820000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffff9800000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffff82000000000000000000000fe8ffffffff7f000000009cffffffff920000000000000000000000000000000000000000000000002cffffffff3700000000000000fcffffffe8000000000000000000000000001efffffffff4030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ffffffffffffffffffffffce0f000000000000000000000000000fddffffffad000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033fbffffffff730000000000000000004affffffffff980000000000000000000000000069fffffffff51100000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff24000000000000000000000000000000000000000000009bffffffffe40000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000004bfffffffff52b000000000000000000000094ffffffffd40100000000000014e3fffffffffc9839020000001059d0ffffffffff86000000000000000000000000000ae5ffffff9c0000000000000000f9ffffffff130000000000000000000000000000008cffffffff81000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000097ffffff8d00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffffffa309000000000000000ac0fffffffff81e0000000ef9fffffff61400000000000000000000000000000000000000000000000001eaffffff7600000000000000fcffffffe80000000000000000000000000000dfffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057e9fffffffffffffffda00b00000000000000000000000000000032f8ffffff6e00000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000000000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f0000000000000000000000000000000000000082fffffffff727000000000000000ce1ffffffffe10d00000000000000000000000000bbffffffffae0000000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000adffffffffd80000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff2000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000000000000079fffffff91e0000000000000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000085ffffffa100000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffffd3ffffdb63110000000e5bddffffffffff81000000004bffffffff9f0000000000000000000000000000000000000000000000000000abffffffc300000000000000fcffffffe80000000000000000000000000000afffffffff620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6cb8e4f9edcf8b2d0000000000000000000000000000000000004de9fffff9350000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd7120000000000000000000000000000000000000000000db5ffffffe64800000067f4ffffff9203000000000000000000000000000000000000000005cfffffffffc60200000000000091ffffffffff440000000000000000000000000004f5ffffffff6a0000000000000000000000000000000000000000000000e0fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000bfffffffffbc0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000002bfffffffff1090000000000000000000000000076ffffffffb200000000004bfffffffff52b000000000000000000000094ffffffffd4010000000000000000000000e3ffffff8a000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000072ffffffb600000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff27c2fffffffee0d0e0faffffffffffffcd07000000008cffffffff5900000000000000000000000000000000000000000000000000005efffffffd15000000000000fcffffffe8000000000000000000000000000095ffffffff75000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe0200000000000000000000000000000000000000000000000028effffffff9724b4fffffffb6900000000000000000000000000000000000000000000002ef9ffffffff73000000000036fdffffffff9900000000000000000000000000002fffffffffff3600000000000000000000000000000005a5ccccccccccccf9fffffff4000000000038ffffffffff2400000000000000000000000000000000000000000000e7ffffffff9a0000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff200000006dffffffff9e00000000000000000000000000001bfffffffff10300000000c4ffffffff750000000000000000000000000be3ffffffff4d0000000000000000000000a2ffffe30b000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000000000000000000000000000000005cffffffff880000000000000000000000000000000000004effffffdb00000000000038ffffffffff24000000000000000000000000000000000000000000d0ffffffff1c0ca5ffffffffffffffffffffffffd0120000000000beffffffff1e00000000000000000000000000000000000000000000000000000ff9ffffff67000000000000fcffffffe8000000000000000000000000000086ffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000000000000000000000000000000000000000066fbffffffffffffffef44000000000000000000000000000000000000000000000000007bfffffffff72700000005d2ffffffffe10d000000000000000000000000000054ffffffffff1300000000000000000000000000000023fffffffffffffffffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000025ffffffffff650000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000adffffffff64000000000000000000000000000000dfffffffff350000002bfffffffff1090000000000000000000000000076ffffffffb20000000000000000000000005ee953000000000000000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000025fffffffd0a000000000038ffffffffffd3cccccccccccccccccccccccccccccccccccc0c0000d0ffffffff1c000057e8fffffffffffffffffb8c0c000000000000d2fffffffd03000000000000000000000000000000000000000000000000000000b3ffffffc9000000000000fcffffffe8000000000000000000000000000080ffffffff8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000175a94bedff1fbfbf0dbba8d5411000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a0000000000000000000000000000000000000000000000000000000042eeffffffffffdb28000000000000000000000000000000000000000000000000000003caffffffffc60200007bffffffffff4500000000000000000000000000000070fffffffffa0000000000000000000000000000000024fffffffffffffffffffffff4000000000038ffffffffff2400000000000000000000000000000000000000000063ffffffffff290000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000d4ffffffff36000000000000000000000000000000b0ffffffff5b0000006dffffffff9e00000000000000000000000000001bfffffffff1030000000000000000000000000d000000000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000002f8ffffff35000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000085eabdcf5f7dfbf74200000000000000000e5ffffffea0000000000000000000000000000000000000000000000000000000051ffffffff2c0000000000fcffffffe800000000000000000000000000008dffffffff7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000358befdfffffffffffffffffffffffffab44c01000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e0000000000000000000000000000000000000000000000000000000000000025808080807c130000000000000000000000000000000000000000000000000000000029f7ffffffff730026f7ffffffff9a000000000000000000000000000000007dfffffffff00000000000000000000000000000000024fffffffffffffffffffffff4000000000038ffffffffff24000000000000000000000000000000000000000000b4ffffffffd8000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000e8ffffffff200000000000000000000000000000009affffffff6f000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000d3ffffff62000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000000000000000000000000000000000000000f3fffffffffffffffffffffffffffffffffffffffffffff853000000000000000003e1ffffff9a0000000000fcffffffe800000000000000000000000000009bffffffff700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055deffffffffffffffffffffffffffffffffffffd447000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b04600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073fffffffff71fc0ffffffffe20e0000000000000000000000000000000085fffffffff00000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000027feffffffff7f000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000faffffffff120000000000000000000000000000008bffffffff82000000d4ffffffff36000000000000000000000000000000b0ffffffff5b0000000000000000000000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf0000000000000000000000000000000000000000000000005cffffffff8800000000000000000000000000000000000000abffffff8f000000000038ffffffffffffffffffffffffffffffffffffffffffffffff100000d0ffffffff1c000000000000000000000000000000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000000000000000078fffffff81800000000fcffffffe80000000000000000000000000000c1ffffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016b6ffffffffffffffffffffffffffffffffffffffffffffa60e0000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c3ffffffffd6ffffffffff4600000000000000000000000000000000007efffffffffa0000000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000000097fffffffff817000000000000000000000000000000000058fffffffff80000000000000000000000000000000000000000000000acffffff20000000f9ffffffff130000000000000000000000000000008cffffffff81000000e8ffffffff200000000000000000000000000000009affffffff6f000000000000000038ffffffffff1c0000000000000000000000b3ffffffffea370000000000000000048afffffffffd420000000000000000000000000000000000000000000000005cffffffff88000000000000000000000000000000000000008affffffb6000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a00000000000000000010efffffff8a00000000fcffffffe80000000000000000000000000001eeffffffff270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e6ffffffffffffffffffffffffffffffffffffffffffffffffdb2300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff740000000000000000000000000000000000000000000063e3ffffbc00000070ffffffff7400000000000000000000000000000024f5ffffffffffffffff9b00000000000000000000000000000000000071ffffffffff1400000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000000003cfcffffffff940000000000000000000000000000000000006afffffffffb0e00000000000000000000000000000000000000000000acffffff20000000e7ffffffff210000000000000000000000000000009affffffff6e000000faffffffff120000000000000000000000000000008bffffffff82000000000000000038ffffffffff1c000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000000368acce7fbf2d49f4e020000005cffffffff880000000000000000000000000000000000000079ffffffcb000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000aeffffffff260000000000000000000000000000daffffff76000000000000000000007bfffffff71c000000fcffffffe9000000000000000000000000003bfffffffff20100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038f1ffffffffffffffe5a05b321d080b1f3462a7ebffffffffffffffe828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000000047fdffffffbc00000070ffffffff74000000000000000000000000000000006cffffffffffffffe20e00000000000000000000000000000000000055ffffffffff3800000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000fe0ffffffffee1300000000000000000000000000000000000de5ffffffffff9300000000000000000000000000000000000000000000acffffff20000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000f9ffffffff130000000000000000000000000000008cffffffff81000000000000000038ffffffffff1c0000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000001fb2ffffffffffffffffffda4200005cffffffff880000000000000000000000000000000000000067ffffffde000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c0000000000000000000000000000000000000000006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000ceaffffff9d000000fcffffffff6f0000000000000000000000009affffffffaf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025ecffffffffffffd45501000000000000000000000461deffffffffffffe0180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000001debffffffffbc00000070ffffffff740000000000000000000000000000000062ffffffffffffffa00000000000000000000000000000000000000031ffffffffff6d00000000000000000000000000000000000000000000000000000000000000000038ffffffffff24000000000000000000000000000000000012c4ffffffffff5600000000000000000000000000000000000091fffffffffffffd33000000000000000000000000000000000000000000acffffff20000000aaffffffff66000000000000000000000000000000e1ffffffff32000000e7ffffffff210000000000000000000000000000009affffffff6e000000000000000038ffffffffff1c0000000000000000000000000016c3fffffffffffffffffffffffffffffa71000000000000000000000032eefffffffffffffffffffffffe98055cffffffff880000000000000000000000000000000000000063ffffffe4000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c0000000000000000000000000000000000000000002affffffffb8000000000000000000000000002effffffff21000000000000000000000067fffffffb0c0000fcfffffffffd54000000000000000000002cfcffffffff4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cffffffffffffc720200000000000000000000000000000483ffffffffffffbb010000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000000000000000000000038ffffffff740000000000000000000000000000000000000006c8ffffffffffbc00000070ffffffff740000000000000000000000000000001ff2fffffffffffffffe4600000000000000000000000000000000000005f6ffffffffb500000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000023d8ffffffffff9200000000000000000000000000000000000031fcffffffffffffffcb020000000000000000000000000000000000000000acffffff200000006affffffffa200000000000000000000000000001dffffffffef02000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000038ffffffffff1c00000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000027eefffffffffffff4dad0e6ffffffffb766ffffffff880000000000000000000000000000000000000082ffffffd1000000000000001cffffffffffffffffffffffffffffffffffffffffff04000000d0ffffffff1c00000000000000000000000000000000000000000000c4fffffffe3500000000000000000000000090ffffffdb00000000000000000000000002c9ffffc2000000fcfffffffffffd7d01000000000000001cdeffffffffe205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084ffffffffffef4500000000000000000000000000000000000055f6ffffffffff6b000000000000000000000000000000000010e5fffffff729000000000044ffffffffd20500000000000000000000000038ffffffff740000000000000000000000000000000000000093ffffffffffffbc00000070ffffffff74000000000000000000000000000001bfffffffffdbfcffffffe512000000000000000000000000000000000000c0fffffffff818000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000118bf8ffffffffffa902000000000000000000000000000000000002c9ffffffffb9ffffffff6c0000000000000000000000000000000000000000acffffff2000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000038ffffffffff1c0000000000000000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000001c1ffffffffffb83e030000001b72e7fffff1ffffffff8800000000000000000000000000000000000000cdffffffa80000000000000016ccccccccccccccccedffffffffd9cccccccccccccc03000000d0ffffffff1c000000000000000000000000000000000000000000004bffffffffd10d000000000000000000002cf6ffffff7a0000000000000000000000000032f07404000000fcfffffff2dcffffc650080000001870eeffffffffff51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f7fffffffffd4600000000000000000000000000000000000000005dffffffffffed110000000000000000000000000000000056ffffffffff820000000000a0ffffffffff3a00000000000000000000000038ffffffff7400000000000000000000000000000000000057ffffffffffffffbc00000070ffffffff74000000000000000000000000000071fffffffffd36a5ffffffffaa0000000000000000000000000000000000006fffffffffff8b000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000124d9bf0ffffffffffff970200000000000000000000000000000000000069ffffffffce21fefffffff11800000000000000000000000000000000000000acffffff2000000000bfffffffff780000000000000000000000000de5ffffffff47000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000059ffffffffff7e000000000000000014b4ffffffffffff880000000000000000000000000000000000005dffffffff6400000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c0000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d00000000000000000000000000000d0000000000fcffffffe81ddefffffffbdbd1e5feffffffffffffa500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097ffffffffff7b0000000000000000000000000000000000000000000097ffffffffff7d0000000000000000000000000000000052ffffffffff7d00000000009cffffffffff3500000000000000000000000038ffffffff74000000000000000000000000000000000028f3ffffffffffffffbc00000070ffffffff740000000000000000000000000029f7ffffffff8d0019eeffffffff5d000000000000000000000000000000000019fafffffffff3140000000000000000000000000000000000000000000000000000000000000038ffffffffffd3cccccccccccccccccdd8edfffffffffffffffff25e0000000000000000000000000000000000000016efffffffff5300a8ffffffffa700000000000000000000000000000000000000acffffff200000000046fffffffff62d000000000000000000000098ffffffffcf000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffffffab000000000000000000000197ffffffffff88000000000000000000000000000000000a73faffffffee0c00000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d000000000000000000000000000000000000000000fcffffffe8001cc2ffffffffffffffffffffffffae04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f6ffffffffdb03000000000000000000000000000000000000000000000deeffffffffe9050000000000000000000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000000000038ffffffff74000000000000000000000000000000000bd5ffffffffffffffffbc00000070ffffffff7400000000000000000000000004cbffffffffdc0a00005cfffffffff01f0000000000000000000000000000000000a3ffffffffffb40100000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffffffca0190000000000000000000000000000000000000000a3ffffffffcd010027fbffffffff45000000000000000000000000000000000000acffffff200000000000b3ffffffffea370000000000000000048afffffffffd42000000000000bfffffffff780000000000000000000000000de5ffffffff4700000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000024fffffffffd21000000000000000000000002abffffffff880000000000000000000000000035c3d5f7ffffffffff6c0000000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c0000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d00000000000000000000000000000000000000000000fcffffffe800000275f3fffffffffffffffff16f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061ffffffffff6200000000000000000000000000000000000000000000000082ffffffffff480000000000000000000000000000000026baf1c63b0000000000000053d3efab180000000000000000000000000038ffffffff7400000000000000000000000000000000a5fffffffff4ebffffffbc00000070ffffffff740000000000000000000000007ffffffffffe4000000000afffffffffc0020000000000000000000000000000000028faffffffffff7d00000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffe58d2100000000000000000000000000000000000000000041fffffffffe3b00000090ffffffffdb080000000000000000000000000000000000acffffff20000000000011e0fffffffffd9c3d02000000115ad2ffffffffff800000000000000046fffffffff62d000000000000000000000098ffffffffcf0000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000068ffffffffc0000000000000000000000000005cffffffff880000000000000000000000000090ffffffffffffff9d000000000000000000000000000000000000a4ffffffff400000000000000000000000d0ffffffff1c000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd780000000000000038ffffffffff1c000000000000000000fcffffffe800000000116cb5e2f7f4dbb565130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1ffffffffeb0500000000000000000000000000000000000000000000000014fcffffffff9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff740000000000000000000000000000006affffffffff59e2ffffffbc00000070ffffffff74000000000000000000000033fbffffffff99000000000017ecffffffff7500000000000000000000000000000000008dfffffffffffe8201000000000000000000000000000000000000002a160000000000000038fffffffffffffffffffffffffffffef5e9ccaa7538020000000000000000000000000000000000000000000006d7ffffffffa2000000000fe8ffffffff800000000000000000000000000000000000acffffff200000000000002ae0fffffffffffff6ded3e8fdffffffffffff98020000000000000000b3ffffffffea370000000000000000048afffffffffd420000000000000000000038ffffffffff1c00000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000000009affffffff76000000000000000000000000005cffffffff880000000000000000000000000094fffffffffff17300000000000000000000000000000000000000a4ffffffff4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ecffffffffaa0000000000000000000000000000000000000000000000000000caffffffffd70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff74000000000000000000000000000035f9ffffffff9400edffffffbc00000070ffffffff740000000000000000000008d6ffffffffe30e00000000000058fffffffff92e0000000000000000000000000000000009d3ffffffffffffae150000000000000000000000000000000030bbfff02c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cfffffffff118000000000060fffffffff82500000000000000000000000000000000acffffff200000000000000016c3fffffffffffffffffffffffffffffa710000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000038ffffffffff1c00000000000000000000000000002cf8fffffff32300000046ffffffffe3100000000000000000caffffffff4b000000000000000000000000005cffffffff880000000000000000000000000094fff3e0b36f120000000000000000000000000000000000000000a4ffffffff40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f330000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022ffffffffff68000000000000000000000000000000000000000000000000000087fffffffffe0d0000000000000000000000002872abd2eefafbf1d9b47e38000000000000000000000000005ddcfacc3d00000038ffffffff740000000000000000000000000012e1ffffffffc90600f0ffffffbc00000070ffffffff74000000000000000000008dffffffffff4c0000000000000000aaffffffffd3070000000000000000000000000000000027ecfffffffffffff4871200000000000000000000000037a7feffffffcf050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022f6ffffffff7100000000000001c6ffffffffbb00000000000000000000000000000000acffffff2000000000000000000155d8fffffffffffffffffffffda1210000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000000038ffffffffff1c000000000000000000000000000084ffffffffff7a000000a6ffffffffff560000000000000000e1ffffffff28000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045ffffffffff33000000000000000000000000000000000000000000000000000051ffffffffff2f0000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000005bfffffffffb31000038ffffffff7400000000000000000000000001b6ffffffffec1e0000f0ffffffbc00000070ffffffff740000000000000000003ffdffffffffa500000000000000000014e9ffffffff8d000000000000000000000000000000000036effffffffffffffff8b3713d1c0a020b16355b95ddffffffffffffff65000000000000000000000000000000001a7bc3e4f9e8ce9b39000000000000000000000000000000000000000000000000b6ffffffffd4040000000000000033fdffffffff5a000000000000000000000000000000acffffff200000000000000000000001357ebed8eef9e5cfa85f1700000000000000000000000000000016c3fffffffffffffffffffffffffffffa710000000000000000000000000038ffffffffff1c000000000000000000000000000080ffffffffff75000000a2ffffffffff510000000000000000f0ffffffff1b000000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061ffffffffff1e00000000000000000000000000000000000000000000000000003cffffffffff4c00000000000000002bc1ffffffffffffffffffffffffffffffffd7460000000000000000d1ffffffffffb0000038ffffffff740000000000000000000000007dfffffffffd48000000f0ffffffbc00000070ffffffff7400000000000000000ddfffffffffea140000000000000000000052fffffffffe4100000000000000000000000000000000002adfffffffffffffffffffffffffffffffffffffffffffffffffffa1040000000000000000000000000000000034ffffffffffffffff8b0000000000000000000000000000000000000000000054ffffffffff4100000000000000000099ffffffffe80f0000000000000000000000000000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000000000038ffffffffff1c000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000fdffffffff0f000000000000000000000000005cffffffff88000000000000000000003078bad8effae7d2b3743101000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffffff0a000000000000000000000000000000000000000000000000000028ffffffffff58000000000000004ef2fffffffffffffffffffffffffffffffffffffd7500000000000000f4ffffffffffd1000038ffffffff74000000000000000000000044fdffffffff8100000000f0ffffffbc00000070ffffffff7400000000000000009cffffffffff58000000000000000000000000a7ffffffffe21000000000000000000000000000000000000fa4fffffffffffffffffffffffffffffffffffffffffffff76900000000000000000000000000000000000000a07f3e2f59e3ffffff4900000000000000000000000000000000000000000de4ffffffffa80000000000000000000013edffffffff950000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f170000000000000000000000000000000038ffffffffff1c0000000000000000000000000000003bc7f1be31000000000051d1f0b423000000000000000000f8ffffffff16000000000000000000000000005cffffffff88000000000000000047caffffffffffffffffffffffe37c0d00000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075fffffffffc00000000000000000000000000000000000000000000000000000019ffffffffff6100000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000d0ffffffffffad000038ffffffff74000000000000000000001beaffffffffba0200000000f0ffffffbc00000070ffffffff74000000000000004bffffffffffb10000000000000000000000000012e7ffffffffa50000000000000000000000000000000000000040caffffffffffffffffffffffffffffffffffffffb2220000000000000000000000000000000000000000000000000062ffffff8600000000000000000000000000000000000000008efffffffff41c000000000000000000000069fffffffffd3500000000000000000000000000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000e7ffffffff23000000000000000000000000005cffffffff880000000000000badffffffffffffffffffffffffffffffe954000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000000041cbf3c237000000000057d4f2b8280000000000000038ffffffffff1c000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006dffffffffff0b000000000000000000000000000000000000000000000000000029ffffffffff5800000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff69000000000055fffffffff92d000038ffffffff7400000000000000000005c5ffffffffe3140000000000f0ffffffbc00000070ffffffff7400000000000013e7fffffffff01a00000000000000000000000000004dffffffffff5800000000000000000000000000000000000000003ca4f1fffffffffffffffffffffffffff1a031000000000000000000000000000000000000000000000000000003a3ffffff6c000000000000000000000000000000000000002ffcffffffff7800000000000000000000000002ceffffffffcd03000000000000000000000000acffffff20000000000000000000000000004ffffff59c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000d3ffffffff3e000000000000000000000000005cffffffff8800000000001bd0fffffffffffffce5d2d7ecffffffffffffff810000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000002cf8fffffff32300000046ffffffffe31000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060ffffffffff1f00000000000000000000000000000000000000000000000000003dffffffffff4b0000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000056daf9c93700000038ffffffff7400000000000000000090fffffffffa39000000000000f0ffffffbc00000070ffffffff74000000000000aaffffffffff6400000000000000000000000000000000a2ffffffffee1c00000000000000000000000000000000000000000007427baccde8f4fdf6ebd2af804508000000000000000000000000000000000000000000000000002a5f8eddffffffd60c00000000000000000000000000000000000001c7ffffffffd906000000000000000000000000003afeffffffff6e000000000000000000000000acffffff200000000000000000000000000000b5ffffffa50100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000112000000000000000000000000000000000000080000000000000000a5ffffffff6e000000000000000000000000005cffffffff880000000005c8ffffffffffc55410000000001e69ccffffffffe90f00000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000084ffffffffff7a000000a6ffffffffff5600000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffff35000000000000000000000000000000000000000000000000000052ffffffffff2d0000000095ffffffffffe53100000000000000000000000017caffffffffffc10000000000000000000000000038ffffffff74000000000000000055ffffffffff6e00000000000000f0ffffffbc00000070ffffffff7400000000005affffffffffbc000000000000000000000000000000000010e5ffffffffbc0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fffffffff1900f0000000000000000000000000000000000000067ffffffffff47000000000000000000000000000000a2fffffffff11a0000000000000000000000acffffff20000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000095da1a0000000000000000000000000000000015d474000000000000006bffffffffab000000000000000000000000005cffffffff880000000090fffffffffa620000000000000000000043cefffb3f0000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000080ffffffffff75000000a2ffffffffff5100000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020ffffffffff6c00000000000000000000000000000000000000000000000000008afffffffffe0c0000001cf8fffffffff42800000000000000000000000000000edcffffffffff4000000000000000000000000038ffffffff740000000000000026f2ffffffffa90000000000000000f0ffffffbc00000070ffffffff74000000001aeefffffffff52100000000000000000000000000000000000049ffffffffff6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035fffff64608000000000000000000000000000000000000000015eeffffffffaf0000000000000000000000000000000018f1ffffffffaa0000000000000000000000acffffff2000000000000000000000000000000082ffffffff6d000000000000000000000000000000000090fffff791020000000000059bf9ffff640000000000000000000000000038ffffffffff1c00000000000000000091ffffd818000000000000000000000000000014d2ffff7400000000000029fffffffff80f0000000000000000000000005cffffffff8800000024fcfffffffe4e000000000000000000000000024e38000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c00000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaffffffffad0000000000000000000000000000000000000000000000000000cdffffffffd3000000008bffffffffff620000000000000000000000000000000034fdffffffffb700000000000000000000000038ffffffff740000000000000ad3ffffffffd80c0000000000000000f0ffffffbc00000070ffffffff7400000000b7fffffffff55d000000000000000000000000000000000000000082f9fffffff72a0000000000000000000000000000033e7cafd3edf8fcf2e5c5a067240000000000000000000000000000000000000000000000000000000000000001e5ffff27000000000000000000000000000000000000000000a1fffffffff620000000000000000000000000000000000073ffffffffff4700000000000000000000acffffff2000000000000000000000000000000009dffffffffd530000000000000000000000000000000002adffffffaa0600000009b5ffffff83000000000000000000000000000038ffffffffff1c000000000000000011deffffffd61600002174abc3c1a66b19000013d1ffffffe912000000000000c3ffffffff8400000000000000000000000063ffffffff880000009cffffffff9200000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe80000014495d1e8fbf4d8a65b08000000000000000000000000000000003bc7f1be31000000000051d1f0b4230000000000000038ffffffffff1c000000000000000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adffffffffee0700000000000000000000000000000000000000000000000017fdffffffff9500000000e0ffffffffda020000000000000000000000000000000000aefffffffffb12000000000000000000000038ffffffff74000000000000a2fffffffff42b000000000000000000f0ffffffbc00000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e8de8ffffffffffffffffffffffffffc960030000000000000000000000000000000000000000000000001562a1d5f6fffffffdf4e6c69f652000000000000000000000000000003fffffffffff7e00000000000000000000000000000000000004d5ffffffffdc08000000000000000000acffffff20000000000000000000000000000000004ffffffffff73c0000000000000000000000000000000009c7ffffffb80a000dc0ffffffa200000000000000000000000000000038ffffffffff1c00000000000000000021e3ffffffd434a9fdfffffffffffffa9e29cfffffffed2e0000000000000057fffffffff9320000000000000000000018e1ffffffff8800000ef9fffffff61400000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe8002ec4ffffffffffffffffffe85c0000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffff6800000000000000000000000000000000000000000000000087ffffffffff4300000023ffffffffff6d0000000000000000000000000000000000003effffffffff50000000000000000000000038ffffffff74000000000067ffffffffff5b00000000000000000000f0ffffffbc00000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001194faffffffffffffffffffffffffffffffffffd7450000000000000000000000000000000000000000003fb2fcfffffffffffffffffffffffffffec253010000000000000000000005d6ffffffffdc080000000000000000000000000000000000000042feffffffff83000000000000000000acffffff200000000000000000000000000000000000b3ffffffffee290000000000000000000000000000000014dbffffffc421caffffffbd0500000000000000000000000000000038ffffffffff1c0000000000000000000025e7ffffffffffffffffffffffffffffffffffffef32000000000000000001c3ffffffffec37000000000000000024d7ffffffffff8800004bffffffff9f0000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffe84cf6ffffffffffffffffffffffffb50b000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000df2ffffffffdf040000000000000000000000000000000000000000000010f1ffffffffe40300000056ffffffffff2600000000000000000000000000000000000004f3ffffffff85000000000000000000000038ffffffff740000000033f8ffffffff960000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000000044e8fffffffffffffffffffffffffffffffffffffffffe9104000000000000000000000000000000000018a9ffffffffffffffffffffffffffffffffffffffcc340000000000000000007affffffffde2e00000000000000000000000000000000000000000075f5fffffff9270000000000000000acffffff20000000000000000000000000000000000017c2fbffffffe0190000000000000000000000000000000024ebfffffffaffffffd30f0000000000000000000000000000000038ffffffffff1c00000000000000000000002bebfffffffffffffffffffffffffffffffff1360000000000000000000025f6fffffffffd9837010000002e8cf5ffffffffffff8800008cffffffff590000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffafbfffffffae2d1e4fcffffffffffffc10c0000000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffffffff82000000000000000000000000000000000000000000009dffffffffff760000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa7000000000000000000000038ffffffff7400000011dfffffffffcb060000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000006efdffffffffffffffffffffffffffffffffffffffffffffffb90c0000000000000000000000000000005eeffffffffffffffffffffffffffffffffffffffffffffc79010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000039f6ffffffffffe51d000000000000000000000000000000000038ffffffffff1c0000000000000000000000004ffffffffff488310a0d368ff7ffffffff5000000000000000000000000046f6fffffffffffff3dbd7f2ffffffffc5fdffffff880000beffffffff1e0000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcffffffffffffb14c080000000f5ad4ffffffffffaa0000000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001af4fffffffffe4c000000000000000000000000000000000000000064ffffffffffe80d000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000037ffffff3900000038ffffffff74000001b3ffffffffed1f000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000074ffffffffffffffffe19a532e180406122a5d99dfffffffffffffbd070000000000000000000000000077ffffffffffffffe79f562f180406122a5e9be2ffffffffffffa20300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000052fdfffffff23000000000000000000000000000000000000038ffffffffff1c000000000000000000000000b2ffffffd32100000000000027dbffffff9f0000000000000000000000000043ebffffffffffffffffffffffffbe0be2ffffff880000d2fffffffd030000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffff85900000000000000000592ffffffffff5300000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007afffffffffff24b0000000000000000000000000000000000005cf8ffffffffff61000000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000054ffffff5500000038ffffffff7400007afffffffffe4a00000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000053feffffffffffffd45201000000000000000000000254cdfffffffff53000000000000000000000000082ffffffffffffdf5d0200000000000000000000045ed8fffffffff831000006d8ffee8b0200000000000000000000000000000000000000000000000000000000000000004796d1ebfcff140000acffffff2000000000000000000000043c83c1daeff9e6d1ab651d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c00000000000000000000002cffffffe418000000000000000021eefffffc1b00000000000000000000000000139ffefffffffffffffffff6760400bfffffff880000e5ffffffea000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4000000000000000000000fcfffffffd4e00000000000000000000009fffffffffe203000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6fffffffffffd780300000000000000000000000000000689ffffffffffffb000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000070ffffff7000000038ffffffff740042fcffffffff830000000000000000000000000000f0ffffffbc00000070ffffffff7400000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000001df0fffffffffffd77020000000000000000000000000000037dfcfff7430000000000000000000000005dffffffffffff8b0600000000000000000000000000000795fffffc510000000044ffffff780000000000000000000000000000000000000000000000000000000000002bcbffffffffffff14000000000000000000000000000000025edefffffffffffffffffffffeaa27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000083ffffff5d0000000000000000000071ffffff6f000000000000000000000000000000237dbee6f8f4dbbb6c160000005af7ffff880000f3fffffffffffffffffffffffffffffffffffffffffffff853000000005a992f000000000000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000fe7ffffffff51000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001de5ffffffffffffd85a02000000000000000000000566e1ffffffffffffd71200000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000088ffffff8700000038ffffffff701ae8ffffffffbc020000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000b3fffffffffff34b00000000000000000000000000000000000039a9410000000000000000000000001ff1fffffffffb6400000000000000000000000000000000000054c957000000000000abfffff6200000000000000000000000000000000000000000000000000000000041f4ffffffffffffff0f00000000000000000000000000001bcafffffffffffffffffffffffffffffc7a000000000000000000000000000bedfffffa9e00000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000bdfffff5080000000000000000000013fcffffa80000000000000000000000000000000000000000000000000000000000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000054fffff6570000000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000007bffffffffb7000000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002eebffffffffffffffe8a45d341f090c213665abeeffffffffffffffe0200000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000009dffffff9d00000038ffffffff6cc3ffffffffe415000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000040fffffffffffe5000000000000000000000000000000000000000000000000000000000000000000000c0ffffffffff6d000000000000000000000000000000000000000000000000000000001cf4ffffb10000000000000000000000000000000000000000000000000000001aecffffffffffe3cd8f00000000000000000000000000002fe5fffffffffffff5ddd2e6fcffffffffffffa00300000000000000000000000082ffffffff4f000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000d7ffffd1000000000000000000000000e0ffffc10000000000000000000000000000000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a000022f0ffffffff8201000000a4ffffffff4000000000000000000000fcffffffe8000000000000000000000000001efffffffff4040000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027dfffffffffffffffffffffffffffffffffffffffffffffffffd31b000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000afffffffae00000038ffffffffdafffffffffa3a00000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000baffffffffff860000000000000000000000000000000000000000000000000000000000000000000044ffffffffffaa00000000000000000000000000000000000000000000000000000000000076ffffff4c000000000000000000000000000000000000000000000000000094ffffffffbb2a0000000000000000000000000000000014e3fffffffffc9839020000001059d0ffffffffff8600000000000000000000000015f6ffffffbf000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000d6ffffce000000000000000000000000dbffffc2000000000000000000000000003078bad8effae7d2b374310100000000000000000000aeffffffff260000000000000000000000000000daffffff76000013c2ffffffffffab0a0000a4ffffffff4000000000000000000000fcffffffe80000000000000000000000000000dfffffffff330000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010acffffffffffffffffffffffffffffffffffffffffffff9c0a00000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000bdffffffbc00000038ffffffffffffffffff700000000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000026feffffffffe10600000000000000000000000000000000000000000000000000000000000000000000b6fffffffff21200000000000000000000000000000000000000000000000000000000000005d6ffffdd0800000000000000000000000000000000000000000000000004f3ffffffc3040000000000000000000000000000000000b8ffffffffe93500000000000000000387fffffffffe4700000000000000000000000095ffffffff2f0000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000bdffffef03000000000000000000000af8ffffa9000000000000000000000047caffffffffffffffffffffffe37c0d00000000000000006effffffff5f0000000000000000000000000001f1ffffff5e00000006a3ffffffffffcc1b00a1ffffffff4000000000000000000000fcffffffe80000000000000000000000000000afffffffff620000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cd9ffffffffffffffffffffffffffffffffffffce3e000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c8ffffffc800000038ffffffffffffffffab000000000000000000000000000000000000f0ffffffbc00000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000007cffffffffff66000000000000000000000000000000000000000000000000000000000000000000002afeffffffff87000000000000000000000000000000000000000000000000000000000000000041ffffff8000000000000000000000000000000000000000000000000038ffffffff3e00000000000000000000000000000000004bfffffffff52b000000000000000000000094ffffffffd401000000000000000000000021fcffffff9d0000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000083ffffff48000000000000000000005cffffff6f0000000000000000000badffffffffffffffffffffffffffffffe954000000000000002affffffffb8000000000000000000000000002effffffff2100000000007fffffffffffe5359affffffff4000000000000000000000fcffffffe8000000000000000000000000000095ffffffff760000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000253bafcfffffffffffffffffffffffff8b0460000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ceffffffcd00000038ffffffffffffffd90d000000000000000000000000000000000000f0ffffffbc0000000a93eff29f1200000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000c9ffffffffe9050000000000000000000000000000000000000000000000000000000000000000000086fffffffff815000000000000000000000000000000000000000000000000000000000000000000a8fffff722000000000000000000000000000000000000000000000058fffffff5030000000000000000000000000000000000c4ffffffff750000000000000000000000000be3ffffffff4d000000000000000000000000a7fffffff71500000000000000000000000000000000000000000038ffffffffff1c000000000000000000000029ffffffd00800000000000000000eddfffffb1b00000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff8100000000000000c4fffffffe3500000000000000000000000090ffffffdb000000000000005bf8fffffffff6d2ffffffff4000000000000000000000fcffffffe8000000000000000000000000000086ffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000155792bcddf0faf9eedab88b500f00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d2ffffffd200000038fffffffffffff52c00000000000000000000000000000000000000f0ffffffbc000000b7ffffffffce05000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000008faffffffff980000000000000000000000000000000000000000000000000000000000000000000000d0ffffffffb2000000000000000000000000000000000000000000000000000000000000000000001af2ffffb4000000000000000000000000000000000000000000000067ffffffe000000000000000000000000000000000002bfffffffff1090000000000000000000000000076ffffffffb200000000000000000000000030ffffffff7b00000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000afffffffaf090000000000000dbbffffff9c000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000000000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000003cecffffffffffffffffff4000000000000000000000fcffffffe8000000000000000000000000000080ffffffff8d0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffffff5d0000000000000000000000000000000000000000f0ffffffbc000043ffffffffffff62000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000035ffffffffff58000000000000000000000000000000000000000000000000000000000000000000000bfdffffffff6c000000000000000000000000000000000000000000000000000000000000000000000073ffffff4f0000000000000000000000000000000000000000000058ffffffe900000000000000000000000000000000006dffffffff9e00000000000000000000000000001bfffffffff103000000000000000000000000baffffffe505000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000005fffffffffd7540700000a5bdcffffffff31000000000000000090fffffffffa620000000000000000000043cefffb3f0000000000000000b6ffffffffc218000000000000000029dfffffffed0d00000000000000000024d9ffffffffffffffff4000000000000000000000fcffffffe800000000000000000000000000008dffffffff7e0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffff99000000000000000000000000000000000000000000f0ffffffbc000066ffffffffffff88000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000057ffffffffff270000000000000000000000000000000000000000000000000000000000000000000039ffffffffff37000000000000000000000000000000000000000000000000000000000000000000000004d4ffffdf0900000000000000000000000000000000000000000043fffffffa0000000000000000000000000000000000adffffffff64000000000000000000000000000000dfffffffff3500000000000000000000000043ffffffff59000000000000000000000000000000000000000038ffffffffff1c00000000000000000000003af4fffffffffffff5d7daf8ffffffffffffd81500000000000024fcfffffffe4e000000000000000000000000024e3800000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d000000000000000000000012c0ffffffffffffff4000000000000000000000fcffffffe800000000000000000000000000009bffffffff6f0000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038ffffffffcc07000000000000000000000000000000000000000000f0ffffffbc00003fffffffffffff5e000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000073fffffffffe07000000000000000000000000000000000000000000000000000000000000000000005affffffffff130000000000000000000000000000000000000000000000000000000000000000000000003fffffff8300000000000000000000000000000000000000000026ffffffff0e00000000000000000000000000000000d4ffffffff36000000000000000000000000000000b0ffffffff5b00000000000000000000000000ccffffffc9000000000000000000000000000000000000000038ffffffffff1c000000000000000000002fefffffffffffffffffffffffffffffffffffffce0f00000000009cffffffff9200000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d0000000000000000000000000006a1ffffffffffff4000000000000000000000fcffffffe80000000000000000000000000000c1ffffffff580000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003effff91000000001679cef8f2bb3f00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000038fffffdce1d00000000000000000000000000000000000000000000f0ffffffbc000000b3ffffffffcc04000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000007ffffffffff5000000000000000000000000000000000000000000000000000000000000000000000074fffffffffa0000000000000000000000000000000000000000000000000000000000000000000000000000a4fffff824000000000000000000000000000000000000000003f7ffffff3700000000000000000000000000000000e8ffffffff200000000000000000000000000000009affffffff6f0000000000000000000000000056ffffffff38000000000000000000000000000000000000000000000000000000000000000000000025e9ffffffd24fd8ffffffffffffffffcb64f4ffffffc3090000000ef9fffffff6140000000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd78000000000000000000000000000000007cfeffffffff4000000000000000000000fcffffffe80000000000000000000000000001eeffffffff260000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017fffff04008359ff9fffffffffffc4f000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000a8fedf19c1100000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000085ffffffffee000000000000000000000000000000000000000000000000000000000000000000000080fffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000018f1ffffb7000000000000000000000000000000000000000000cdffffff6300000000000000000000000000000000faffffffff120000000000000000000000000000008bffffffff82000000000000000000000000005effffffffa7000000000000000000000000000000000000000000000000000000000000000000001be1ffffffd616000351a5def6f4da9e4501003ef5ffffffb60400004bffffffff9f0000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a00000000000000000000000000000000000059f8ffffff4000000000000000000000fcffffffe9000000000000000000000000003bfffffffff0010000fcffffffe800000000000000000000000000b4ffffffff34000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffffffffffffffffffffffffe7060000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000007dfffffffff5000000000000000000000000000000000000000000000000000000000000000000000085fffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffff5200000000000000000000000000000000000000009fffffff8e00000000000000000000000000000000f9ffffffff130000000000000000000000000000008cffffffff8100000000000000000000000000cefffffffffb1b00000000000000000000000000000000000000000000000000000000000000000009bcffffd919000000000000000000000000000041f5ffff9d0100008cffffffff5900000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f33000000000000000000000000000000000000000000000000000000000000000000000000fcffffffff6f0000000000000000000000009affffffffac000000fcffffffe800000000000000000000000000b5ffffffff32000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028edfffffffffffffff5d6e3ffffff410000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc0000000070ffffffffff09000000000000000000000000000000000000000000000000000000000000000000007cfffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000003d1ffffe10a0000000000000000000000000000000000000070ffffffba00000000000000000000000000000000e7ffffffff210000000000000000000000000000009affffffff6e00000000000000000000000040ffffffffffff85000000000000000000000000002bbff3ca410000000000000059d7f1af1c0000000009b9dd1c0000000000000000000000000000000042f6a302000000beffffffff1e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffffffd54000000000000000000002cfcffffffff4c000000fcffffffe800000000000000000000000000c2ffffffff23000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022a3e9f8e1b97a370300007fffff660000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000003effff91000000001679cef8f2bb3f000000000000000000000000091d0000000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc0000000053ffffffffff2a000000000000000000000000000000000000000000000000000000000000000000006fffffffffff150000000000000000000000000000000000000000000000000000000000000000000000000000003cfeffff860000000000000000000000000000000000000044ffffffe400000000000000000000000000000000d3ffffffff38000000000000000000000000000000b2ffffffff5a000000000000000000000000b0ffffffffffffeb08000000000000000000000010e5fffffff729000000000044ffffffffd20500000000081b000000000000000000000000000000000000300300000000d2fffffffd0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003078bad8effae7d2b374310100000000000000fcfffffffffffd7d01000000000000001cdeffffffffdf04000000fcffffffe800000000000000000000000000e1ffffffff10000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000017fffff04008359ff9fffffffffffc4f0000000000000000000000bae72e00000000000038ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc000000002effffffffff5d0000000000000000000000000000000000000000000000000000000000000000000051ffffffffff3b00000000000000000000000000000000000000000000000000000000000000000000000000000000a1fffff9260000000000000000000000000000000000002bfffffffc01000000000000000000000000000000aaffffffff66000000000000000000000000000000e1ffffffff32000000000000000000000023fdffffffffffffff63000000000000000000000056ffffffffff820000000000a0ffffffffff3a000000000000000000000000000000000000000000000000000000000000e5ffffffea0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047caffffffffffffffffffffffe37c0d0000000000fcffffffb6dcffffc650080000001870eeffffffffff4b00000000fcfffffff72e00000000000000000000001fffffffffe300000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd400000000000000000000000000beffffffffffffffffffffffffffe70600000000000000000003e6ffe822000000000038ffffffffffd3ccccccccccccccccccccccccccccccccccccccccecffffffffbc0000000003f3ffffffffa0000000000000000000000000000000000000000000000000000000000000000000002cffffffffff710000000000000000000000000000000000000000000000000000000000000000000000000000000016efffffba00000000000000000000000000000000000014ffffffff100000000000000000000000000000006affffffffa200000000000000000000000000001dffffffffef02000000000000000000000092ffffffffc7ffffffd2000000000000000000000052ffffffffff7d00000000009cffffffffff35000000000000000000000000000000000000000000000000000000000000f3fffffffffffffffffffffffffffffffffffffffffffff85300000000000000000000000000000000003eddffffaa00000000000000000000000000000badffffffffffffffffffffffffffffffe95400000000fcffffff811ee1fffffffbdbd1e5feffffffffffff9f0000000000fcffffffffed350000000000000000000089ffffffffa800000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000004b9f4750000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000028edfffffffffffffff5d6e3ffffff410000000000000000000034f6ffcf080000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000b9ffffffffef0a00000000000000000000000000000000000000000000000000000000000000000002f1ffffffffbb00000000000000000000000000000000000000000000000000000000000000000000000000000000006dffffff55000000000000000000000000000000000011ffffffff1a00000000000000000000000000000027fffffffff30a0000000000000000000000000079ffffffffaf00000000000000000000000ff3ffffffec40ffffffff41000000000000000000000de1fffffff52400000000003dfeffffffcb03000000000000000000003078bad8effae7d2b37431010000000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff910000000000000000000000000000000034f4fffff31b000000000000000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff81000000fcffffff65001cbfffffffffffffffffffffffffa9030000000000fcfffffffffff77101000000000000003efaffffffff4e00000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000048ffffee0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000000022a3e9f8e1b97a370300007fffff66000000000000000000000067ffff840000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000066ffffffffff7600000000000000000000000000000000000000000000000000000000000000000000b5fffffffffb1e0000000000000000000000000000000000000000000000000000000000000000000000000000000003ceffffe30b000000000000000000000000000000003bfffffff60500000000000000000000000000000000bfffffffff780000000000000000000000000de5ffffffff47000000000000000000000074ffffffff9701ddffffffb0000000000000000000000026baf1c63b0000000000000053d3efab1800000000000000000047caffffffffffffffffffffffe37c0d000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a00000000000000000000000000000023e9ffffff730000000000000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000fcffffff4800000278f3ffffffffffffffffef6902000000000000fcfffffffdffffffca570c000000177bf6ffffffffdb0200000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000072ffffff1100000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000c5fff81b00000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000012f6ffffffffec0d00000000000000000000000000000000000000000000000000000000000000000062ffffffffff97000000000000000000000000000000000000000000000000000000000000000000000000000000000039feffff8900000000000000000000000000000000b3ffffffa7000000000000000000000000000000000046fffffffff62d000000000000000000000098ffffffffcf000000000000000000000003e1ffffffff2d0076fffffffd22000000000000000000000000000000000000000000000000000000000000000000000badffffffffffffffffffffffffffffffe9540000000000aeffffffff260000000000000000000000000000daffffff76000000000000000000000000000015dbffffffd3040000000000000000000000000090fffffffffa620000000000000000000043cefffb3f000000fcffffd10b00000000136cb5e2f7f4dab462110000000000000000fcffffffe867fcfffffffcddd0e2fefffffffffffd3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000008dffffff2c00000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffff8700000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000096ffffffffffa100000000000000000000000000000000000000000000000000000000000000000010f3fffffffff91d00000000000000000000000000000000000000000000000000000000000000000000000000000000009efffffa29000000000000000000000000001c99ffffffe81d000000000000000000000000000000000000b3ffffffffea370000000000000000048afffffffffd42000000000000000000000056ffffffffbf000013f7ffffff8e0000000000000000000000000000000000000000000000000000000000000000001bd0fffffffffffffce5d2d7ecffffffffffffff81000000006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000000000bcafffffffe3d0000000000000000000000000024fcfffffffe4e000000000000000000000000024e3800000000000000000000000000000000000000000000000000000000000000fcffffffe8004eecfffffffffffffffffffffffe6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000a8ffffff4700000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000d4ffffffd4000000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000000000003eaffe100000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000001df5ffffffffff7000000000000000000000000000000000000000000000000000000000000000000090ffffffffffc1040000000000000000000000000000000000000000000000000000000000000000000000000000000015eeffffbd000000000000000000000000c2ffffffffd5220000000000000000000000000000000000000011e0fffffffffd9c3d02000000115ad2ffffffffff80000000000000000000000000c7ffffffff52000000a1fffffff10c00000000000000001d78a6d1e5f5f9e5cfa25a12000000000000000000000005c8ffffffffffc55410000000001e69ccffffffffe90f0000002affffffffb8000000000000000000000000002effffffff2100000000000000000000000004b5ffffffffa000000000000000000000000000009cffffffff920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffe8000014a2feffffffffffffffffe14f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000c2ffffff6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc610300000000000000000000001dafefffffff22000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000007bfffffffffffc73000000000000000000000000000000000000032b05000000000000000000000019f3ffffffffff8e00000000000000000000000000000000000000000000000000000000000000000000000000000000006affffff580000000000000000000000ccffffff8b020000000000000000000000000000000000000000002ae0fffffffffffff6ded3e8fdffffffffffff9802000000000000000000000037ffffffffe00300000037ffffffff6c000000000000000046fffffffffffffffffffff6880f00000000000000000090fffffffffa620000000000000000000043cefffb3f0000000000c4fffffffe3500000000000000000000000090ffffffdb000000000000000000000000009dffffffffee16000000000000000000000000000ef9fffffff6140000000000000000000000000000000000000000d0ffffffff1c00000000000000000000000fb2f8ffffff8a000000fcffffffe8000000002783c3eafaf1dbab5e0800000000000000000024e2fffff7b8250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000004d1ffffffffff49000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000004c4ffffffffffffa60f0000000000000000000000000000003dd5ffb502000000000000000000000076ffffffffffff8f0300000000000000000000000000000000000b460d0000000000000000000000000000000000000002ccffffe50d00000000000000000000ccffffffffc01500000000000000000000000000000000000000000016c3fffffffffffffffffffffffffffffa7100000000000000000000000000a8ffffffff760000000000ccffffffda01000000000000002cffffffffffffffffffffffffe7330000000000000024fcfffffffe4e000000000000000000000000024e380000000000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000000000000082fffffffee14700000000000000000000000000004bffffffff9f000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000004beffffffffbb03000000fcffffffe800000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff700000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000033ffffffffffff4c000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000001be2ffffffffffffef7f0f000000000000000000000029a7ffffffff7f000000000000000000000003c1ffffffffffffb8190000000000000000000000000000004ee4ffc5040000000000000000000000000000000000000036feffff8c000000000000000000000530aeffffffda120000000000000000000000000000000000000000000155d8fffffffffffffffffffffda121000000000000000000000000001dfbfffffff612000000000062ffffffff4b000000000000000bf7fffffffffffffffffffffffff4430000000000009cffffffff920000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d0000000000000000000000000000000000000000000000000000000000000000008cffffffff59000000000000000000000000000000000000000000d0ffffffff1c0000000000000000000095ffffffffdf1300000000fcffffffe8000000000000000000000000000000000000000000000000001bd9ffffffff9f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000000000000000038ffffffffff1c00000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000003bffffffffffff24000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000029e8fffffffffffffff5ac6b381808030c24497fc8fffffffffffffd25000000000000000000000019e0fffffffffffff68b14000000000000000000000033b4ffffffff8900000000000000000000000000000000000000009bfffffb2b000000000000000000000001c3ffffff93000000000000000000000000000000000000000000000001357ebed8eef9e5cfa85f170000000000000000000000000000008affffffff9b00000000000009eeffffffba000000000000000048703d1103102d6fd8ffffffffffea18000000000ef9fffffff614000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d00000000000000000000000000000000000000000000000000000000000000000000beffffffff1e000000000000000000000000000000000000000000d0ffffffff1c00000000000000000066fffffffff6310000000000fcffffffe8000000000000000000000000000000000000000000000000000017d3ffffffffd72e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff7000000000000000000000000db5ffffffe64800000067f4ffffff920300000000000000000038ffffffffff1c00000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000007d8ffffffffb000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000000000021d7fffffffffffffffffffffffffffffffffffffffffffffffd6c0000000000000000000000000027e6fffffffffffffff8b16d3a1808030c244a83cffffffffffffffe250000000000000000000000000000000000000013edffffc000000000000000000000000047ffffffed010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000befffffffff2e000000000000008dffffffff2a0000000000000000000000000000000383ffffffffffb1000000004bffffffff9f000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000d2fffffffd03000000000000000000000000000000000000000000d0ffffffff1c00000000000000003efaffffffff5c000000000000fcffffffe800000000000000000000000000000000000000000000000000000013cefffffffff76a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000000000028effffffff9724b4fffffffb69000000000000000000000038ffffffffff1c0000000018e8fffffffffff4780900000000000000000159e2fffffffffff9360000000000001eaaebef960a00000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000b9cffffffffffffffffffffffffffffffffffffffffffea440000000000000000000000000000001ed4fffffffffffffffffffffffffffffffffffffffffffffffc6800000000000000000000000000000000000000000066ffffff5b000000000000000000000019ffffffff160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006cffffffffc0000000000000000024feffffff98000000000000000000000000000000000089ffffffffff2c0000008cffffffff5900000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd7800000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000e5ffffffea00000000000000000000000000000000000000000000d0ffffffff1c000000000000001feaffffffff9000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff70000000000000000000000000000066fbffffffffffffffef4400000000000000000000000038ffffffffff1c0000000095ffffffffffe53100000000000000000000000017caffffffffffc100000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000000000000000000000000003cc9fffffffffffffffffffffffffffffffffffea01400000000000000000000000000000000000a98ffffffffffffffffffffffffffffffffffffffffffe8420000000000000000000000000000000000000000000002c9ffffe70e000000000000000000000effffffff16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dbffffffff53000000000000000000b9fffffff5120000000000000000000000000000000007ddffffffff98000000beffffffff1e000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a0000000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000f3fffffffffffffffffffffffffffffffffffffffffffff8530000d0ffffffff1c0000000000000bd1ffffffffc00400000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000065c7d808080805f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff7000000000000000000000000000000042eeffffffffffdb280000000000000000000000000038ffffffffff1c0000001cf8fffffffff42800000000000000000000000000000edcffffffffff40000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc0000000000000000000000000000003fa9f5fffffffffffffffffffffffff7a52d00000000000000000000000000000000000000000039c6fffffffffffffffffffffffffffffffffffd9e1200000000000000000000000000000000000000000000000033fdffff8f0000000000000000000024ffffffff0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffffffe2030000000000000000004effffffff76000000000000000000000000000000000079ffffffffe9000000d2fffffffd030000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f3300000000000000000038ffffffffffffffffffffffffffffffffffffffffffff2c000000000000e4ffffffffffffffffffffffffffffffffffffffffffffff910000d0ffffffff1c000000000001adffffffffe3160000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000d0ffffff700000000000000000000000000000000025808080807c13000000000000000000000000000038ffffffffff1c0000008bffffffffff620000000000000000000000000000000034fdffffffffb7000000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000a4984b2d3ecf7fcf1e1bf955510000000000000000000000000000000000000000000000000003ba6f3fffffffffffffffffffffffff7a42c00000000000000000000000000000000000000000000000000000098fffffb2d0000000000000000003afffffff1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000beffffffff780000000000000000000002e0ffffffe2030000000000000000000000000000000027ffffffffff230000e5ffffffea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000cfffffffffffffffffffffffffffffffffffffffffffffff8a0000d0ffffffff1c000000000081fffffffff835000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000e0ffffffffda020000000000000000000000000000000000aefffffffffb120000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094782b2d3ecf7fcf1e1bf955510000000000000000000000000000000000000000000000000000000000011ebffffc200000000000000000060ffffffcd00000000000000000000000000000000000000000077ffff9f00000000117cd6f9e7991800000000000000000000002ffffffffff713000000000000000000000079ffffffff540000000000000000000000000000000001f2ffffffff5a0000f3fffffffffffffffffffffffffffffffffffffffffffff85300000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000aeffffffff260000000000000000000000000000daffffff760000d0ffffffff1c0000000054feffffffff6200000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000023ffffffffff6d0000000000000000000000000000000000003effffffffff500000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063ffffff5e00000000000000008dffffffa40000000000000000000000000000000000000000005bffffed20000c7cf2ffffffffffe31e00000000000000000000a0ffffffff9d00000000000000000000000015f9ffffffc30000000000000000000000000000000000cfffffffff750000e4ffffffffffffffffffffffffffffffffffffffffffffff9100000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000000000000000006effffffff5f0000000000000000000000000001f1ffffff5e0000d0ffffffff1c00000030f5ffffffff970000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000000000000000000002872abd2eefafbf1d9b47e38000000000000000000000000000000000000000038ffffffffff1c000056ffffffffff2600000000000000000000000000000000000004f3ffffffff850000000000000000000000000038ffffffffff240000000000000000000000000000000000000000a0ffffffffbc000038ffffffff740000000000000000000000000000000000000000000063e3ffffbc0000acffffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c7ffffe80f00000000000000b9ffffff7a0000000000000000000000000000000000000000001efefffff9d6f4ffffffffffffffffb700000000000000000018f9ffffffff2f00000000000000000000000000a5ffffffff3300000000000000000000000000000000c1ffffffff860000cfffffffffffffffffffffffffffffffffffffffffffffff8a000000000000000000000000004ffffff59c06000000000000000000000038ffffffffff2000000000000000000000000000000000000000000000002affffffffb8000000000000000000000000002effffffff210000d0ffffffff1c000016e1ffffffffc5050000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc6103000000000000000000000000000000000038ffffffffff1c000079ffffffffe90000000000000000000000000000000000000000bdffffffffa700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000000047fdffffffbc0000acffffff200000097c7e5f1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031fcffff9200000000000000e6ffffff5000000000000000000000000000000000000000000000adfffffffffffffffff5d5f6ffffff25000000000000000082ffffffffc200000000000000000000000000003affffffffa100000000000000000000000000000000b5ffffffff970000aeffffffff260000000000000000000000000000daffffff760000000000000000000000000000b5ffffffa5010000000000000000000038ffffffffff20000000000000000000000000000000000000000000000000c4fffffffe3500000000000000000000000090ffffffdb000000d0ffffffff1c0224c8ffffffffe619000000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd7460000000000000000000000000000000038ffffffffff1c00008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffff7400000000000000000000000000000000000000001debffffffffbc0000acffffff200000007cffffed3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cfffffc2f000000000011ffffffff270000000000000000000000000000000000000000000018dbfffffffffff4820f0017dfffff630000000000000008eaffffffff54000000000000000000000000000000cffffffff917000000000000000000000000000000b4ffffffff9c00006effffffff5f0000000000000000000000000001f1ffffff5e000000000000000000000000000023f8ffffff8a0000000000000000000038ffffffffff200000000000000000000000000000000000000000000000004bffffffffd10d000000000000000000002cf6ffffff7a000000d0fffffffffffffffffffffffa3b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd7500000000000000000000000000000038ffffffffff1c000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000000000000000000000000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000038ffffffff740000000000000000000000000000000000000006c8ffffffffffbc0000acffffff2000000001b9ffffee2100003384bae2f4fae7d2ae6a2200000000000000000000000000000000000000000000000000000000000000000000000000000000048cefffc5010000000036ffffffff060000000000000000000000000000000000000000000000128ee2f9db83130000000085ffff7e0000000000000064fffffffdad020000000000000000000000000000003becffffff7f000000000000000000000000000000b4ffffffff9c00002affffffffb8000000000000000000000000002effffffff2100000000000000000000000000000082ffffffff6d00000000000000000038ffffffffff2000000000000000000000000000000000000000000000000000b6ffffffffc218000000000000000029dfffffffed0d000000d0ffffffffffffffffffffff68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff96000000000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000000038ffffffff740000000000000000000000000000000000000093ffffffffffffbc0000acffffff200000000015e5ffffce50cfffffffffffffffffffffffb4310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004cfffffff50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4ffffffff9c000000c4fffffffe3500000000000000000000000090ffffffdb0000000000000000000000000000000009dffffffffd53000000000000000038ffffffffff200000000000000000000000000000000000000000000000000014e3ffffffffec7f27000000002686f4ffffffff5d00000000d0ffffffffffffffffffffb701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff690000000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000038ffffffff7400000000000000000000000000000000000057ffffffffffffffbc0000acffffff2000000000003dfcfffffffffffffffffffffffffffffffffe8d02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fffffffe50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4ffffffff9c0000004bffffffffd10d000000000000000000002cf6ffffff7a00000000000000000000000000000000004ffffffffff73c0000000000000038ffffffffff2000000000000000000000000000000000000000000000000000002de3ffffffffffffefd8d4ebffffffffffff8d0000000000d0ffffffffd1d3f9ffffffff9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000018e8fffffffffff4780900000000000000000159e2fffffffffff93600000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000038ffffffff74000000000000000000000000000000000028f3ffffffffffffffbc0000acffffff2000000000000081fffffffffffffff2d7d1e6fcffffffffffffb6090000000000000000000000000000000000b0ffdf1f00000000000000000000000000000000000000000000000065ffffffe20000000000000000001ac4fafff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff3400000040fffffffffffffffffffff4000000000000000000000000000000b4ffffffff9c00000000b6ffffffffc218000000000000000029dfffffffed0d000000000000000000000000000000000000b3ffffffffee2900000000000038ffffffffff200000000000000000000000000000000000000000000000000000001bcafffffffffffffffffffffffffffd78000000000000d0ffffffff1c0023dfffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000000095ffffffffffe53100000000000000000000000017caffffffffffc100000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff960000000000000038ffffffff74000000000000000000000000000000000bd5ffffffffffffffffbc0000acffffff20000000000006c8fffffffff3862b010000000f58caffffffffffa00000000000000000000000000000000000a1ffff7200000000000000000000000000000000000000000000000052fffffff907000000000000000089fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff3400000040fffffffffffffffffffff4000000000000000000000000000000b4ffffffff9c0000000014e3ffffffffec7f27000000002686f4ffffffff5d0000000000000000000000000000000000000017c2fbffffffe019000000000038ffffffffff2000000000000000000000000000000000000000000000000000000000025ee1ffffffffffffffffffffbe3a00000000000000d0ffffffff1c000024e8ffffffff7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000001cf8fffffffff42800000000000000000000000000000edcffffffffff40000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000038ffffffff7400000000000000000000000000000000a5fffffffff4ebffffffbc0000acffffff20000000000097ffffffffffcf0800000000000000016ffdffffffff610000000000000000000000000000000092ffff870000000000000000000000000000000000000000000000002affffffff4b0000000000000000a3fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000a28282853ffffff79282826000000000000000000000000000000b4ffffffff9c00000000002de3ffffffffffffefd8d4ebffffffffffff8d00000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000000000000000000000000000000000000044b94c9eaf9f5dfc27f33000000000000000000d0ffffffff1c0000002eefffffffff63000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe4000000000000000000000000000000008bffffffffff620000000000000000000000000000000034fdffffffffb7000000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000016a6f3ee910b000000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000038ffffffff740000000000000000000000000000006affffffffff59e2ffffffbc0000acffffff200000000030ffffffffffffff9f00000000000000000065ffffffffe60700000000000000000000000000000083ffff9600000000000000000000000000000000000000000000000000e8ffffffd10800000000000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000001bcafffffffffffffffffffffffffffd780000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000003af5fffffffc520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000000e0ffffffffda020000000000000000000000000000000000aefffffffffb120000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000004ceffffffffb4000000000095ffffffffffe53100000000000000000000000017caffffffffffc1000000000038ffffffff74000000000000000000000000000035f9ffffffff9400edffffffbc0000acffffff2000000000aeffffffff86ffffff68000000000000000000afffffffff6800000000000000000000000000000074ffffa50000000000000000000000000000000000000000000000000081ffffffffc530000000000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000025ee1ffffffffffffffffffffbe3a00000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffffff1c000000000047f9fffffff84300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000023ffffffffff6d0000000000000000000000000000000000003effffffffff500000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000054ffffffffffff380000001cf8fffffffff42800000000000000000000000000000edcffffffffff400000000038ffffffff740000000000000000000000000012e1ffffffffc90600f0ffffffbc0000acffffff200000001bfeffffffb6008cfffff93800000000000000002dffffffffc700000000000000000000000000000065ffffb40000000000000000000000000000000000000000000000000011e1ffffffffffe5ce91000000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000000044b94c9eaf9f5dfc27f33000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000000000002a82c8e6faf5dbab600a000000005ef7ffff8800000000000000d0ffffffff1c00000000000056fdfffffff335000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000056ffffffffff2600000000000000000000000000000000000004f3ffffffff850000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000076ffffffffffff590000008bffffffffff620000000000000000000000000000000034fdffffffffb70000000038ffffffff7400000000000000000000000001b6ffffffffec1e0000f0ffffffbc0000acffffff200000005fffffffff5e0003bfffffe4160000000000000000cbfffffffb0d00000000000000000000000000005cffffc3000000000000000000000000000000000000000000000000000033edffffffffffffff0f0000a4fffffff8000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000000000000d9bfdffffffffffffffffec64000000bfffffff8800000000000000d0ffffffff1c0000000000000066ffffffffec290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa70000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000051ffffffffffff35000000e0ffffffffda020000000000000000000000000000000000aefffffffffb1200000038ffffffff740000000000000000000000007dfffffffffd48000000f0ffffffbc0000acffffff20000000a2ffffffff1b000016e4ffffbf03000000000000008dffffffff49000000000000000000003583bfecfffffffff0d9bd792b0000000000000000000000000000000000000000000024c4ffffffffffff140000a4fffffff6000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff8800000000000000d0ffffffff1c000000000000000078ffffffffe31f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe40000000000000000000000000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb0000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000003caffffffffaf00000023ffffffffff6d0000000000000000000000000000000000003effffffffff5000000038ffffffff74000000000000000000000044fdffffffff8100000000f0ffffffbc0000acffffff20000000cdffffffef0000000038f9ffff8b000000000000005bffffffff68000000000000000262d6ffffffffffffffffffffffffffc034000000000000000000000000000000000000000000004292d0e9fbff140000a4ffffffee000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff8800000000000000d0ffffffff1c00000000000000000089ffffffffd916000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc50000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000012a1f3ec8b0900000056ffffffffff2600000000000000000000000000000000000004f3ffffffff8500000038ffffffff74000000000000000000001beaffffffffba0200000000f0ffffffbc0000acffffff20000000e1ffffffd500000000006bffffff5500000000000045ffffffff7c0000000000003accfffffffffffffffffffffffffffffffffe8d030000000000000000000000000000000000000000000000000000000000a4ffffffe5000048a7ddf7f6d89c3f000000005ef7ffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff8800000000000000d0ffffffff1c000000000000000000009affffffffce0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000079ffffffffe90000000000000000000000000000000000000000bdffffffffa700000038ffffffff7400000000000000000005c5ffffffffe3140000000000f0ffffffbc0000acffffff20000000f5ffffffc9000000000000a1fffff32a000000000035ffffffff8e00000000007bfeffffffffffffffffffffffffffffffffffffffb60700000000000000000000000000000000000000000000000000000000a4ffffffcd13b1ffffffffffffffffba1d0000bfffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000090fffff791020000000000059bf9ffff640000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff8800000000000000d0ffffffff1c000000000000000000000288f5ffffffc10800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb00000038ffffffff7400000000000000000090fffffffffa39000000000000f0ffffffbc0000acffffff20000000f7ffffffcc00000000000009d0ffffd80e0000000039ffffffff84000000019fffffffffffffe68a3d10fdffff27337bdbffffffffff9d0000000000000000000000002bbff8e4740200000000000000000000a4ffffffbdccffffffffffffffffffffeb3800deffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000002adffffffaa0600000009b5ffffff83000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000023fffffffff81b0000000000000000000083ffffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffe400000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000026fddfadc700200000096ffffffffbb00000000000000000000000000000000000000008fffffffffc500000038ffffffff74000000000000000055ffffffffff6e00000000000000f0ffffffbc0000acffffff20000000e4ffffffdc0000000000000022eeffffaf0100000046ffffffff7000000000abfffffffff37408000000ecffff2f0000046ff9ffffffff5a0000000000000000000018eeffffffff8200000000000000000000a4fffffffffffffffff3d7d8f6fffffffff338f9ffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000000000034ffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000009c7ffffffb80a000dc0ffffffa200000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff20000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000009fffffffffffa500000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000000000026f2ffffffffa90000000000000000f0ffffffbc0000acffffff20000000d1fffffff402000000000000004afeffff7800000068ffffffff590000000016ebffffbe1e0000000000daffff410000000043faffffffdd040000000000000000007dfffffffffff80b000000000000000000a4ffffffffffffc843040000002b8ceffffff0ffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000001a9e7570034ffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000000014dbffffffc421caffffffbd0500000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000044ffffffffffffff48000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000000000ad3ffffffffd80c0000000000000000f0ffffffbc0000acffffff20000000aaffffffff2a000000000000000081fffffc44000097ffffffff21000000000038ad6f02000000000000c8ffff5300000000007bffffffff58000000000000000000a0ffffffffffff25000000000000000000a4ffffffffffb4060000000000000019b2ffffffffffff880000fcffffffe800000000000000000000000000b4ffffffff3400006bffffff8933ffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000024ebfffffffaffffffd30f0000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff200000000000000000000000000000000000000095ffffffff4d0000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800008bffffffffffffff92000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000000000000a2fffffffff42b000000000000000000f0ffffffbc0000acffffff2000000068ffffffff6c000000000000000002b6ffffeb1e00e0ffffffde00000000000000000000000000000000b6ffff6500000000000bf3ffffffa50000000000000000007cfffffffffff70a000000000000000000a4fffffffff3130000000000000000000083ffffffffff880000fcffffffe800000000000000000000000000b4ffffffff34000020d4ffffffccffffff60000000000000000000000000000000000000b4ffffffff9c000000000000000000000039f6ffffffffffe51d000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a2ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000089ffffffffffffff90000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000000000067ffffffffff5b00000000000000000000f0ffffffbc0000000000000000000025ffffffffcd00000000000000000011deffffcb4effffffff9000000000000000000000000000000000a3ffff77000000000000b3ffffffe800000000000000000015ebffffffff7d00000000000000000000a4ffffffff9d0000000000000000000000008dffffffff880000fcffffffe800000000000000000000000000b4ffffffff340000000db5ffffffffffff60000000000000000000000000000000000000b4ffffffff9c00000000000000000000000052fdfffffff23000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800003fffffffffffffff44000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740000000033f8ffffffff960000000000000000000000f0ffffffbc0000000000000000000000bfffffffff5200000000000000000030f6fffff8fffffffb1f0000000000000000000000000000000091ffff8900000000000090ffffffff0700000000000000000026bbf8e26e0100000000000000000000a4ffffffff610000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000b5ffffffff3200000000038fffffffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000098ffffffffff9e00000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff7400000011dfffffffffcb060000000000000000000000f0ffffffbc000000000000000000000045ffffffffe71f0000000000000000005fffffffffffff9d00000000000000000000000000000000007fffff9b00000000000088ffffffff1d00000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000c2ffffffff2300000000000066fbffffff60000000000000000000000000000000000000b4ffffffff9c0000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061fffed6390000000000000bc5ffff8600000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000066d9f9d8670100000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff74000001b3ffffffffed1f000000000000000000000000f0ffffffbc000000000000000000000000b3ffffffffe13000000000000000000edcffffffffdd0f00000000000000000000000000000000006dffffad000000000000acffffffff1800000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffe800000000000000000000000000e1ffffffff100000000000000042eeffff60000000000000000000000000000000000000b4ffffffff9c000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cffffffd10000000000004affffffba00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff7400007afffffffffe4a00000000000000000000000000f0ffffffbc00000000000000000000000011dffffffffffc9b3f030000001669e0ffffffffff440000000000000000000000000000000000005affffbf000000000016f5fffffffb0200000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcfffffff72e00000000000000000000001fffffffffe300000000000000000000000000000000000000000000000000000000000000b4ffffffff9c00000000000d9bfdffffffffffffffffec64000000bfffffff88000000fcffffffe800000000000000000000000000b4ffffffff340000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f4ffffff1500000000002bffffffee00000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff740042fcffffffff830000000000000000000000000000f0ffffffbc000000000000000000000000002ae0fffffffffffff7dfd2e4ffffffffffffffffa000000000000000000000000000000000000048ffffd10000000006b6ffffffffcc0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffffed350000000000000000000089ffffffffa8000000000000000000000000000000000000000000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff88000000fcffffffe800000000000000000000000000b5ffffffff320000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffff4a000000000002f2ffffff23000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000016a6f3ee910b0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff701ae8ffffffffbc020000000000000000000000000000f0ffffffbc000000000000000000000000000016c3fffffffffffffffffffffffffffffeffffff41000000000000000000000000000000000036ffffe300000022c3ffffffffff6b0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcfffffffffff77101000000000000003efaffffffff4e00000018ffffffffffffffffffff080000000000000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000000fcffffffe800000000000000000000000000c2ffffffff230000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000d0ffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008dffffff7f000000000000beffffff57000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000004ceffffffffb40000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffff6cc3ffffffffe415000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000155d8fffffffffffffffffffff79921daffffd9070000000000000000000000000000000023fffff5003a9dfaffffffffffd70a0000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffffe5ffffffca570c000000177bf6ffffffffdb0200000018ffffffffffffffffffff0800000000000000e4ffffffff080000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff88000000fcffffffe800000000000000000000000000e1ffffffff100000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffb400000000000088ffffff8c000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000002bbff3ca410000000000000059d7f1af1c00000000000000000054ffffffffffff3800000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffdafffffffffa3a00000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000002367fbed8eefaebd4a1620f000042ffffff810000000000000000000000000000000011ffffffdaffffffffffffffef2f000000000000000000000000030404020000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff8862fcfffffffcddd0e2fefffffffffffd3e0000000018fffffffffffffffffffa0200000000000000e4ffffffff08000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff88000000fcfffffff72e00000000000000000000001fffffffffe3000000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022ffffffe900000000000051ffffffc0000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000000000000000000010e5fffffff729000000000044ffffffffd205000000000000000076ffffffffffff5900000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffffff700000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000000000000000000000000000000000000a0fffff92900000000000000000000000000064da3ffffffffffffffffffffe02b00000000000000000000000000daffff9c0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff69004de9fffffffffffffffffffffffe6a000000000018ffffffffcdccccccc9700000000000000000e4ffffffff08000000000000000000000023fffffffff81b0000000000000000000083ffffffffff88000000fcffffffffed350000000000000000000089ffffffffa8000000000038ffffffffff2000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ecffffff1e00000000001afffffff3020000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c0000000000000000000056ffffffffff820000000000a0ffffffffff3a000000000000000051ffffffffffff3500000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffffab000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000011dfffffc2010000000000000000000034a1f0fffffffffffffffffffff98e0c0000000000000000000000000000edffffbb0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffff4a000014a5feffffffffffffffffe14f00000000000018ffffffff0800000000000000000000000000e4ffffffff0800000000000000000000005affffffffa90000000000000000000000008dffffffff88000000fcfffffffffff77101000000000000003efaffffffff4e00000000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8ffffff53000000000000e4ffffff290000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c0000000000000000000052ffffffffff7d00000000009cffffffffff35000000000000000003caffffffffaf0000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffffffd90d000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000000197180801d000000000000000021b7ffffffffffffffffffffffde821800000000000000000000000000000002fdffffdb0000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000fcffffd30d000000002782c2e9faf1dbab5e080000000000000018ffffffff0800000000000000000000000000e4ffffffff08000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000fcffffffe5ffffffca570c000000177bf6ffffffffdb0200000000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083ffffff89000000000000adffffff5e0000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c000000000000000000000de1fffffff52400000000003dfeffffffcb0300000000000000000012a1f3ec8b090000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038fffffffffffff52c00000000000000000000000000000000000000f0ffffffbc0000acffffff20000000000000000000000000000000000000000000000000000000000000000000000000000052f4ffffffffffffffffffe0893400000000000000000000000000000000000014fffffff90100000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000e4ffffffff08000000000000000000000095ffffffff4d0000000000000000000000005cffffffff88000000fcffffff8862fcfffffffcddd0e2fefffffffffffd3e0000000000000000002a82c8e6faf5dbab600a000000005ef7ffff8800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004effffffbe00000000000077ffffff920000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c000000000000000000000026baf1c63b0000000000000053d3efab18000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffffff5d0000000000000000000000000000000000000000f0ffffffbc0000acffffff200000000000000000000000000000000000000000000000000000000000000000000000000051fbfffffffffffffffaffff62000000000000000000000000000000000000000020ffffffff3300000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a2ffffffff400000000000000000000000005cffffffff88000000fcffffff69004de9fffffffffffffffffffffffe6a00000000000000000d9bfdffffffffffffffffec64000000bfffffff8800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025bbccccccd5fffffff9ccccccccccccddfffffff0cccccccccccc3e00000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffff99000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000bedfffffa9e0000000000000000000000000000000000000000000018eefffffffffff59832a5ffff74000000000000000000000000000000000000000006f8ffffffc60a000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000fcffffff4a000014a5feffffffffffffffffe14f000000000000000015cdffffffffffffffffffffffffbc1800deffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffff6e00000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038ffffffffcc07000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000082ffffffff4f00000000000000000000000000000000000000000094ffffffffffb51c000094ffff860000000000000000000000000000000000000000008effffffffc71a0000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000d9bfdffffffffffffffffec64000000bfffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000fcffffd30d000000002782c2e9faf1dbab5e08000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006effffffffffffffffffffffffffffffffffffffffffffffffffff8500000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000038ffffffffff1c00000000000000000000000000000000002475b0d9f3fdf7e9c89b580d0000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000038fffffdce1d00000000000000000000000000000000000000000000f0ffffffbc0000acffffff2000000000000000000015f6ffffffbf000000000000000000000000000000000000000003eaffffffff9c0100000082ffff9800000000000000000000000000000000000000000005b7ffffffffe94a00000000000000a4ffffffff400000000000000000000000005cffffffff880000000015cdffffffffffffffffffffffffbc1800deffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff8800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dffffffffffffffffffffffffffffffffffffffffffffffffffef40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000002cb3fffffffffffffffffffffff39114000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000095ffffffff2f000000000000000000000000000000000000002effffffffd9060000000071ffffaa000000000000000000000000000000000000000000000591ffffffffff90040000000000a4ffffffff400000000000000000000000005cffffffff8800000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000087ffffff80000000000000b3ffffff58000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000493fdffffffffffffffffffffffffffffef580000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000000000000000000000000000000000000000000000000000000000acffffff200000000000000000000021fcffffff9d0000000000000000000000000000000000000047ffffffff7500000000005fffffbc0000000000000000000000000000000000000000000000004fefffffffffbc0a00000000a4ffffffff400000000000000000000000005cffffffff880000005cffffffffffcb45040000002b8cefffffedffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000023fffffffff81b0000000000000000000083ffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffb200000000000082ffffff8a00000000000000000000000000000000000000034994c9ecfaf9e8c2883b000000000000000000000000000000000000000000000038ffffffffff1c00000000000000000000000011bdffffffffffffffefd7d2e4ffffffffffffff8800000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000000000000000000000002872abd2eefafbf1d9b47e380000000000000000000000000000acffffff200000000000000000000000a7fffffff71500000000000000000000000000000000000059ffffffff4800000000004dffffce0000000000000000000000000000000000000000000000000025d8ffffffffb702000000a4ffffffff400000000000000000000000005cffffffff88000000ccffffffffbc080000000000000019b2ffffffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024ffffffe400000000000050ffffffbb00000000000000000000000000000000000369e3ffffffffffffffffffffd45400000000000000000000000000000000000000000038ffffffffff1c000000000000000000000006c8ffffffffffe9762500000000125dcdffffffffff87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048c9ffffffffffffffffffffffffdc61030000000000000000000000acffffff20000000000000000000000030ffffffff7b00000000000000000000000000000000000048ffffffff4800000000003cffffe000000000000000000000000000000000000000000000000000000fc5ffffffff78000000a4ffffffff400000000000000000000000005cffffffff88000023fffffffff81b0000000000000000000083ffffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000000000000000000000004ffffff59c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f1ffffff1600000000001effffffec000000000000000000000000000000001fc7ffffffffffffffffffffffffffffb1110000000000000000000000000000000000000038ffffffffff1c000000000000000000000096ffffffffff9d0d00000000000000000273fafffffff21800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc1ffffffffffffffffffffffffffffffffd74600000000000000000000acffffff20000000000000000000000000baffffffe505000000000000000000000000000000000026ffffffff7600000000002afffff100000000000000000000000000000000000000000000000000000012e2fffffff315000000000000000000000000000000000000000000000000000000005affffffffa90000000000000000000000008dffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000077ffff9f00000000117cd6f9e79918000000000000000095ffffffff4d0000000000000000000000005cffffffff880000000000000000000000000000b5ffffffa501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1ffffff48000000000000ebffffff1e00000000000000000000000000002de7fffffffffffff4d8dcf7ffffffffffffd61a00000000000000000000000000000000000038ffffffffff1c000000000000000000004affffffffff8200000000000000000000000047f5ffec3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ef2fffffffffffffffffffffffffffffffffffffd75000000000000000000acffffff2000000000000000000000000043ffffffff59000000000000000000000000000000000000ddffffffd8040000000019ffffff0400000000000000000000000000000000000000000000000000000055ffffffff6f0000000000000000000000000000000000000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000005bffffed20000c7cf2ffffffffffe31e00000000000000a2ffffffff400000000000000000000000005cffffffff88000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffff7a000000000000baffffff50000000000000000000000000001ee6fffffffff995370000000346a9feffffffffd20e000000000000000000000000000000000038ffffffffff1c00000000000000000001d1ffffffffad000000000000000000000000000037aa290000000000000000000000000000000000000000000000000000000035c7fbffffd21700000000000000000000000000000000000068feffffffffffffffffffffffffffffffffffffffffff960000000000000000acffffff2000000000000000000000000000ccffffffc900000000000000000000000000000000000082ffffffff8e0000000007ffffff150000000037a66d000000000000000000000000000000000000000004ecffffffb50000428080806803000000000000000000000000117580807e09000095ffffffff4d0000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000001efefffff9d6f4ffffffffffffffffb700000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000082ffffffff6d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005effffffac00000000000088ffffff8100000000000000000000000003c4ffffffffe02e000000000000000047f1ffffffffa3000000000000000000000000000000000038ffffffffff1c00000000000000000059ffffffffef11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172faffffffcd130000000000000000000000000000000000003ffbffffffffffffe7944a230d081e3d83d5ffffffffffffff6900000000000000acffffff200000000000000000000000000056ffffffff3800000000000000000000000000000000000fecffffffffa416000000f6ffff2700002fa9feffff5c0000000000000000000000000000000000000000c4ffffffd3000020f8ffffff83000000000000000000000000bbffffffa3000000a2ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000adfffffffffffffffff5d5f6ffffff25000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000009dffffffffd53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dffffffde00000000000056ffffffb30000000000000000000000006affffffffeb21000000000000000000003af9ffffffff460000000000000000000000000000000038ffffffffff1c000000000000000000c1ffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000018e8fffffffffff4780900000000000000000159e2fffffffffff936000000000000acffffff20000000000000000000000000005effffffffa700000000000000000000000000000000000053fefffffffff49f5529e6ffff656bbeffffffffffef1200000000000000000000000000000000000000b9ffffffe100000089fffffff8210000000000000000000054fffffff61c000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000018dbfffffffffff4820f0017dfffff63000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000004ffffffffff73c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f7ffffff11000000000024ffffffe400000000000000000000000aeaffffffff5100000000000000000000000075ffffffffd10000000000000000000000000000000038ffffffffff1c000000000000000018fdfffffffc14000000000000000000000000000000000000000000000016a6f3ee910b000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000095ffffffffffe53100000000000000000000000017caffffffffffc1000000000000acffffff2000000000000000000000000000cefffffffffb1b00000000000000000000000000000000000074fffffffffffffffffffffffffffffffffffff8640000000000000000000000000000000000000000e1ffffffcb0000000ee9ffffffab00000000000000000007deffffff8300000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000128ee2f9db83130000000085ffff7e000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000b3ffffffffee2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fccccccccccccf8ffffffd5cccccccccccdffffffffcccccccbb641000000000069ffffffffbf0000000000000000000000000004ddffffffff4600000000000000000000000000000038ffffffffff1c00000000000000006bffffffffbe000000000000000000000000000000000000000000000004ceffffffffb40000000000000000000000027ffcffffffffb809000000000000000000000000000000000000001cf8fffffffff42800000000000000000000000000000edcffffffffff400000000000acffffff2000000000000000000000000040ffffffffffff850000000000000000000000000000000000000054f3ffffffffffffffffffffffffffffffc83100000000000000153b00000000000000000000004dffffffffa10000000069ffffffff3c000000000000000079ffffffe70c00000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000017c2fbffffffe0190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005faffffffffffffffffffffffffffffffffffffffffffffffffffe90200000000ceffffffff4b00000000000000000000000000006dffffffffac00000000000000000000000000000038ffffffffff1c0000000000000000a9ffffffff70000000000000000000000000000000000000000000000054ffffffffffff380000000000000000001abfffffffffffaf0700000000000000000000000000000000000000008bffffffffff620000000000000000000000000000000034fdffffffffb70000000000acffffff20000000000000000000000000b0ffffffffffffeb08000000000000000000000000000000000000001c9afbffffffffffffffffffffffc85d01000000000000000bdaffac19000000000000000029e8ffffffff4b0000000003d4ffffffcb0100000000000018f2ffffff630000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ceffffffffffffffffffffffffffffffffffffffffffffffffffff2400000025ffffffffe803000000000000000000000000000013fbfffffff70d000000000000000000000000000038ffffffffff1c0000000000000000d9ffffffff3b000000000000000000000000000000000000000000000076ffffffffffff590000000000000000036a808080807c5302000000000000000000000000000000000000000000e0ffffffffda020000000000000000000000000000000000aefffffffffb12000000000000000000000000000000000000000023fdffffffffffffff630000000000000000000000000000000000000000001965afd4eafdffffe49f6c2a0000000000000000000090fffffff59437030000001b7df4ffffffffca02000000000048ffffffff5d0000000000009dffffffd0020000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffff080000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000000000000002a82c8e6faf5dbab600a000000005ef7ffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ae0feffffffffffffffffffffffffffffffffffffffffffffffff4e0000006effffffff9d00000000000000000000000000000000c2ffffffff4e000000000000000000000000000038ffffffffff1c000000000000000bfdfffffffe0c000000000000000000000000000000000000000000000051ffffffffffff350000000000000000000000000000000000000000000000000000000000000000000000000023ffffffffff6d0000000000000000000000000000000000003effffffffff50000000000000000000000000000000000000000092ffffffffc7ffffffd2000000000000000000000000000000000000000000000000000088ffff9200000000000000000000000001aefffffffffffff4dbd1e4fffffffffffff22e00000000000000b8ffffffe40a0000000031fdffffff43000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000004797b8d8fdffffffffcdccccccccccccbf00000000a4ffffffff400000000000000000000000005cffffffff8800000000000d9bfdffffffffffffffffec64000000bfffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035ffffffd200000000000061ffffffab000000000000000000acffffffff5c0000000000000000000000000000000081ffffffff8e000000000000000000000000000038ffffffffff1c0000000dd8d8d8ddfffffffffdd8d8d8d8d8d8d8d8d8d8d8bf20000000000000000000000003caffffffffaf000000000000000000000000000000000000000000000000000000000000000000000000000056ffffffffff2600000000000000000000000000000000000004f3ffffffff85000000ccffffffdc00000000000000000000000ff3ffffffec40ffffffff410000000000000000000000000000000000000000000000000078ffffa1000000000000000000000000000072f4ffffffffffffffffffffffffffec3b00000000000000002bfcffffff7f00000000c1ffffffb300000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000032fffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000015cdffffffffffffffffffffffffbc1800deffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f8fffffc0b00000000002cffffffe2000000000000000000dcffffffff28000000000000000000000000000000004dffffffffbf000000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffff7e00000000000000000000000012a1f3ec8b09000000acffffffffa4000000000000000000000000000000000000028ceeffffffff5f00000079ffffffffe90000000000000000000000000000000000000000bdffffffffa7000000ccffffffdc000000000000000000000074ffffffff9701ddffffffb00000000000000000000000000000000000000000000000000068ffffb10000000000000000000000000000001793f7fffffffffffffffffffba5170000000000000000000099fffffff51b000054fffffffb2700000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000048fffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000001b8fffffffffffff3d7d8f6ffffffffdd24f9ffffff88000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9ffffff3e000000000002f3ffffff1a0000000000000007fdfffffffd050000000000000000000000000000000028ffffffffea000000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffff84000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000000000093ffffffffff85000000008dffffffffce0000000000000000000000000000000000000000a3ffffffffbb000000ccffffffdc0000000000000000000003e1ffffffff2d0076fffffffd2200000000000000000000000000000000000000000000000058ffffc000000000000000000000000000000000000b53a1d2effbf2dfb3751c00000000000000000000000016f1ffffffa10007deffffff930000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff08000000000000000048fffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000005cffffffffffcb45040000002b8cefffffedffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093ffffff74000000000000c0ffffff510000000000000023ffffffffe3000000000000000000000000000000000008ffffffffff080000000000000000000000000038ffffffffff1c0000000000000064ffffffffab00000000000000000000000000000000000000000000000000000000000000000000acffffffffa4000000000000000000000000000000000073ffffffffffaa010000000096ffffffffbb00000000000000000000000000000000000000008fffffffffc5000000ccffffffdc0000000000000000000056ffffffffbf000013f7ffffff8e00000000000000000000000000000000000000000000000041ffffd0000000000000000000000000000000000000000000000000000000000000000000000000000000000079fffffffc206effffffef130000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffe000000000000000000000000000000000000000000000003eddffffaa0000000000000000000000ccffffffffbc080000000000000019b2ffffffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005dffffffaa0000000000008affffff88000000000000003affffffffcf000000000000000000000000000000000000f4ffffffff200000000000000000000000000038ffffffffff1c0000000000000068ffffffffa800000000000000000000000000000000000000000000000000024903000000000000acffffffffa40000000000000000000000000000000054feffffffffc809000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000000000c7ffffffff52000000a1fffffff10c000000000000000000000000000000000000000000000006c5ffdf000000000000000000000000000000000000000000000000000000000000000000000000000000000008e0ffffff8fe1ffffff73000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e4ffffffe00000000000000000000000000000000000000000000034f4fffff31b0000000000000000000023fffffffff81b0000000000000000000083ffffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ffffffdf00000000000054ffffffc0000000000000004affffffffbf000000000000000000000000000000000000e4ffffffff310000000000000000000000000038ffffffffff1c0000000000000065ffffffffaa000000000000000000000000000000000000000000000000005cffe4811500000000acffffffffa40000000000000000000000000000003af7ffffffffe01700000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000000037ffffffffe00300000037ffffffff6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022f5d717c7257290000000000000000000000000000000059fffffffcffffffdc06000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000e1ffffffe300000000000000000000000000000000000000000023e9ffffff7300000000000000000000005affffffffa90000000000000000000000008dffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001efffffff1500000000001ffffffff40300000000000051ffffffffb9000000000000000000000000000000000000deffffffff380000000000000000000000000038ffffffffff1c0000000000000060ffffffffaf00000000000000000000000000000000000000000000000000c9ffffffc600000000acffffffffa4000000000000000000000000000025ebfffffffff12c0000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000000000a8ffffffff760000000000ccffffffda010000000000000000000000000000000000000000000000000000000000000000000000000000000000002594efffffffffffffffdd8f290000000000000000000000000000c7ffffffffffff5300000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000d1fffffff3000000000000000000000000000000000000000015dbffffffd304000000000000000000000083ffffffff6b0000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bbffffff4b000000000000e8ffffff2e00000000000056ffffffffb5000000000000000000000000000000000000d9ffffffff3e0000000000000000000000000038ffffffffff1c00000010fffffffffffffffffffffffffffffffffffffffffffffdae0000000000000000001affffffff9000000000acffffffffa40000000000000000000000000014dbfffffffffc48000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000001dfbfffffff612000000000062ffffffff4b00000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000000000000000017cf9fffffffffffffffffffffffc9d1a00000000000000000000000039ffffffffffc20000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff0800000000000000000000000000baffffffff1f0000000000000000000000000000000000000bcafffffffe3d00000000000000000000000095ffffffff4d0000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffff81000000000000b3ffffff6600000000000051ffffffffb9000000000000000000000000000000000000deffffffff380000000000000000000000000038ffffffffff1c00000010ffffffffffffffffffffffffffffffffffffffffffffffff1100000000000000004cfffffffa1700000000acffffffffa400000000000000000000000008c6ffffffffff6b00000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000000008affffffff9b00000000000009eeffffffba00000000000000000010aaffffffffffffffffffe05a00000072ffffff78000000000000000000019bffffffffffffffffffffffffffffffeb48000000000000000000000000a9fffffffe340000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000081ffffffff74000000000000000000000000000000000004b5ffffffffa000000000000000000000000000a2ffffffff400000000000000000000000005cffffffff88000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044ffffffb70000000000007dffffff8e0000000000004affffffffc0000000000000000000000000000000000000e4ffffffff300000000000000000000000000038ffffffffff1c0000000dd8d8d8d8ffffffffffd9d8d8d8d8d8d8d8d8d8d8d8d8d8d810000000000000000062ffffffc00000000000acffffffffa4000000000000000000000002acffffffffff920000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000000befffffffff2e000000000000008dffffffff2a0000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000000006bfffffffffff5a268515873b0f8ffffffffea08000000000000000000000020f8ffffa3000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000036ffffffffee24000000000000000000000000000000009dffffffffee1600000000000000000000000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018cf2ffec00000000000047ffffe43900000000000039ffffffffd0000000000000000000000000000000000000f5ffffffff1f0000000000000000000000000038ffffffffff1c0000000000000000dcffffffff2e00000000000000000000000000000000000000000000005dffffff9b0000000000acffffffffa400000000000000000000008dffffffffffb5030000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000006cffffffffc0000000000000000024feffffff980000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff78000000000000000010f1ffffffffb4160000000000001387f9ffff5e0000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff88000018ffffffff080000000000000000000000000000beffffffffec660e0000000000000000000000000082fffffffee1470000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ffffffffe3000000000000000000000000000000000008ffffffffff070000000000000000000000000038ffffffffff1c00000000000000009fffffffff6a00000000000000000000000000000000000000000000003cffffff950000000000acffffffffa4000000000000000000006dffffffffffd10d000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000000002dbffffffff53000000000000000000b9fffffff512000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000061ffffffffbe040000000000000000002ec499000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018ffffffff0800000000000000000000000000002cf3fffffffffffddecec9a3010000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fcfffffffd060000000000000000000000000000000028ffffffffe8000000000000000000000000000038ffffffffff1c000000000000000062ffffffffb000000000000000000000000000000000000000000000000af5ffffba0000000000acffffffffa40000000000000000004efdffffffffe71d00000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc0000000000004effffffffe2030000000000000000004effffffff76000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000000a2ffffffff2d0000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000000000000000000000000018ffffffff080000000000000000000000000000004cf5ffffffffffffffffff110000000000000000000000000000000000000000000000000000000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000daffffffff29000000000000000000000000000000004effffffffbd000000000000000000000000000038ffffffffff1c000000000000000015f9fffffffa140000000000000000000000000000000000000000000000a4fffff91200000000acffffffffa4000000000000000035f5fffffffff6350000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc000000000000beffffffff780000000000000000000002e0ffffffe2030000000065ffffffff71000000000000000000005bfaffffffff780000000000000000bdffffffe4000000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000000000002dcaffffffffffffffff1d0000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000090fffff791020000000000059bf9ffff6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000a9ffffffff5d0000000000000000000000000000000082ffffffff8b000000000000000000000000000038ffffffffff1c000000000000000000a9ffffffff7900000000000000000000000000000000000000000000002cfaffff8700000000acffffffffa40000000000000021e9fffffffffe53000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000ccffffffdc00000000002ffffffffff713000000000000000000000079ffffffff540000000070ffffffff4500000000000000000000006dffffffff780000000000000000c3ffffffd3000000000000000000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000000000000000070ffffffb8000018ffffffff080000000000000000000000000000000000004291cde8faefd59a110000000010aaffffffffffffffffffe05a00000072ffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000002adffffffaa0600000009b5ffffff830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000006bffffffff9e00000000000000000000000000000000c2ffffffff4a000000000000000000000000000038ffffffffff1c00000000000000000040fffffffff01400000000000000000000000000000000000000000000007efffff930000000acffffffffa400000000000011d7ffffffffff7800000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000caffffffd90000000000a0ffffffff9d00000000000000000000000015f9ffffffc30000000051ffffffff55000000000000000000000058ffffffff780000000000000000adffffffec000000000000000000000000000000000000b2cccccccccccccccccccccccccccccccccccccccccccc9900000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000009c7ffffffb80a000dc0ffffffa2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd400000000000000000022ffffffffe903000000000000000000000000000014fbfffffff50b000000000000000000000000000038ffffffffff1c00000000000000000000b3ffffffffaf010000000000000000000000000000000000000000000004c5ffffdb050000acffffffffa4000000000007c1ffffffffff9e0000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c7ffffffd40000000018f9ffffffff2f00000000000000000000000000a5ffffffff3300000012f6ffffffb1000000000000000000000058ffffffff7800000000000000007bffffffff39000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000014dbffffffc421caffffffbd05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd400000000000000000000caffffffff4c00000000000000000000000000006effffffffa800000000000000000000000000000038ffffffffff1c0000000000000000000021f6ffffffff8b01000000000000000000000012bbe432000000000000000fcaffce070000acffffffffa40000000002a7ffffffffffbf050000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000c2ffffffce0000000082ffffffffc200000000000000000000000000003affffffffa10000000092ffffffff850200000000000000000058ffffffff78000000000000000029feffffffc2020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff080000000000000000000000000000001580c9eefbeaca8b36000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000024ebfffffffaffffffd30f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000065ffffffffc00000000000000000000000000005deffffffff4100000000000000000000000000000000000000000000000000000000000000000064ffffffffffaa120000000000000000003addffffec2b00000000000000106704000000acffffffffa40000082dadffffffffffd911000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000b6ffffffc100000008eaffffffff54000000000000000000000000000000cffffffff9170000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000a8ffffffff9b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000000047efffffffffffffffffc22a00000043ffffffffde0d000000000000000f95feffffffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000039f6ffffffffffe51d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000008e8ffffffff5300000000000000000000000077ffffffffcd000000000000000000000000000000000000000000000000000000000000000000000086fffffffffff08332010000000a47adfeffffffff9400000000000000000000000000acffffffffffffffffffffffffffffe72400000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000a7ffffffb300000064fffffffdad020000000000000000000000000000003becffffff7f0000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000000000000016e4ffffffffc01d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff08000000000000000000000000002cf6ffffffffffffffffffffed0a000065ffffffff71000000000000000000005bfaffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000052fdfffffff230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000000065ffffffffed22000000000000000000003cfaffffffff4100000000000000000000000000000000000000000000000000000000000000000000000183fefffffffffffff4ddd2e2faffffffffffff9a0200000000000000000000000000acffffffffffffffffffffffffffda270000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000094ffffffa0000000000000000000000000000000000000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000002be6ffffffffef600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffb8000018ffffffff0800000000000000000000000000b3fffffffffff7d6f0ffffff7900000070ffffffff4500000000000000000000006dffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd4000000000000000000000002bfffffffffe12f000000000000000048f1ffffffff9c00000000000000000000000000000000000035c7fbffffd217000000000000000000000000004dedfffffffffffffffffffffffffffff270000000000000111500000000000000acffffffffffffffffffffffffe219000000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000007effffff8b00000000000000000000000000000000000000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff7800000000000000000000001abdffffffffffb91a0000000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018ffffffffcdccccccc970000000000000000ffdffffffff9609000046d2cf0500000051ffffffff55000000000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffd40000000000000000000000001ae3fffffffff996380000000347aaffffffffffcd0b000000000000000000000000000000000172faffffffcd130000000000000000000000000000000e7ceefffffffffffffffffffffba41a00000000000007cedb1f000000000000acffffffffedccccdeffffffffffe5270000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000066ffffff75000000000000000000000000000000000000000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000000000000000167f1ffffffffe62500000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018fffffffffffffffffffa0200000000000044ffffffffd8030000000001050000000012f6ffffffb1000000000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa8cbcccccccccccccccccccccccccccccccce5fffffff7ccccccccca6b000000000000002ae5fffffffffffff4d8ddf8ffffffffffffd3180000000000000000000000000000000014b4ffffffffc60f00000000000000000000000000000000000009488fc6ddf3faefd2aa6a19000000000000000013f2ffda140000000000acffffffffa40000002ddcffffffffe62000000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc80000004cffffff5900000000000000000000000000004ffffff59c0600000000000000000000000000000000000000000000000000000000000058ffffffff7800000000000000000000000000001dc3ffffffffce01000000000000000000e0ffffffffffffffffffffffffffffffffffffffffffffc00000f0ffffffffffffffffffffffffffffffffffffffffffffb8000018ffffffffffffffffffff080000000000005affffffff9a00000000000000000000000092ffffffff850200000000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffca00000000000000001ec5ffffffffffffffffffffffffffffaf10000000000000000000000000000000003fe4ffffffffbf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000047fcffb90200000000acffffffffa40000000020e7ffffffffd813000000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000032ffffff3d000000000000000000000000000000b5ffffffa501000000000000000000000000000000000000000000000000000000000058ffffffff7600000000000000000000000000000005b0ffffffff27000000000000000000b2cccccccccccccccccccccccccccccccccccccccccccc990000bfcccccccccccccccccccccccccccccccccccccccccccc92000018ffffffffffffffffffff0800000000000063ffffffff810000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000000000000000367e3ffffffffffffffffffffd45300000000000000000000000000000000027ffcffffffffb8090000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffff6800000000acffffffffa4000000000031f3ffffffffc6090000000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc8000000000000000000000000000000000000000000000023f8ffffff8a00000000000000000000000000000000000000000000000000000000005fffffffff660000000000000000000000000000000017fdffffff3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffffff800000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000a4ffffffff400000000000000000000000005cffffffff8800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0000000000000000000000034892c8ebfaf8e6c1873900000000000000000000000000000000001abfffffffffffaf0700000000000000a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd800000000000004d8ffec0b000000acffffffffa400000000000047fbffffffffb10300000000000000000000000000000098ffffffffb4000000000000000000000000000000000000000088ffffffffc800000000000000000000000000000000000000000000000082ffffffff6d0000000000000000000000000000000000000000000000000000000075ffffffff530000000000000000000000000000000000dfffffff2d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ffffffff800000000000000000000000000000005cdcffffffffffffffffffffffffffffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cffffffffc3030000000000000000000000007cffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036a808080807c53020000000000000000a4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8000000000000005cffff6c000000acffffffffa4000000000000005fffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffd53000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000c0ffffff1b00000000000000000000000000000000145fabd5edfcf3d9b076280000000000000000000000044c96cbedfbf6e3c68a4200000000000000000099cccccccccccccccccccccccccc3f00000000000064ffffffff80000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009affffffff850000000000000000000000007cffffffd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8000000000000000ef9ffc6000000acffffffffa400000000000000007cffffffffff7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffff73c00000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000000000000000000000000a1ffffff0800000000000000000000000000000f88f7ffffffffffffffffffffc64a00000000000000025fe1ffffffffffffffffffffd24b00000000000000b5ffffffffffffffffffffffffff5000000000000064ffffffff800000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008cefffffffd4500000000000000000000007cffffffd40000000000000000acffffffffa40000000000000000000000000000000011b3f9fffffff123000000000000000000000000000000000000000000000033fdffffffffffe1ccccccccccccccccccccccccccccccccccccccccccac000000000029baf3fffffc0a0000acffffffffa400000000000000000098ffffffffff620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ffffffffee290000000000000000000059fffff67b070000000000000002a8ffffffff8800000000000000000000000000000000000082fffff6000000000000000000000000000032e6ffffffffffffffffffffffffffffaa0c000000001fcbffffffffffffffffffffffffffff9001000000000052ffffffffffffffffffffffffff4d00000000000064ffffffff800000000000000000000000000000000000000000000000000000000058ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023f0ffffffe818000000000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000000001b4ffffffffff5500000000000000000038ffffffffff1c00000000000000000086ffffffffffd007000000000000000000000000000000000000000000000000000ee3ffffffffff2d0000acffffffffa400000000000000000003b2fffffffffb4a000000000000000000000000000000000000000000000024e2fffff7b825000000000000000000000000000000000054d9f9cb3800000000000000000000000000000000000017c2fbffffffe019000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000000a1818160000000000000000000000000044f4fffffffffffff5dcd1e1feffffffffffce10000026ebfffffffffffff1d8d0e0feffffffffff8b00000000000067feffffd4d7f7ffffffffffe21900000000000064ffffffff800000000000000000000000000000000000000000000000000000000058ffffffff7600000000000000000041cbf3c237000000000057d4f2b828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052ffffffffbd020000000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000000072ffffffffff960000000000000000000038ffffffffff1c00000000000000000005cbffffffffff8d000000000000000000000000000000000000000000000000004fffffffffffff300000acffffffffa4000000000000000000000ac8fffffffff435000000000000000000000000000000000000000000000020ddfffffff35c00000000000000000000000000000053fffffffff92e0000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000001dedffffffffffa93f03000000105cd0ffffffff5d000006d8fffffff1892c010000001269e8ffffffff3c0000000000005ffdfff543000000000000000000000000000064ffffffff80000000000000000000000000000000000000000000000000000000005fffffffff6600000000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008fffffffff7d0000000000000000007cffffffd40000000000000000acffffffffa4000000000000000000000000000035faffffffffcf070000000000000000000038ffffffffff1c0000000000000000000026f4fffffffffe4400000000000000000000000000000000000000000000000057fffffffffffb0c0000acffffffffa4000000000000000000000014daffffffffea2400000000000000000000000000000000000000000000001bd9ffffffff9f0b00000000000000000000000000d0ffffffffffb300000000000000000000000000000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000c2fffffffff54b00000000000000000271f9ffa4000000003ff9ffa315000000000000000018dcffffffbf0000000000000058fbfff74a0000000000000000000000000064ffffffff800000000000000000000000000000000000000000000000000000000075ffffffff53000000000000000084ffffffffff7a000000a6ffffffffff56000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c7fffffffc3e00000000000000007cffffffd40000000000000000acffffffffa4000000000000000000000000000eddfffffffff225000000000000000000000038ffffffffff1c000000000000000000000066ffffffffffe513000000000000000000000000000000000000000000000012e8ffffffff97000000acffffffffa400000000000000000000000022e9ffffffffdc16000000000000000000000000000000000000000000000017d3ffffffffd72e000000000000000000000000f4ffffffffffd90000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000000000004dc6ffffffffffffffffffffe25a0000000000000000000000000000000000000000000000000000000000000000000000004afffffffffe4400000000000000000000002d660700000000001b28000000000000000000000049fffffffd150000000000000051f9fff95100000000000000000000000064ffffffff8000000000000000000000000000000000000000000000000000000000a8ffffffff24000000000000000080ffffffffff75000000a2ffffffffff510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001decffffffe414000000000000007cffffffd40000000000000000acffffffffa400000000000000000000000000a8ffffffffff5900000000000000000000000038ffffffffff1c000000000000000000000000b0ffffffffffad0000000000000000000000000000000000000000000000002ab6efea8805000000acffffffffa40000000000000000000000000034f4ffffffffcb0b000000000000000000000000000000000000000000000013cefffffffff76a0000000000000000000000d1ffffffffffb50000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000000000000000000000000000000000000000000000000000000c3ffffffff9500000000000000000000000000000000000000000000000000000000000000000002f3ffffff4b00000000000000004af7fffb59000000000000000000000064ffffffff80000000000000000000000000000048741c0000000000000000000011f5ffffffe600000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048feffffffb6010000000000007cffffffd40000000000000000acffffffffa400000000000000000000000065ffffffffff9b0000000000000000000000000038ffffffffff1c00000000000000000000000014e6ffffffffff630000000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000004afbffffffffb704000000000000000000000000000000000000000000000010c5ffffffffffac1000000000000000000057fffffffffa3100000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021fffffffffc1b00000000000000000000000000000000000000000000000000000000000000000000e6ffffff6300000000000000000044f6fffd5e0000000000000000000064ffffffff800000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000003bc7f1be31000000000051d1f0b42300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085ffffffff750000000000007cffffffd40000000000000000acffffffffa400000000000000000000002bf6ffffffffd2090000000000000000000000000038ffffffffff1c0000000000000000000000000047fefffffffff42500000000000000000000000000000000000000000000000000000000000000acffffffffa400000000000000000000000000000063ffffffffffa0000000000000000000000000000000000000000000000000065c7d808080805f0000000000000000000057dbf9cd3b0000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016ae1f9c23100000000000000000064ffffffffb50000000000000000000000000000000000000000000000000000000000000000000017feffffff60000000000000000000004afafffd5a00000000000000000064ffffffff8000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003befffffffb3800000000007cffffffd40000000000000000acffffffffa40000000000000000000009d4fffffffff429000000000000000000000000000038ffffffffff1c000000000000000000000000000091ffffffffffca04000000000000000000000000000000000000000020b4f6e9830600000000acffffffffa40000000000000000000000000000000080ffffffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006ffffffffff5210000000000000000a4ffffffff7500000000000000000000000000000000000000000000000000000000000000000000a4ffffffff3e00000000000000000000006bfffff83c000000000000000064ffffffff800000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018e7ffffffe011000000007cffffffd40000000000000000acffffffffa4000000000000000000009affffffffff5e00000000000000000000000000000038ffffffffff1c000000000000000000000000000008d3ffffffffff84000000000000000000000000000000000000000de1ffffffff9a00000000acffffffffa400000000000000000000000000000000009bffffffffff6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000000000000000000000000003eddffffaa0000000000000000000000000000000000000000000002edffffffffff980000000000000000c8ffffffff4000000000000000000000000000000000000000000000000000000000000000000ba1ffffffffe204000000000000000000000000b7ffffdc050000000000000064ffffffff8000000000000000000000000000001ebbffffffffffffffffffffffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040fcffffffaf000000007cffffffd40000000000000000acffffffffa400000000000000000056ffffffffff9f0000000000000000000000000000000038ffffffffff1c0000000000000000000000000000002ef8fffffffffd3c00000000000000000000000000000000000065fffffffffffe1d000000acffffffffa400000000000000000000000000000000000282e9fffffffd50000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000070ffffffff74000000000000000065ffffffff71000000000000000000005bfaffffffff78000000000000000000000000000000000034f4fffff31b0000000000000000000000000000000000000000000012ffffffffffffb90000000000000000dbffffffff270000000000000000000000000000000000000000000000000000000000000763e3ffffffffff5f0000000000000000000000000034ffffff670000000000000064ffffffff80000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007affffffff6e0000007cffffffd40000000000000000acffffffffa4000000000000000022f1ffffffffd50a0000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000071ffffffffffe00f000000000000000000000000000000000088ffffffffffff3d00000000000000000000000000000000000000000000000000000000000000000000000000000010aaffffffffffffffffffe05a00000072ffffff780000000000000070ffffffff74000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000000000000000023e9ffffff73000000000000000000000000000000000000000000000002ebffffffffff950000000000000000eeffffffff17000000000000000000000000000000000000000000000000000000002286e8ffffffffffff93000000000000000000000000000000deffffb80000000000000064ffffffff800000000000000000000000000000000000002877b0d8f1fbefd9a75b08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b6fffffff93300007cffffffd40000000000000000acffffffffa40000000000000005cafffffffff62b000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000001baffffffffffa5000000000000000000000000000000000064fffffffffffe1b000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff780000000000000070ffffffff74000000000000000051ffffffff55000000000000000000000058ffffffff7800000000000000000000000000000015dbffffffd30400000000000000000000000000000000000000000000000069fffffffff31e0000000000000000eeffffffff17000000000000000000000000000000000000000000000000000352bcfeffffffffffffffb90100000000004cc2e8bc0a0000000000d0ffffd10000008ffeffffffffffffffffffffffffffffff7c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013e1ffffffdc0e007cffffffd40000000000000000acffffffffa4000000000000008cffffffffff6300000000000000000000000000000000000038ffffffffff1c00000000000000000000000000000000001aecffffffffff5a000000000000000000000000000000000bdeffffffff95000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff780000000000000070ffffffff74000000000000000012f6ffffffb1000000000000000000000058ffffffff7800000000000000000000000000000bcafffffffe3d000000000000000000000000000000000000000000000000000064dff8bf2c000000000000000000dcffffffff2600000000000000000000000000000000000000000000000b76e1ffffffffffffffffffffffc4210000000045ffffff7c0000000013f7ffffbf000000cbffffffffffffffffffffffffffffffff7c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038faffffffa8007affffffd40000000000000000acffffffffa40000000000004afeffffffffa40000000000000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000051fffffffffff01f000000000000000000000000000000001caff6e77d04000000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff780000000000000070ffffffff7400000000000000000092ffffffff850200000000000000000058ffffffff780000000000000000000000000004b5ffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000000000c8ffffffff400000000000000000000000000000000000000000000054e6fffffffffffffffeb54fa3ffffffe82600000003e0fffffb6b05001ebdffffff7c000000ccffffffffffffffffffffffffffffffff7c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff6673ffffffd40000000000000000acffffffffa4000000000039eeffffffffd30c0000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000009cffffffffffc3020000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000000000000000000043ffffffffde0d000000000000000f95feffffffffff780000000000000070ffffffff740000000000000000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000000000009dffffffffee1600000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffff720000000000000000000000000000000000000000008cfffffffffffffff394260000007affffffcd010000004afdfffffffaebffffffffe71000000036607f9fc9ffffffffe6cccccccccccccc620000000000000000000000003fafeafae29e2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acfffffff788ffffffd40000000000000000acffffffffedccccccccdfffffffffffcf1d000000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000bdbffffffffff7b0000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000000000000065ffffffff71000000000000000000005bfaffffffff780000000000000070ffffffff740000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000000000000000000000082fffffffee1470000000000000000000000000014ffffffffffffffffffffffffffffffffffffffffe8000000000000005fffffffffb300000000000000000000000000000000000000007cffffffffffffe16e0e000000000001d3ffffff4d0000000056f0ffffffffffffffe02f00000000000000001fffffffff80000000000000000000000000000000000000008afffffffffffffa64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000edbfffffff8ffffffd40000000000000000acffffffffffffffffffffffffffffffdc8e390000000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000036fbfffffffffb36000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff7800000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000070ffffffff740000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000000014ffffffffffffffffffffffffffffffffffffffffe8000000000000001ffefffffffb1800000000000000000000000000000000000029fbffffffffef6d0500000000000000008bffffff9d0000000000167bc5eefbedc0700c00000000000000000002f9ffffff800000000000000000000000000000000000005fffffd8563262e8fffe3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f7ffffffffffffd40000000000000000acffffffffffffffffffffffffffffffffffffc541000000000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000007cffffffffffdb0b0000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff7800000000000000000000000051ffffffff55000000000000000000000058ffffffff780000000000000070ffffffff74000000000000000000000000000249a2edffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000000000004f7ffffffffffffffffffffffffffffffffffffffe80000000000000000b5ffffffff960000000000000000000000000000000000008dffffffffd01e000000000000000000007fffffffc6000000000000000000000000000000000000000000000000daffffff80000000000000000000000000000000000000d4fff51c00000038ffffb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffffffffd40000000000000000acfffffffffffffffffffffffffffffffffffffffe970700000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000003c3ffffffffff9c0000000000000000000000000000000000000000000065ffffffff71000000000000000000005bfaffffffff7800000000000000000000000012f6ffffffb1000000000000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000b4ffffffffffffffffffffffffffffffffffffffffff4c000000000000000091fffffffff4ccccccccccccccccccccccccccccb8000000000000000042fffffffffe470000000000000000000000000000000000c2ffffffee1a0000000000000000000000bcffffffcb000000000000000000000000000000000000000000000000b7ffffff80000000000000000000000000000000000008ffffbf0000000000e4ffe3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2ffffffffffd40000000000000000acffffffffa4000000000005152c63a9faffffffffffbc0b000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000020f1ffffffffff5100000000000000000000000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000000000092ffffffff850200000000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000058ffffffff780000b4ffffffffffffffffffffffffffffffffffffffffff4c00000000000000000bd8fffffffc3d0000000000000000000000000000000000000000000000acfffffffff7500000000000000000003fc6b309000000d6ffffff9e000000000000000000000056ffffffffb000000000001d83c2e3ebdbae5f070000000000000000000095ffffff80000000000000000000000000000000000006ffffc00000000000e6ffe10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ad4ffffffffd40000000000000000acffffffffa40000000000000000000019a5ffffffffffae000000000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000005cffffffffffec1a000000000000000000000000000000000000000051ffffffff55000000000000000000000058ffffffff78000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000058ffffffff760000b4ffffffffffffffffffffffffffffffffffffffffff4c0000000000000000002ef7ffffffe4140000000000000000000000000000000000000000000012e3ffffffffffb14a07000000094bb6ffffff9f000000c3ffffff880000000000000000000273f9ffffffff670000000061f5ffffffffffffffdb3500000000000000000072ffffff80000000000000000000000000000000000000cffff61e0000003bffffaa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029f4ffffffd40000000000000000acffffffffa400000000000000000000000071ffffffffff600000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000a7ffffffffffbb010000000000000000000000000000000000000012f6ffffffb1000000000000000000000058ffffffff78000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff780000000000000070ffffffff74000000000000000000000000000000000000000000000000005fffffffff6600008fcccccccccccccccccccccccccccccccccccccccccc3c0000000000000000000068ffffffffb601000000000000000000000000000000000000000000002ae2fffffffffffff9e2d0dcfbffffffffffed1a000087ffffffbd000000000000000044c8ffffffffffe00c00000051fffffffffffffffffffff12a00000000000000004fffffff8000000000000000000000000000000000000056ffffda573364e9fffc34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000098ffffffffdf0400000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000010e1ffffffffff72000000000000000000000000000000000000000092ffffffff850200000000000000000058ffffffff78000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff780000000000000070ffffffff740000000000000000000000000000000000000000000000000075ffffffff53000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffff7500000000000000000000000000000000000000000000001cccffffffffffffffffffffffffffffd42300000021f8ffffff4800000000065ac9fffffffffffff63c0000000be8fffff26f140632b9ffffffbe00000000000000002dffffff800000000000000000000000000000000000000081fefffffffffff85c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000acffffffffa40000000000000000000000000013f2ffffffff4d00000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000003ffdfffffffff92f000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000070ffffffff7400000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000000000000000000000000000000000000000000edcfffffffb3900000000000000000000000000000000000000000000000260e4ffffffffffffffffffffe96e06000000000070fffffff76b031680e8ffffffffffffffed420000000068ffffff460000000002bfffffff1e0000000000000004c7ffff8000000000000000000000000000000000000000003cabe9f9e09a2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fffffffffffffffffffffffffffffffffffffffffffffffffffbbb140000acffffffffa40000000000000000000000000000a9ffffffff9200000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000087ffffffffffd5080000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff78000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000070ffffffff74000000000000000000000048741c0000000000000000000011f5ffffffe60000001d807e5b0800000000000000000000000000000000000000000000000000000000000033f9ffffffe112000000000000000000000000000000000000000000000000054c93c7e9f8f7e2cc964c0900000000000000006bf7ffffffe1f7ffffffffffffffffb31e000000000040bbf8970000000000005bffffff4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff8b0000acffffffffa400000000000000000000000000006bffffffffc400000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000005ccffffffffff930000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000058ffffffff780000000000000070ffffffff740000000000000000000059fffff67b070000000000000002a8ffffffff8800000005e7ffffcd090000000000000000000000000000000000000000000000000000000000006effffffffb10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002097ffffffffffffffffffffbb4100000000000000000001000000000000005dffffff3f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffa80000acffffffffa4000000000000000000000000000052ffffffffd900000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000027f5ffffffffff4a0000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff78000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000070ffffffff7400000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000085ffffff7500000000000000000000000000000000000000000000000000000000000000aeffffffff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005a6fffffffffffffffaa83600000000000000000000000000000000000000a3fffff511000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000961eafffffffea0aec1cbcccccccccccccccccccccccccccccccccc850000acffffffffa4000000000000000000000000000055ffffffffdf00000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000067ffffffffffe816000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff7800000000000000000000000000000000000000000000000000000000005fffffffff660000000000000070ffffffff740000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000001ffdffffde0100000000000000000000000000000000000000000000000000000000000010dffffffffa350000000000000000000000000000000000000000000000000000000000000030310000000000000000000093ffffffffffffe9811a0000000000000000000000000000000000041441a6ffffff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bccffffffcf0e00000000000000000000000000000000000000000000acffffffffa400000000000000000000000000006effffffffc800000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000b1ffffffffffb3000000000000000000000000000000000000000000000000000000000000000058ffffffff78000000000000000000000000000000000000000000000000000000000075ffffffff530000000000000070ffffffff7400000000000000000000001ebbffffffffffffffffffffffffffff8800000000000000b5ffffff470000000000000000000000000000000000000000000000000000000000000037faffffffde0f000000000000000000000000000000000000000000000000000000002aacfe5c0000000000000000003dffffffffffea6d0800000000000000000000000000000000000000e4ffffffffd95700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019f1ffffff9b00000000000000000000000000000000000000000000acffffffffa40000000000000000000000000000b0ffffffffaa00000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000015e7ffffffffff690000000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000070ffffffff74000000000000000000000000004dc6ffffffffffffffffffffe25a00000000000000004dffffffaf000000000000000000000000000000000000000000000000000000000000000074ffffffffac000000000000000000000000000000000000000000000000000025a5fdffff5c000000000000000000a7ffffffffba14000000000000000000000000000000000000000000e4ffffffef5701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008bffffffff29000000000000000000000000000000000000000000acffffffffa40000000000000000000000000021f7ffffffff6400000000000000000000000038ffffffffff1c00000000000000000000000000000000000000000000000000000000000048fefffffffff6290000000000000000000000000000000000000000000000000000000000005fffffffff6600000000000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000070ffffffff740000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000002e1fffffb1a0000000000000000000000000000000000000000000000000000000000000001b4ffffffff6b0000000000000000000000000000000000000000000000209efcffffffff5b000000000000000000e5ffffffce060000000000000000000000000000000000000000000028417decffff96010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004affffffff86000000000000000000000000000000000000000000acffffffffa400000000000000000000000007bdfffffffffa1700000000000000000000000038ffffffffff1c00000000000000000079ccccccccccccccccccccccccccccccccccccccccccf8ffffffffffc600000000000000000000000000000000000000000000000000000000000075ffffffff53000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000007dffffff7e000000000000000000000000000000000000000000000000000000000000000013e3fffffff83200000000000000000000000000000000000000001b97fafffffffffffb28000000000000000003fdffffff6400000000000000000000000000000000000000000000000000002df6ffff4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036ffffffffb4000000000000000000000000000000000000000000acffffffffa400000000000000000000001fbdffffffffff8c0000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff260000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000019fbffffe20300000000000000000000000000000000000000000000000000000000000000003cfcffffffdb0d00000000000000000000000000000000001790f7ffffffffffffb22f00000000000000000001faffffff5a00000000000000000000000000000000000000191c000000000000b1ffffb100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffce000000000000000000000000000000000000000000acffffffffa4000000000000000013479ef5ffffffffffdd0f0000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b00000000000000000000000000000048741c0000000000000000000011f5ffffffe600000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000adffffff4d0000000000000000000000000000000000000000000000000000000000000000007affffffffa70000000000000000000000000000001389f5ffffffffffffb232000000000000000000000000d8ffffffa5000000000000000000000000000000000007e9fffd37000000000099ffffd600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acffffffffedcccccccccccedbeaffffffffffffffffde1e000000000000000000000000000038ffffffffff1c00000000000000000098ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000070ffffffff7400000000000000000000000000000000004ffffff59c06000000000000000000000000000045ffffffb400000000000000000000000000000000000000000000000000000000000000000001b9ffffffff660000000000000000000000000f82f2ffffffffffffb33300000000000000000000000000008bfffffffe5600000000000000000667a62b0000000000ceffffba0000000002d1ffffd300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acffffffffffffffffffffffffffffffffffffffffa71700000000000000000000000000000038ffffffffff1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d0000000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000070ffffffff74000000000000000000000000000000000000b5ffffffa5010000000000000000000000000001dbfffffd1e00000000000000000000000000000000000000000000000000000000000000000016e6fffffff72e0000000000000000000c7beeffffffffffffb434000000000000000000000000000000001ef6fffffffe9c2f010000002477e1ffffd4050000000066ffffff9d1b00199cffffff9600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acfffffffffffffffffffffffffffffffffff8ab42000000000000000000000000000000000038ffffffffff1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b0000000000000000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000070ffffffff7400000000000000000000000000000000000023f8ffffff8a000000000000000000000000000075ffffff830000000000000000000000000000000000000000000000000000000000000000000041fdffffffd80b0000000000000974ebffffffffffffb434000000000000000000000000000000000000006effffffffffffeed4d4ecffffffffffff5a0000000002c1fffffffff9fffffffff32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000acfffffffffffffffffffffef8eed9ba9159110000000000000000000000000000000000000038ffffffffff1c0000000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff7800000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082ffffffff6d0000000000000000000000000014f8ffffe6040000000000000000000000000000000000000000000000000000000000000000000081ffffffffa200000000076de7ffffffffffffb535000000000000000000000000000000000000000000007cfdfffffffffffffffffffffffffe7f0100000000000fbbffffffffffffffea3f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff1c0000000000000000000010aaffffffffffffffffffe05a00000072ffffff7800000885c61000000000004bd54200000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009dffffffffd5300000000000000000000000000a5ffffff520000000000000000000000000000000000000000000000000000000000000000000002beffffffff61000000d7fffffffffffaaa360000000000000000000000000000000000000000000000000041cfffffffffffffffffffffbb3600000000000000000151aee4faf1cb7e14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff78000077ffffca0e0000001bfffff53f0000000000000000000000002877b0d8f1fbefd9a75b08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ffffffffff73c0000000000000000000000003dffffffb900000000000000000000000000000000000000002cccccccccccccccccccccccccccccdcfffffffff2170000f0fffffffff17d1700000000000000000000000000000000000000000000000000000000408bc9e5f8f1dbbd792f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072ccccccccd6fffffffff7ccccccccccccccccccccc550000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff78000018e8ffffa700000000a5ffffec17000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ffffffffee29000000000000000000000000d4fffffe230000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff60000087f6fffffffffff99a1f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090ffffffffffffffffffffffffffffffffffffffffffe5000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff780000004bffffff550000000ce2ffffb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000090fffff791020000000000059bf9ffff640000000090fffff791020000000000059bf9ffff6400000000000000000000000000000017c2fbffffffe01900000000000000000000006dffffff880000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff740000001993f9fffffffffff9991e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cfffffffffffffffffffffffffffffffffffffffffff4000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000001fd3fffff3a013000000000023b6f8ffffb80f000043ffffffffde0d000000000000000f95feffffffffff7800000000b8ffffe5070000005cffffff4900000000000000000000000000000000000000000000000000000000000000000000000000000000000002adffffffaa0600000009b5ffffff83000000000002adffffffaa0600000009b5ffffff8300000000000000000000000000000000000000000000000000000000000000000000000ff5ffffea0600000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffff7400000000001d99fafffffffffff9971d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bd3fffffffffffffffffffffffffffffffffffffffff4000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000db5ffffffe64800000067f4ffffff920300000065ffffffff71000000000000000000005bfaffffffff780000000051ffffff5b00000007eeffffb70000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c7ffffffb80a000dc0ffffffa20000000000000009c7ffffffb80a000dc0ffffffa2000000000000000000000000000000000000000000000000000000000000000000000000009dffffff570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000219ffcfffffffffff9961c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000028effffffff9724b4fffffffb69000000000070ffffffff4500000000000000000000006dffffffff780000000013ffffffaa00000000b7fffffb0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000014dbffffffc421caffffffbd05000000000000000014dbffffffc421caffffffbd050000000000000000000000000000000000000000000040798047000000000000000000000035ffffffbf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a5fdfffffffffff8951b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff4800000000000000000000000000000000000066fbffffffffffffffef4400000000000051ffffffff55000000000000000000000058ffffffff780000000000f6ffffdc000000009affffff3800000000000077ffff9f00000000117cd6f9e79918000000000000000000000000000000000000000000000024ebfffffffaffffffd30f0000000000000000000024ebfffffffaffffffd30f000000000000000000000000000000000000000000008affffff40000000000000000000000000ccffffff27000000000000000000003b2600000000000000000000000000000000000000000000000000000000000000000000000000002babfefffffffffff8931a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000000000042eeffffffffffdb280000000000000012f6ffffffb1000000000000000000000058ffffffff78000000000afefffff100000000acffffff4d0000000000005bffffed20000c7cf2ffffffffffe31e000000000000000000000000000000000000000000000039f6ffffffffffe51d00000000000000000000000039f6ffffffffffe51d0000000000000000000000000000000000000000000028fdffffd70000000000000000000000000065ffffff8e0000000000000000000074fc9f20000000000000000000000000000000000000000000000000000000000000000000000000000030b2fffffffffffff78a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000025808080807c1300000000000000000092ffffffff850200000000000000000058ffffffff780000000046ffffffeb00000003e7ffffff470000000000001efefffff9d6f4ffffffffffffffffb700000000000000000000000000000000000000000000000052fdfffffff230000000000000000000000000000052fdfffffff230000000000000000000000000000000000000000000000091ffffff70000000000000000000000000000bf1ffffed0800000000000000000074fffffa981b000000000000000000000000000000000000000000000000000000000000000000000000000036b8ffffffffffff4600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000d4d8d8d8d8d8d8d8d8f1ffffffffe3d8d8d8d8d8d8d8d88a0000000000000000000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff7800000000adffffffcc00000051ffffffff2800000000000000adfffffffffffffffff5d5f6ffffff250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009effffff611000000000000000000000000000095ffffff5d00000000000000000073fffffffff7901600000000000000000000000000000000000000000000000000000000000000000000000000003bbeffffffff5c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000fcffffffffffffffffffffffffffffffffffffffffffffa40000000000000000000000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff7800000026ffffffff91000000c9ffffffeb010000000000000018dbfffffffffff4820f0017dfffff630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060ffffffa00000000000000000000000000000002dffffffc40000000000000000003dfefffffffffff48812000000000000000000000000000000000000000000000000000000000000000000000000000041c4ffff5c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034ffffffffd4000000000000000000000000000000000000000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000000000000038190000000000002b2600000000000000005cdcffffffffffffffffffffffffffffffff7800000014d3ffffff370000008efdffff93000000000000000000128ee2f9db83130000000085ffff7e00000000ffffffffffffffffffffffffffffffffffffffffffac000000000000001a73b2d1dfd0b1701700000000000000000000000000000000000000000000000000000000000000c8ffffff3800000000000000000000000000000000c5ffffff2c0000000000000000003cc0fffffffffffff1810e000000000000000000000000000000000000000000000000000000000000000000000000000047ca5c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002affffffffd9000000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000000014ebf8790000000006d5fd9800000000000000000249a2edffffffffffffffffffffffffff78000000000143a9b700000000002084e01f00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffac00000000000589f8fffffffffffffff68002000000000000000000000000000000000000000000000000000000002fffffffcf00000000000000000000000000000000005dffffff93000000000000000000000040c0ffffffffffffed790b00000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016ffffffffe9000000000000000000000000000000000000000000000000000000000000000000a4ffffffff480000000000000000000000000000000000000000a5fffff20000000081ffffff160000000000000000000002306593b4d1e3f2f9feffffffff78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffac0000000006beffffffffffffffffffffffaf0200000000000000000000000000000000000000000000000000000097ffffff68000000000000000000000000000000000008ecfffff00a00000000000000000000000041c1ffffffffffffe972080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f6ffffffff110000000000000000000000000000000000000000000000000000000000000000a4ffffffff48000000000000000000000000000000000000004affffff9b0000002cfaffffbf000000000000000000000000000000000000000058ffffffff78000000000000000000000000000000000000000000000000024592c8ebfaf7e6cd955204000000000000000000cccccccccccccccccccccccccccccccccccccccccc890000000095ffffffdc5b17041861e3ffffff8000000000000000000000000000000000000000000000000000000cf2fffff30d0000000000000000000000000000000000008dffffff62000000000000000000000000000041c2ffffffffffffe56a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfffffffff4d0000000000000000000000000000000000000000000000c4c8c8c8c8c8c8c8c8ebffffffffd7c8c8c8c8c8c8c8c8800000000000000000000de2ffffec13000002c9fffffa2a000000000000000000000000000000000000000058ffffffff76000000000000000000000000000000000000000000000157daffffffffffffffffffffe46901000000000000000000000000000000000000000000000000000000000000000026fcffffe01400000000001debfffff6180000000000000000000000000000000000000000000000000066ffffff980000000000000000000000000000000000000025feffffca0000000000000000000000000000000042c2ffffffffffffe06304000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dffffffffae000000000000000000000009a8e6991400000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000000096ffffff6300000072ffffff870000000000000000000000000000000000000000005fffffffff660000000249030000000000003b14000000000000001ac3ffffffffffffffffffffffffffffb80b0000000000000000000000000000000000000000000000000000000000000089ffffff5e0000000000000073ffffff7600000000000000000000000000000000000000000000000000cdffffff300000000000000000000000000000000000000000bdffffff31000000000000000000000000000000000043c3ffffffffffffda5b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001af9fffffffe4000000000000000000001acffffffed34000000000000fcffffffffffffffffffffffffffffffffffffffffffffa400000000000000003dfeffffc401000021f5ffffdf0900000000000000000000000000000000000000000075ffffffff530000005cffe4811500000010eff9a739000000001ae7ffffffffffffefd6d0e4ffffffffffffbb04000000000000000070ffffffff7400000000000000000000000000000000ccfffffe0f0000000000000022ffffffba00000000000000000000000000000000000000000000000035ffffffc800000000000000000000000000000000000000000055ffffff990000000000000000000000000000000000000043b7fdffffffffffb30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009cffffffffea310000000000000005a2ffffffffe40a0000000000000000000000000001d0ffffffffffff7100000000000000000000000000000008d8fffffb2c000000bcffffff4b00000000000000000000000000000000000000000000a8ffffffff24000000c9ffffffc60000006dfffffffe2400000000bdfffffff18829000000001a7bf4ffffffff6d000000000000000070ffffffff7400000000000000000000000000000000eeffffe4000000000000000000f8ffffdc0000000000000000000000000000000000000000000000009dffffff6000000000000000000000000000000000000000000005e7fffff30d00000000000000000000000000000000000000218ff9ffffffffcc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010dffffffffff88a290000000453cffffffffffe45000000000000000000000000000054ffffffffffffffe90a000000000000000000000000000087ffffff8a00000063ffffffae00000000000000000048741c0000000000000000000011f5ffffffe60000001affffffff90000000bdffffffe5070000000023ebfe9f1600000000000000002cefffffffe9030000000000000070ffffffff7400000000000000000000000000000000fdffffd7000000000000000000ecffffee00000000000000000000000000000000000000000000000ff5ffffee090000000000000000000000000000000000000000000085ffffff68000000000000000000000000000000000029a7fdffffffffffee6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034eeffffffffffffebd4d6f5ffffffffffff70000000000000000000000000000002d4ffffffc5f7ffffff760000000000000000000000000030fbffffe10b000019effffff31c000000000000000059fffff67b070000000000000002a8ffffffff880000004cfffffffa17000000f0ffffff6e0000000000000818000000000000000000000072ffffffff3d0000000000000070ffffffff7400000000000000000000000000000000f2ffffe0000000000000000000f6ffffe000000000000000000000000000000000000000000000006cffffff9000000000000000000000000000000000000000000000001ffdffffcf00000000000000000000000000000029a7fdfffffffffff1810f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027ddfffffffffffffffffffffffffff8650000000000000000000000000000005affffffff6cb8ffffffec0d000000000000000000000004cdfffffe49000000adffffff6c000000000000000005e6ffffffffe378230000000033b8fffffffff71d00000062ffffffc000000006ffffffff1c0000000000000000000000000000000000000025ffffffff6b0000000000000070ffffffff7400000000000000000000000000000000d5fffffc09000000000000001affffffc30000000000000000000000000000000000000000000000d3ffffff28000000000000000000000000000000000000000000000000b5ffffff3700000000000000000000000027a5fdfffffffffff488120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7bf1ffffffffffffffffffffbb2c00000000000000000000000000000003d9fffffffa1461ffffffff7c00000000000000000000002dffffffce0100000bfdffffea0900000000000000000047efffffffffffffecd7d3edffffffffffff6b000000005dffffff9b00000002fefffff501000000000000000000000000000000000000001dffffffff800000000000000070ffffffff740000000000000000000000000000000095ffffff4f0000000000000065ffffff81000000000000000000000000000000000000000000003bffffffc0000000000000000000000000000000000000000000000000004effffff9e0000000000000000000026a4fdfffffffffff78f16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d529dcde2f7f5e5bd842c00000000000000000000000000000000005fffffffffa9000df0ffffffef100000000000000000000000b5ffffff6900000092ffffff8d000000000000000000001ebbffffffffffffffffffffffffffff8800000000003cffffff9500000000e0fffff2000000000000000000000000000000000000000064ffffffff710000000000000070ffffffff740000000000000000000000000000000036ffffffd10900000000000fe0fffffc2600000000000000000000000000000000000000000000a3ffffff580000000000000000000000000000000000000000000000000003e2fffff5100000000000000025a3fcfffffffffff9951a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ddfffffffe2f000083ffffffff8200000000000000000000001df2fffff01800000bdffffffc3000000000000000000000004dc6ffffffffffffffffffffe25a0000000000000af5ffffba00000000a4ffffff1600000000000000000000000000000000000042f1ffffffff3d0000000000000070ffffffff740000000000000000000000000000000000acffffffc73c02000342d1ffffff970000000000000000000000000000000000000000000012f7ffffe90600000000000000000000000000000000000000000000000000007effffff6d000000000024a1fcfffffffffffb9c1f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffffb000000012f2fffffff21300000000000000000000006affffffa500000046ffffffc8010000000000000000000000002877b0d8f1fbefd9a75b080000000000000000a4fffff91200000048ffffff680000000000000000000000000000000037a5feffffffffd2010000000000000070ffffffff7400000000000000000000000000000000000ed2fffffffff6e5f6ffffffffc5080000000000000000000000000000000000000000000072ffffff8800000000000000000000000000000000000000000000000000000019fbffffd4000000099bfcfffffffffffda3230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffff3e3d1a76e31000000000000000000000000000000000006e1ffffffff320000000088ffffffff88000000000000000000000001c2ffffff43000000a1ffffff67000000000000000000000000000000000000000000000000000000000000002cfaffff8700000000caffffdc070000000000000000000000054492dffffffffffffff231000000000000000070ffffffff740000000000000000000000000000000000000da4fefffffffffffffffd9a080000000000000000000000000000000000000000000000d8fffffe2200000000000000000000000000000000000000000000000000000000a0ffffff3c00005ffffffffffffeaa2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffd0660600000000000000000000000000006affffffffb4000000000014f4fffffff416000000000000000000000026f7ffffd907000012e8ffffee16000000000000000000000000000000000000000000000000000000000000007efffff9300000002af7ffff860000000000000000003c98edffffffffffffffffdb3400000000000000000070ffffffff7400000000000000000000000000000000000000002d8bccebfaebcc892900000000000000000000000000000000000000000000000041ffffffb800000000000000000000000000000000000000000000000000000000000da8f5ffa3000074ffffffffb02f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffffffd33300000000000000000000000008e4ffffffff360000000000008cffffffff8e00000000000000000000000079ffffff7e00000055ffffffa20000000000000000000000000000000000000000000000000000000000000004c5ffffdb050000006dfffffe3e00000000000040cdffffffffffffffffffde71090000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffff5000000000000000000000000000000000000000000000000000000000000000000000000074ffffb7350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2ccccccccccccccccd9eafffffffffffffffb54000000000000000000000070ffffffffb80000000000000017f6fffffff71a000000000000000000000004cffffff724000000afffffff40000000000000000000000000000000000000000000000000000000000000000fcaffce07000000007ffff33e00000000007cfeffffffffffffffe9993c0100000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016f9ffffe40300000000000000000000000000000000000000000000000000000000000000000000000074be3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000001755bdfffffffffffa480000000000000000000ae8ffffffff3a000000000000000091ffffffff9300000000000000000000000031fbffffb400000019f0ffffd6020000000000000041cbf3c237000000000057d4f2b828000000000000000000106704000000000000601c000000000064ffffffffffffe88c390200000000000000000000000000000070ffffffff740000000000000000000040b3ecfbecc57a120032bcc84e000040ffffffffffffffffffffffffff5400000000000000000000000078ffffff800000000000000000000000000000000000000c60afddf6f1d8a151040000000000000000000d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000050efffffffffe60d000000000000000075ffffffffbc0000000000000000001af8fffffff91d00000000000000000000000089ffffef0000000065ffffff140000000000002cf8fffffff32300000046ffffffffe31000000000000000000000000000000000000000000000000af0ffffffffdb530400000000000000000000000000000000000070ffffffff7400000000000000000064fefffffffffffff16aa4ffff64000040ffffffffffffffffffffffffff54000000000000000000000001ddfffffc1b00000000000000000000000000000000016ae9ffffffffffffffffda52000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000003bf8ffffffff87000000000000000cebffffffff3e0000000000000000000096ffffffff9900000000000000000000000008d9e0510000000000bdec6a0000000000000084ffffffffff7a000000a6ffffffffff56000000000000000000000000000000000000000000000053ffffffffc80d000000000000000000000000000000000000000070ffffffff74000000000000000014f4ffffd7552f4697faffffffff64000040ffffffffffffffffffffffffff54000000000000000000000047ffffffb0000000000000000000000000000000000db0ffffffffffffffffffffffff930400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000008affffffffe6010000000000007affffffffc000000000000000000000001df9fffffffa210000000000000000000000001c05000000000000160b000000000000000080ffffffffff75000000a2ffffffffff5100000000001445000000000000015205000000000000007affffffff3f00000000000000000000000000000000000000000070ffffffff74000000000000000059ffffff310000000036e9ffffff64000033cccccccccccccccccccccccccc420000000000000000000000aeffffff4800000000000000000000000000000004bdffffffffffffffffffffffffffff9e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000001cffffffffff3800000000000feeffffffff430000000000000000000000009affffffff9f00000000000000000000000000000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c0000000040edfd5a000000000cc5ffae0400000000000083ffffffff2100000000000000000000000000000000000000000070ffffffff74000000000000000071fffffe03000000000034ffffff640000000000000000000000000000000000000000000000000000001afbffffde010000000000000000000000000000008dffffffffffffffffffffffffffffffff6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000dbffffffff64000000000080ffffffffc40000000000000000000000000021fbfffffffc260000000000000000000000000000000000000000000000000000000000003bc7f1be31000000000051d1f0b423000000000057fffffc4a0000000febffffa300000000000066ffffffff5900000000000000000000000000000000000000000070ffffffff74000000000000000053ffffff2e000000000014ffffff640000000000000000000000000000000000000000000000000000007effffff7800000000000000000000000000000027fbffffffffffffffffffffffffffffffffee130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000beffffffff7d0000000011f1ffffffff4700000000000000000000000000009fffffffffa50000000000000000000253a7def6f1d6953b000000000000000000000000000000000000000000000000000000000000000000a4ffffe8130000004affffff5700000000001fffffffffe01a000000000000000027917500000000000000000070ffffffff74000000000000000008e4ffffd72d0000000014ffffff64000040ffffffffffffffffffffffffff5400000000000000000002e2fffff91600000000000000000000000000000099ffffffffffffffffffffffffffffffffffff790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000b8ffffffff890000000085ffffffffc800000000000000000000000000000024fcfffffffd2b0000000000000036d1ffffffffffffffffb41a0000000000000000000000000000000000000000000000000000000000000013edffffa400000000a5ffffec140000000000b0ffffffffe6660f0000000746a8fcffff58000000000000000070ffffffff7400000000000000000036eafffffec07c52373dffffff64000040ffffffffffffffffffffffffff540000000000000000004dffffffa800000000000000000000000000000003eaffffffffffffffffffffffffffffffffffffcc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000000d2ffffffff7500000014f3ffffffff4900000000000000000000000000000000a1ffffffffab00000000000055f8ffffffffffffffffffffe52d0000000000114100000000000009490000000000000000000000000000000082fffffe2800000026ffffff8200000000001febfffffffffffdddd0dbfbffffffffffd8010000000000000070ffffffff74000000000000000000001b99f9ffffffffffffffffff64000040ffffffffffffffffffffffffff54000000000000000000b4ffffff4000000000000000000000000000000022fffffffffffffffffffffffffffffffffffffffd0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000016fdffffffff490000008bfffffff783000000000000000000000000000000000010c4fdfffffe2f0000000039f9fffffffff4d4d9faffffffffe11600000060f2f7270000000045e8ff430000000000000000000000000000002bffffff8500000000cfffffe000000000000030e7ffffffffffffffffffffffffffd524000000000000000070ffffffff740000000000000000000000000e5895c0e2effaffffff64000033cccccccccccccccccccccccccc4200000000000000001efdffffd7000000000000000000000000000000003bffffffffffffffffffffffffffffffffffffffff1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000000087fffffffff50c00000000000000000000000000000000000000000000000000000000000000000000000003d8ffffffd9500500000e6df0ffffffa2000000d2ffffc301000000aeffffde0b000000000000000000000000000005fcffffc500000000a7ffffff21000000000000129ffaffffffffffffffffffec750900000000000000000070ffffffff7400000000000000000000000000000000000014ffffff630000000000000000000000000000000000000000000000000083ffffff70000000000000000000000000000000003bffffffffffffffffffffffffffffffffffffffff1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000044f9ffffffff8b000000000000000000000000000000000000000000000000000000000000000000000000005dffffffc60d00000000000028ebfffffd26000079ffffff6b00000055ffffff8f000000000000000000000000000000f8ffffe9000000009cffffff4500000000000000001a71b0ddf0f9e6cf9c520b000000000000000000000070ffffffff7400000000000000000000000000000000000028ffffff5300000000000000000000000000000000000000000000000004e6fffff6110000000000000000000000000000000020fffffffffffffffffffffffffffffffffffffffc0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000016cf5ffffffffd60d00000000000000000000035aacd9f4f1d6b05b030000000000000000000000000000000000b3fffff61d000000000000000053ffffff7a000006d7fffff21e000000b9fffffd380000000000000000000000000021fffffff200000000c5ffffff4e00000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000203300000000000065ffffff29000004b9f47500000000000097f59900000000000000000053ffffffa0000000000000000000000000000000000002e7ffffffffffffffffffffffffffffffffffffc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000010d1d4881deffffffffffd620000000000000000000000000e2ffffffffffffffc60f00000000000000000000000000000000eeffffa700000000000000000001e6ffffb600000041ffffffb700000024f8ffffd40600000000000000000000000073ffffffe00000001afcffffff3c00000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000001ef2ffc8570900044eecffffd700000048ffffee000000000020ffffff170000000000000000baffffff3900000000000000000000000000000000000096ffffffffffffffffffffffffffffffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffffc930e0000000000000000000000000070ac593a4fc2ffffff9700000000000000000000000000000008ffffff7700000000000000000000b8ffffcf00000000a4ffffff5d00000080ffffff81000000000000000000000008e4ffffffb200000090fffffffe100000fcffffffe8000000000000000000000000000000000000000000000070ffffffff7400000000000000000055fdfffffffbeafaffffffff5000000072ffffff11000000004affffff390000000000000023feffffd00000000000000000000000000000000000000024faffffffffffffffffffffffffffffffffec100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffffffffffffffffffffffffffffffffde8723000000000000000000000000000000000000000014ffffffd600000000000000000000000000000008ffffff7800000000000000000000b9ffffcf0000000017efffffec16000007dbfffffa2d0000000000000000000032ffffffff68000000d6ffffffc4000000fcffffffe800000000000000000000000000000000000000000000000000000000000000000000000000000045dbfffffffffffffffd71000000008dffffff2c0000000065ffffff540000000000000089ffffff69000000000000000000000000000000000000000089ffffffffffffffffffffffffffffffff67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffe971a0000000000000000000000000000000000000000000049ffffffbe00000000000000000000000000000000eeffffaa00000000000000000002e9ffffb600000000006affffffa900000046ffffffca030000000000000000000058c7fff0100000002aa2f7ff5c000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000358a4dbf1f8de9d2d0000000000a8ffffff470000000080ffffff6f00000000000006eaffffe70c000000000000000000000000000000000000000004baffffffffffffffffffffffffffff9a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2ccccccccccccd1dff5fffffffffff99211000000000000000000000000000000000f426db0fcfffffb4300000000000000000000000000000000b2fffff820000000000000000057ffffff79000000000002caffffff4f000000a9ffffff730000000000000000000000002e4b000000000000116502000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2ffffff61000000009affffff8900000000000059fffccd35000000000000000000000000000000000000000000000badffffffffffffffffffffffff900300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000022a73d9ffffffffe0340000000000000000000000000000003bffffffffffc63b00000000000000000000000000000000005effffffc90e0000000000002aedfffffe2700000000000032fcffffe50f000019f0fffff62300000000000000000000000000000000000000000000000000fcffffffe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d0ffffff6f00000000a8ffffff97000000000000000000000000000000000000000000000000000000000000000000000169e9ffffffffffffffffd950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000479fdfffffff032000000000000000000000000000001e6ffff8b250000000000000000000000000000000000000004daffffffdb540700001070f2ffffffa50000000000000000b6ffffff5100000092ffffff7500000000000000000000000000000000000000000000000000fcffffffe80000000000000000000000000000000000000041cbf3c237000000000057d4f2b82800000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff980000000000000000000000000000000000000000000000000000000000000000000000000c5faedcf5f0d7a0510400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000067ffffffffdd0b000000000000000000000000000097ffff7a0000000000000000000000000000000000000000003cfafffffffff5d5dafbffffffffe318000000000000004affffffd20500002bfaffffe91200000041cbf3c237000000000057d4f2b82800000000000000fcffffffe80000000000000000000000000000000000002cf8fffffff32300000046ffffffffe310000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff740000001471bde1f9f4d599350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000000c2ffffffff7600000000000000000000001470aeeafffff7cda46d1b00000000000000000000000000000000000059f8ffffffffffffffffffffe62f0000000000000009defffffc35000001c3ffffff560000002cf8fffffff32300000046ffffffffe310000000000000fcffffffe800000000000000000000000000000000000084ffffffffff7a000000a6ffffffffff56000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000030ffffffffffffffff8600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000060ffffffffd90000000000000000001199f7fffffffffffffffffffec03b000000000000000000000000000000000038d2ffffffffffffffffb51b000000000000000085ffffff8c00000061ffffffb00000000084ffffffffff7a000000a6ffffffffff56000000000000fcffffffe800000000000000000000000000000000000080ffffffffff75000000a2ffffffffff51000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000d0ac533b63e5ffffff49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000028ffffffffff170000000000000041e5ffffffffffffffffffffffffffffa50b000000000000000000000000000000000253a6ddf6f0d5943b00000000000000000028f9ffffdc09000012ebfffff01a0000000080ffffffffff75000000a2ffffffffff51000000000000fcffffffe800000000000000000000000000000000000026f6fffffff01e0000003ffeffffffdf0c000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff740000000000000000005cffffff90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000016ffffffffff3200000000000043f7ffffffffffffecd0c5d5f9ffffffffffc60f000000000000000000000000000000000000000000000000000000000000000000befffffe410000009bffffff64000000000026f6fffffff01e0000003ffeffffffdf0c000000000000fcffffffe8000000000000000000000000000000000000003bc7f1be31000000000051d1f0b42300000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000000000000079ffffff83000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff20000000000000000000000000000025ffffffffff2e000000000027f5fffffffffe9d33000000000850c6ffffffff5800000000000000000000000000000000000000000000000000000000000000005cffffff9a00000039feffffbd000000000000003bc7f1be31000000000051d1f0b42300000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000d0ffffff7000000000a8ffffff9800000000000070ffffffff7400000000000017499ffdfffff626000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000004dffffffffff170000000001c2fffffffff24100000000000000000065f6ff9a0000000000000000000044ffff2800000000000000000000000000000000000010e8ffffe40f000004d1fffff5220000000000000000000000000000000000000000000000000000000000fcffffffe80000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000088ffffffffffdb3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff2000000000000000000000000000009effffffffea010000000056fffffffffd3e00000000000000000000002459040000000000000000000044ffff2800000000000000000000000000000000000091ffffff4e0000006dffffff72000000000000000000000000000000000000000000000000000000000000fcffffffe800000000000000000000000000004ffffff59c06000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000045fffffb984b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000000031fcffffffff9e0000000000c3ffffffff900000000000000000000000000000000000000000000000000044ffff28000000000000000000000000000000000000d0ffffa800000000acffffc9020000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe8000000000000000000000000000000b5ffffffa5010000000000000000000000000000000070ffffffff7400000000000000000000000000003eddffffaa00000000000000000000000070ffffffff74000000000006f1ffff2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000000000003ae9fffffffffe360000000027fffffffffb180000000000000000000000000000000000000031470000000044ffff28000000005b290000000000000000000000003fd5ec15000000002bc5f92c000000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe800000000000000000000000000000023f8ffffff8a0000000000000000000000000000000070ffffffff740000000000000000000000000034f4fffff31b00000000000000000000000070ffffffff74000000000000abffff6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffff200000000000000000001751acfeffffffffff9c000000000068ffffffffb20000000000000000000000000000000000000001c8ffb425000044ffff28000033c5ffb9000000000000000000000000000120000000000000002100000000000000000074ffffffffffffffffffffffffffffff54000000000000fcffffffe80000000000000000000000000000000082ffffffff6d00000000000000000000000000000070ffffffff7400000000000000000000000023e9ffffff730000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038ffffffffffd2cccccccccccccedbecffffffffffffffffb7080000000000a3ffffffff73000000000000000000000000000000000000001ee2fffffa8c0e41ffff24179dfeffffd412000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffff60f00000000000000000000000000000009dffffffffd53000000000000000000000000000070ffffffff74000000000000000000000015dbffffffd3040000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffffffffb8f07000000000000ccffffffff3f00000000000000000000000000000000000000000a82f7ffffe669fffa63f0fffff06f0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffff7c000000000000000000000000000000004ffffffffff73c0000000000000000000000000070ffffffff74000000000000000000000bcafffffffe3d000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffffffffffffffff2a12c0000000000000000deffffffff270000000000000000000000000000000000000000000020aefffff6fef3fdfffe9c15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffffff31c00000000000000000000000000000000b3ffffffffee2900000000000000000000000070ffffffff7400000000000000000004b5ffffffffa000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038fffffffffffffffffffffffffdf0e3d4ae7f4d0900000000000000000000efffffffff170000000000000000000000000000000000000000000000003eacf7fffff7a6320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffffffffc40700000000000000000000000000000017c2fbffffffe019000000000000000000000070ffffffff740000000000000000009dffffffffee1600000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eeffffffff170000000000000000000000000000000000000000000000097cebffffffffe56e0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcfffffff4ffffb91200000000000000000000000000000000000000000000000000000000000000000070ffffffff74000000000000000082fffffffee1470000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbffffffff260000000000000000000000000000000000000000000055e1ffffddf9f0eaffffd645000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff9cdaffffe7782d0b061c5373080000000000000000000000000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003898d3f1fcf1d29d4f03000000001dd9feff780000000000000000c8ffffffff4000000000000000000000000000000000000000002cbeffffffb547ffff35c5ffffffb12200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff8746ffffffffffffffffffff59000088ffffffffffffffffff9800000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010aaffffffffffffffffffe05a00000072ffffff7800000000000000009cffffffff720000000000000000000000000000000000000026fcffffda4c0042ffff26015ce4fffff10e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff75008fffffffffffffffffff83000088ffffffffffffffffff9800000000000000000000000070ffffffff740000000000000000000000000000003819000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c6ffffffffffffffffffffffffac0c00a2ffffff7800000000000000005fffffffffb40000000000000000000000000000000000000000b1f27506000044ffff2800000b83f78700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff640003a9ffffffffffffffffaa00007bffffffffffffffffff9800000000000000000000000070ffffffff74000000000000000000000000000014ebf8790000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fffffffffffff3d5dff9ffffffffcb16cfffffff7800000000000000001ffefffffffc19000000000000000000000000000000000000001c170000000044ffff2800000000200c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffff4e00000284fcffffffffffffd0000018b4cccccccce7ffffff9800000000000000000000000070ffffffff740000000000000000000000000000a5fffff20000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f2ffffffffca35000000012d85e8ffffdcf8ffffff78000000000000000000b5ffffffff970000000000000000000000000000000000000000000000000044ffff2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcffffd91000000000268fd3f3f8e5c47c000000000000000088ffffff9800000000000000000000000070ffffffff74000000000000000000000000004affffff9b0000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043ffffffffde0d000000000000000f95feffffffffff7800000000000000000042fffffffffe4800000000000000000000000000000000000000000000000044ffff28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000000000de2ffffec130000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065ffffffff71000000000000000000005bfaffffffff7800000000000000000000acfffffffff7540000000000000000003fc6b3090000000000000000000044ffff28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff7400000000000000000000000096ffffff63000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070ffffffff4500000000000000000000006dffffffff780000000000000000000012e3ffffffffffb44c07000000094bb6ffffff9f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff7400000000000000000000003dfeffffc401000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051ffffffff55000000000000000000000058ffffffff7800000000000000000000002ae2fffffffffffffae3d0dcfbffffffffffed1a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000008d8fffffb2c00000000000000000000000000000070ffffffff740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f6ffffffb1000000000000000000000058ffffffff780000000000000000000000001cccffffffffffffffffffffffffffffd4230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000070ffffffff740000000000000000000087ffffff8a0000000000000000000000000000000070ffffffff74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092ffffffff850200000000000000000058ffffffff78000000000000000000000000000260e4ffffffffffffffffffffe96e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000000000000000000000000030fbffffe10b0000000000000000000000000000000070ffffffff7400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dcfffffffffd0580a0000000000000058ffffffff78000000000000000000000000000000054c93c7e9f8f7e2cc964c090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000004cdfffffe49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011b7fffffffffff4bc835a3b1e130a59ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000000000000000000000002dffffffce01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cdcffffffffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000004ffffff59c06000000000000000000b5ffffff6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249a2edffffffffffffffffffffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000b5ffffffa50100000000000000001df2fffff0180000000000000000000000000000000000003eddffffaa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002306593b4d1e3f2f9feffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000023f8ffffff8a0000000000000000006affffffa5000000000000000000000000000000000034f4fffff31b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffff780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000082ffffffff6d000000000000000001c2ffffff4300000000000000000000000000000023e9ffffff7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000058ffffffff760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000009dffffffffd53000000000000000026f7ffffd9070000000000000000000000000015dbffffffd3040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fffffffff660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000000004ffffffffff73c000000000000000079ffffff7e0000000000000000000000000bcafffffffe3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075ffffffff530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000000000000000000000b3ffffffffee290000000000000004cffffff7240000000000000000000004b5ffffffffa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8ffffffff240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000000000000000000000000017c2fbffffffe0190000000000000031fbffffb4000000000000000000009dffffffffee1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048741c0000000000000000000011f5ffffffe6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000000000000000089ffffef00000000000000000082fffffffee14700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000059fffff67b070000000000000002a8ffffffff88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000000000000000000000000000000000000000000000000000000000008d9e05100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005e6ffffffffe378230000000033b8fffffffff71d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000001141000000000000000000000000000000000000000000000000000000001c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047efffffffffffffecd7d3edffffffffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000060f2f72700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ebbffffffffffffffffffffffffffff880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000d2ffffc3010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004dc6ffffffffffffffffffffe25a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000079ffffff6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002877b0d8f1fbefd9a75b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000006d7fffff21e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000041ffffffb700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000a4ffffff5d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000017efffffec160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000006affffffa90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000002caffffff4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000032fcffffe50f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000000000b6ffffff51000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000000004affffffd205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000009defffffc3500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000000000085ffffff8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000000028f9ffffdc090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000000befffffe41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000005cffffff9a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000010e8ffffe40f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff98000091ffffff4e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff980000d0ffffa8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800003fd5ec15000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffff9800000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ab5cccccccce7ffffff9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007cffffffffffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffffffffff98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088ffffffffffffffffff9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: +--- !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: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: Lato-Regular + m_EditorClassIdentifier: + hashCode: 0 + material: {fileID: 7453642021753212536} + materialHashCode: 0 + m_Version: 1.1.0 + m_SourceFontFileGUID: 49342641ea2b7e6429da3245744bb92b + m_SourceFontFile_EditorRef: {fileID: 0} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FamilyName: Lato + m_StyleName: Regular + m_PointSize: 55 + m_Scale: 1 + m_LineHeight: 66 + m_AscentLine: 54.285 + m_CapLine: 39 + m_MeanLine: 28 + m_Baseline: 0 + m_DescentLine: -11.715 + m_SuperscriptOffset: 54.285 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -11.715 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -5.5 + m_UnderlineThickness: 3.3 + m_StrikethroughOffset: 11.2 + m_StrikethroughThickness: 3.3 + m_TabWidth: 11 + m_GlyphTable: + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 11 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 4 + m_Metrics: + m_Width: 7 + m_Height: 39 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 77 + m_Y: 174 + m_Width: 7 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 5 + m_Metrics: + m_Width: 14 + m_Height: 14 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 188 + m_Y: 388 + m_Width: 14 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 6 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 249 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 7 + m_Metrics: + m_Width: 28 + m_Height: 52 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 239 + m_Y: 230 + m_Width: 28 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 8 + m_Metrics: + m_Width: 41 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 1 + m_Y: 118 + m_Width: 41 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 9 + m_Metrics: + m_Width: 37 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 466 + m_Y: 1 + m_Width: 37 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 10 + m_Metrics: + m_Width: 5 + m_Height: 14 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 13 + m_GlyphRect: + m_X: 35 + m_Y: 208 + m_Width: 5 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 11 + m_Metrics: + m_Width: 12 + m_Height: 51 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 43 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 550 + m_Y: 118 + m_Width: 12 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 12 + m_Metrics: + m_Width: 11 + m_Height: 51 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 43 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 367 + m_Y: 109 + m_Width: 11 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 13 + m_Metrics: + m_Width: 18 + m_Height: 18 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 57 + m_Y: 402 + m_Width: 18 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 14 + m_Metrics: + m_Width: 28 + m_Height: 27 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 32 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 625 + m_Y: 1 + m_Width: 28 + m_Height: 27 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 15 + m_Metrics: + m_Width: 8 + m_Height: 14 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 6 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 120 + m_Y: 298 + m_Width: 8 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 16 + m_Metrics: + m_Width: 15 + m_Height: 4 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 188 + m_Y: 376 + m_Width: 15 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 17 + m_Metrics: + m_Width: 8 + m_Height: 7 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 119 + m_Y: 314 + m_Width: 8 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 233 + m_Y: 331 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 19 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 33 + m_Y: 265 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 20 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 465 + m_Y: 164 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 21 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 465 + m_Y: 42 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 22 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 420 + m_Y: 72 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 23 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 290 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 24 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 655 + m_Y: 29 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 25 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 380 + m_Y: 99 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 26 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 625 + m_Y: 30 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 27 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 419 + m_Y: 113 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 28 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 592 + m_Y: 114 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 8 + m_Height: 27 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 27 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 120 + m_Y: 252 + m_Width: 8 + m_Height: 27 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 8 + m_Height: 35 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 27 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 121 + m_Y: 205 + m_Width: 8 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 22 + m_Height: 25 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 288 + m_Y: 334 + m_Width: 22 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 32 + m_Metrics: + m_Width: 24 + m_Height: 13 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 25 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 292 + m_Y: 289 + m_Width: 24 + m_Height: 13 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 22 + m_Height: 25 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 257 + m_Y: 352 + m_Width: 22 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 34 + m_Metrics: + m_Width: 21 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 269 + m_Y: 241 + m_Width: 21 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 35 + m_Metrics: + m_Width: 42 + m_Height: 44 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 1 + m_Y: 42 + m_Width: 42 + m_Height: 44 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 36 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 215 + m_Y: 52 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 29 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 36 + m_GlyphRect: + m_X: 1 + m_Y: 372 + m_Width: 29 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 38 + m_Metrics: + m_Width: 34 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 38 + m_GlyphRect: + m_X: 168 + m_Y: 183 + m_Width: 34 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 41 + m_GlyphRect: + m_X: 212 + m_Y: 134 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 40 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 494 + m_Y: 91 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 41 + m_Metrics: + m_Width: 26 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 465 + m_Y: 123 + m_Width: 26 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 172 + m_Y: 142 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 43 + m_Metrics: + m_Width: 33 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 131 + m_Y: 186 + m_Width: 33 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 44 + m_Metrics: + m_Width: 7 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 77 + m_Y: 215 + m_Width: 7 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 45 + m_Metrics: + m_Width: 19 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 359 + m_Y: 212 + m_Width: 19 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 46 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 130 + m_Y: 278 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 47 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 435 + m_Y: 217 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 48 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 51 + m_GlyphRect: + m_X: 45 + m_Y: 42 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 49 + m_Metrics: + m_Width: 33 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 166 + m_Y: 224 + m_Width: 33 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 50 + m_Metrics: + m_Width: 40 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 302 + m_Y: 1 + m_Width: 40 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 565 + m_Y: 31 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 52 + m_Metrics: + m_Width: 42 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 174 + m_Y: 1 + m_Width: 42 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 53 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 33 + m_Y: 306 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 54 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 535 + m_Y: 34 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 55 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 208 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 56 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 35 + m_Y: 224 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 215 + m_Y: 93 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 56 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 56 + m_GlyphRect: + m_X: 64 + m_Y: 1 + m_Width: 56 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 131 + m_Y: 145 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 60 + m_Metrics: + m_Width: 35 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 249 + m_Y: 148 + m_Width: 35 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 61 + m_Metrics: + m_Width: 31 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 86 + m_Y: 303 + m_Width: 31 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 62 + m_Metrics: + m_Width: 12 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 344 + m_Y: 252 + m_Width: 12 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 63 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 208 + m_Y: 351 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 11 + m_Height: 50 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 148 + m_Y: 413 + m_Width: 11 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 65 + m_Metrics: + m_Width: 24 + m_Height: 18 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 292 + m_Y: 269 + m_Width: 24 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 22 + m_Height: 4 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: -4 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 154 + m_Y: 357 + m_Width: 22 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 67 + m_Metrics: + m_Width: 11 + m_Height: 8 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 185 + m_Y: 404 + m_Width: 11 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 1 + m_Y: 413 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 25 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 493 + m_Y: 132 + m_Width: 25 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 26 + m_GlyphRect: + m_X: 292 + m_Y: 304 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 26 + m_Height: 40 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 592 + m_Y: 72 + m_Width: 26 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 25 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 465 + m_Y: 205 + m_Width: 25 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 19 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 358 + m_Y: 253 + m_Width: 19 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 27 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 465 + m_Y: 83 + m_Width: 27 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 24 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 519 + m_Y: 186 + m_Width: 24 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 8 + m_Height: 40 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 121 + m_Y: 163 + m_Width: 8 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 77 + m_Metrics: + m_Width: 13 + m_Height: 50 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 450 + m_Y: 72 + m_Width: 13 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 24 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 492 + m_Y: 213 + m_Width: 24 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 6 + m_Height: 40 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 292 + m_Y: 97 + m_Width: 6 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 80 + m_Metrics: + m_Width: 38 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 426 + m_Y: 1 + m_Width: 38 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 24 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 318 + m_Y: 230 + m_Width: 24 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 28 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 565 + m_Y: 1 + m_Width: 28 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 83 + m_Metrics: + m_Width: 25 + m_Height: 37 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 492 + m_Y: 174 + m_Width: 25 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 84 + m_Metrics: + m_Width: 26 + m_Height: 37 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 410 + m_Y: 154 + m_Width: 26 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 17 + m_Height: 28 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 129 + m_Y: 390 + m_Width: 17 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 21 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 24 + m_GlyphRect: + m_X: 129 + m_Y: 360 + m_Width: 21 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 19 + m_Height: 37 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 358 + m_Y: 294 + m_Width: 19 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 24 + m_Height: 28 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 318 + m_Y: 260 + m_Width: 24 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 28 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 595 + m_Y: 1 + m_Width: 28 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 90 + m_Metrics: + m_Width: 42 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 1 + m_Y: 88 + m_Width: 42 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 91 + m_Metrics: + m_Width: 27 + m_Height: 28 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 714 + m_Y: 1 + m_Width: 27 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 92 + m_Metrics: + m_Width: 28 + m_Height: 37 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 329 + m_Y: 191 + m_Width: 28 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 23 + m_Height: 28 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 263 + m_Y: 322 + m_Width: 23 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 94 + m_Metrics: + m_Width: 14 + m_Height: 50 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 276 + m_Y: 189 + m_Width: 14 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 95 + m_Metrics: + m_Width: 5 + m_Height: 51 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 292 + m_Y: 139 + m_Width: 5 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 14 + m_Height: 50 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 449 + m_Y: 124 + m_Width: 14 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 97 + m_Metrics: + m_Width: 26 + m_Height: 11 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 22 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 564 + m_Y: 122 + m_Width: 26 + m_Height: 11 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 98 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 11 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 99 + m_Metrics: + m_Width: 7 + m_Height: 37 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 199 + m_Y: 277 + m_Width: 7 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 100 + m_Metrics: + m_Width: 26 + m_Height: 41 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 35 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 533 + m_Y: 75 + m_Width: 26 + m_Height: 41 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 101 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 1 + m_Y: 331 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 102 + m_Metrics: + m_Width: 26 + m_Height: 26 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 380 + m_Y: 180 + m_Width: 26 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 103 + m_Metrics: + m_Width: 30 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 33 + m_Y: 347 + m_Width: 30 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 104 + m_Metrics: + m_Width: 5 + m_Height: 51 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 201 + m_Y: 224 + m_Width: 5 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 105 + m_Metrics: + m_Width: 22 + m_Height: 43 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 317 + m_Y: 304 + m_Width: 22 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 106 + m_Metrics: + m_Width: 17 + m_Height: 6 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 106 + m_Y: 396 + m_Width: 17 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 107 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 89 + m_Y: 42 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 108 + m_Metrics: + m_Width: 15 + m_Height: 17 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 171 + m_Y: 376 + m_Width: 15 + m_Height: 17 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 109 + m_Metrics: + m_Width: 19 + m_Height: 23 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 65 + m_Y: 357 + m_Width: 19 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 110 + m_Metrics: + m_Width: 24 + m_Height: 12 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 20 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 318 + m_Y: 290 + m_Width: 24 + m_Height: 12 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 111 + m_Metrics: + m_Width: 15 + m_Height: 4 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 19 + m_GlyphRect: + m_X: 188 + m_Y: 382 + m_Width: 15 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 112 + m_Metrics: + m_Width: 42 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 45 + m_Y: 83 + m_Width: 42 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 113 + m_Metrics: + m_Width: 17 + m_Height: 3 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 37 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 106 + m_Y: 404 + m_Width: 17 + m_Height: 3 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 114 + m_Metrics: + m_Width: 19 + m_Height: 18 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 65 + m_Y: 382 + m_Width: 19 + m_Height: 18 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 115 + m_Metrics: + m_Width: 28 + m_Height: 31 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 33 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 535 + m_Y: 1 + m_Width: 28 + m_Height: 31 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 116 + m_Metrics: + m_Width: 15 + m_Height: 20 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 44 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 341 + m_Y: 304 + m_Width: 15 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 117 + m_Metrics: + m_Width: 15 + m_Height: 20 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 341 + m_Y: 326 + m_Width: 15 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 118 + m_Metrics: + m_Width: 12 + m_Height: 8 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 148 + m_Y: 403 + m_Width: 12 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 119 + m_Metrics: + m_Width: 24 + m_Height: 37 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 292 + m_Y: 230 + m_Width: 24 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 120 + m_Metrics: + m_Width: 35 + m_Height: 45 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 300 + m_Y: 101 + m_Width: 35 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 121 + m_Metrics: + m_Width: 9 + m_Height: 8 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 20 + m_HorizontalAdvance: 15 + m_GlyphRect: + m_X: 120 + m_Y: 242 + m_Width: 9 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 122 + m_Metrics: + m_Width: 11 + m_Height: 10 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 1 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 217 + m_Y: 396 + m_Width: 11 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 123 + m_Metrics: + m_Width: 13 + m_Height: 20 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 45 + m_HorizontalAdvance: 18 + m_GlyphRect: + m_X: 344 + m_Y: 230 + m_Width: 13 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 124 + m_Metrics: + m_Width: 18 + m_Height: 17 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 21 + m_GlyphRect: + m_X: 178 + m_Y: 357 + m_Width: 18 + m_Height: 17 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 125 + m_Metrics: + m_Width: 18 + m_Height: 23 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 86 + m_Y: 384 + m_Width: 18 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 126 + m_Metrics: + m_Width: 37 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 426 + m_Y: 31 + m_Width: 37 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 127 + m_Metrics: + m_Width: 36 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 382 + m_Y: 58 + m_Width: 36 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 128 + m_Metrics: + m_Width: 38 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 39 + m_GlyphRect: + m_X: 172 + m_Y: 101 + m_Width: 38 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 129 + m_Metrics: + m_Width: 21 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 22 + m_GlyphRect: + m_X: 269 + m_Y: 282 + m_Width: 21 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 130 + m_Metrics: + m_Width: 38 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 132 + m_Y: 94 + m_Width: 38 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 131 + m_Metrics: + m_Width: 38 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 386 + m_Y: 1 + m_Width: 38 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 132 + m_Metrics: + m_Width: 38 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 302 + m_Y: 42 + m_Width: 38 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 133 + m_Metrics: + m_Width: 38 + m_Height: 47 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 342 + m_Y: 42 + m_Width: 38 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 134 + m_Metrics: + m_Width: 38 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 260 + m_Y: 47 + m_Width: 38 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 135 + m_Metrics: + m_Width: 38 + m_Height: 50 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 37 + m_GlyphRect: + m_X: 133 + m_Y: 42 + m_Width: 38 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 136 + m_Metrics: + m_Width: 50 + m_Height: 39 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 51 + m_GlyphRect: + m_X: 122 + m_Y: 1 + m_Width: 50 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 137 + m_Metrics: + m_Width: 34 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 38 + m_GlyphRect: + m_X: 209 + m_Y: 175 + m_Width: 34 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 138 + m_Metrics: + m_Width: 26 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 684 + m_Y: 43 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 139 + m_Metrics: + m_Width: 26 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 654 + m_Y: 70 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 140 + m_Metrics: + m_Width: 26 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 623 + m_Y: 71 + m_Width: 26 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 141 + m_Metrics: + m_Width: 26 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 564 + m_Y: 72 + m_Width: 26 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 142 + m_Metrics: + m_Width: 15 + m_Height: 49 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 69 + m_Y: 256 + m_Width: 15 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 143 + m_Metrics: + m_Width: 15 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 547 + m_Y: 171 + m_Width: 15 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 144 + m_Metrics: + m_Width: 19 + m_Height: 48 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 65 + m_Y: 307 + m_Width: 19 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 145 + m_Metrics: + m_Width: 19 + m_Height: 48 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 359 + m_Y: 162 + m_Width: 19 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 146 + m_Metrics: + m_Width: 40 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 43 + m_GlyphRect: + m_X: 344 + m_Y: 1 + m_Width: 40 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 147 + m_Metrics: + m_Width: 33 + m_Height: 47 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 42 + m_GlyphRect: + m_X: 86 + m_Y: 163 + m_Width: 33 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 148 + m_Metrics: + m_Width: 40 + m_Height: 49 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 218 + m_Y: 1 + m_Width: 40 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 149 + m_Metrics: + m_Width: 40 + m_Height: 49 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 173 + m_Y: 50 + m_Width: 40 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 150 + m_Metrics: + m_Width: 40 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 89 + m_Y: 113 + m_Width: 40 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 151 + m_Metrics: + m_Width: 40 + m_Height: 47 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 47 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 1 + m_Y: 159 + m_Width: 40 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 152 + m_Metrics: + m_Width: 40 + m_Height: 48 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 44 + m_Y: 124 + m_Width: 40 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 153 + m_Metrics: + m_Width: 26 + m_Height: 26 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 522 + m_Y: 118 + m_Width: 26 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 154 + m_Metrics: + m_Width: 40 + m_Height: 44 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 41 + m_HorizontalAdvance: 44 + m_GlyphRect: + m_X: 260 + m_Y: 1 + m_Width: 40 + m_Height: 44 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 155 + m_Metrics: + m_Width: 32 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 131 + m_Y: 227 + m_Width: 32 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 156 + m_Metrics: + m_Width: 32 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 165 + m_Y: 265 + m_Width: 32 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 157 + m_Metrics: + m_Width: 32 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 43 + m_Y: 174 + m_Width: 32 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 158 + m_Metrics: + m_Width: 32 + m_Height: 48 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 48 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 86 + m_Y: 212 + m_Width: 32 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 159 + m_Metrics: + m_Width: 35 + m_Height: 49 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 49 + m_HorizontalAdvance: 35 + m_GlyphRect: + m_X: 255 + m_Y: 97 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 160 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 504 + m_Y: 50 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 161 + m_Metrics: + m_Width: 27 + m_Height: 39 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 34 + m_GlyphRect: + m_X: 594 + m_Y: 31 + m_Width: 27 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 162 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 238 + m_Y: 284 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 163 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 208 + m_Y: 310 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 164 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 164 + m_Y: 316 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 165 + m_Metrics: + m_Width: 23 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 129 + m_Y: 319 + m_Width: 23 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 166 + m_Metrics: + m_Width: 23 + m_Height: 38 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 86 + m_Y: 344 + m_Width: 23 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 167 + m_Metrics: + m_Width: 23 + m_Height: 41 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 41 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 379 + m_Y: 290 + m_Width: 23 + m_Height: 41 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 168 + m_Metrics: + m_Width: 41 + m_Height: 28 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 89 + m_Y: 83 + m_Width: 41 + m_Height: 28 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 169 + m_Metrics: + m_Width: 23 + m_Height: 37 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 28 + m_HorizontalAdvance: 26 + m_GlyphRect: + m_X: 32 + m_Y: 388 + m_Width: 23 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 170 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 438 + m_Y: 176 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 171 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 408 + m_Y: 193 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 172 + m_Metrics: + m_Width: 25 + m_Height: 39 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 380 + m_Y: 208 + m_Width: 25 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 173 + m_Metrics: + m_Width: 25 + m_Height: 38 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 29 + m_GlyphRect: + m_X: 520 + m_Y: 146 + m_Width: 25 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 174 + m_Metrics: + m_Width: 11 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 204 + m_Y: 396 + m_Width: 11 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 175 + m_Metrics: + m_Width: 12 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 171 + m_Y: 395 + m_Width: 12 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 176 + m_Metrics: + m_Width: 17 + m_Height: 39 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 189 + m_Y: 316 + m_Width: 17 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 177 + m_Metrics: + m_Width: 17 + m_Height: 38 + m_HorizontalBearingX: -1 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 14 + m_GlyphRect: + m_X: 152 + m_Y: 363 + m_Width: 17 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 178 + m_Metrics: + m_Width: 27 + m_Height: 40 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 685 + m_Y: 1 + m_Width: 27 + m_Height: 40 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 179 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 407 + m_Y: 234 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 180 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 337 + m_Y: 109 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 181 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 299 + m_Y: 148 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 182 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 329 + m_Y: 150 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 183 + m_Metrics: + m_Width: 28 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 299 + m_Y: 189 + m_Width: 28 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 184 + m_Metrics: + m_Width: 28 + m_Height: 38 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 380 + m_Y: 140 + m_Width: 28 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 185 + m_Metrics: + m_Width: 28 + m_Height: 26 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 655 + m_Y: 1 + m_Width: 28 + m_Height: 26 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 186 + m_Metrics: + m_Width: 29 + m_Height: 33 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 31 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 208 + m_Y: 225 + m_Width: 29 + m_Height: 33 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 187 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 380 + m_Y: 249 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 188 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 461 + m_Y: 235 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 189 + m_Metrics: + m_Width: 24 + m_Height: 39 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 433 + m_Y: 258 + m_Width: 24 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 190 + m_Metrics: + m_Width: 24 + m_Height: 38 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 406 + m_Y: 275 + m_Width: 24 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 191 + m_Metrics: + m_Width: 28 + m_Height: 48 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 208 + m_Y: 260 + m_Width: 28 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 192 + m_Metrics: + m_Width: 25 + m_Height: 49 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 30 + m_GlyphRect: + m_X: 564 + m_Y: 135 + m_Width: 25 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 193 + m_Metrics: + m_Width: 28 + m_Height: 47 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 38 + m_HorizontalAdvance: 28 + m_GlyphRect: + m_X: 505 + m_Y: 1 + m_Width: 28 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 229 + m_Metrics: + m_Width: 23 + m_Height: 4 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 31 + m_GlyphRect: + m_X: 233 + m_Y: 325 + m_Width: 23 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 230 + m_Metrics: + m_Width: 37 + m_Height: 4 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 18 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 382 + m_Y: 52 + m_Width: 37 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 231 + m_Metrics: + m_Width: 8 + m_Height: 15 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 120 + m_Y: 281 + m_Width: 8 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 232 + m_Metrics: + m_Width: 7 + m_Height: 16 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 495 + m_Y: 42 + m_Width: 7 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 233 + m_Metrics: + m_Width: 7 + m_Height: 15 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 12 + m_GlyphRect: + m_X: 410 + m_Y: 99 + m_Width: 7 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 234 + m_Metrics: + m_Width: 16 + m_Height: 15 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 362 + m_Width: 16 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 235 + m_Metrics: + m_Width: 16 + m_Height: 16 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 42 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 344 + m_Width: 16 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 236 + m_Metrics: + m_Width: 16 + m_Height: 15 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 111 + m_Y: 379 + m_Width: 16 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 237 + m_Metrics: + m_Width: 26 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 743 + m_Y: 1 + m_Width: 26 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 238 + m_Metrics: + m_Width: 26 + m_Height: 50 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 40 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 714 + m_Y: 31 + m_Width: 26 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 239 + m_Metrics: + m_Width: 22 + m_Height: 20 + m_HorizontalBearingX: 5 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 232 + m_Y: 376 + m_Width: 22 + m_Height: 20 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 240 + m_Metrics: + m_Width: 36 + m_Height: 7 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 7 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 300 + m_Y: 92 + m_Width: 36 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 241 + m_Metrics: + m_Width: 61 + m_Height: 39 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 63 + m_GlyphRect: + m_X: 1 + m_Y: 1 + m_Width: 61 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 242 + m_Metrics: + m_Width: 10 + m_Height: 23 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 185 + m_Y: 414 + m_Width: 10 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 243 + m_Metrics: + m_Width: 10 + m_Height: 23 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 26 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 161 + m_Y: 436 + m_Width: 10 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 244 + m_Metrics: + m_Width: 29 + m_Height: 39 + m_HorizontalBearingX: -6 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 17 + m_GlyphRect: + m_X: 245 + m_Y: 189 + m_Width: 29 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 245 + m_Metrics: + m_Width: 32 + m_Height: 39 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 32 + m_GlyphRect: + m_X: 86 + m_Y: 262 + m_Width: 32 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 246 + m_Metrics: + m_Width: 36 + m_Height: 16 + m_HorizontalBearingX: 1 + m_HorizontalBearingY: 39 + m_HorizontalAdvance: 40 + m_GlyphRect: + m_X: 342 + m_Y: 91 + m_Width: 36 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 4 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 5 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 6 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 8 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 11 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 12 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 16 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 28 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 32 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 35 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 43 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 44 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 45 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 50 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 60 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 61 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 62 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 63 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 65 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 91 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 94 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 95 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 97 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 98 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 161 + m_GlyphIndex: 99 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 162 + m_GlyphIndex: 100 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 163 + m_GlyphIndex: 101 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 164 + m_GlyphIndex: 102 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 165 + m_GlyphIndex: 103 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 166 + m_GlyphIndex: 104 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 167 + m_GlyphIndex: 105 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 168 + m_GlyphIndex: 106 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 169 + m_GlyphIndex: 107 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 170 + m_GlyphIndex: 108 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 171 + m_GlyphIndex: 109 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 172 + m_GlyphIndex: 110 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 173 + m_GlyphIndex: 111 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 174 + m_GlyphIndex: 112 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 175 + m_GlyphIndex: 113 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 176 + m_GlyphIndex: 114 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 177 + m_GlyphIndex: 115 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 178 + m_GlyphIndex: 116 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 179 + m_GlyphIndex: 117 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 180 + m_GlyphIndex: 118 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 181 + m_GlyphIndex: 119 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 182 + m_GlyphIndex: 120 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 183 + m_GlyphIndex: 121 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 184 + m_GlyphIndex: 122 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 185 + m_GlyphIndex: 123 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 186 + m_GlyphIndex: 124 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 187 + m_GlyphIndex: 125 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 188 + m_GlyphIndex: 126 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 189 + m_GlyphIndex: 127 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 190 + m_GlyphIndex: 128 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 191 + m_GlyphIndex: 129 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 192 + m_GlyphIndex: 130 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 193 + m_GlyphIndex: 131 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 194 + m_GlyphIndex: 132 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 195 + m_GlyphIndex: 133 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 196 + m_GlyphIndex: 134 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 197 + m_GlyphIndex: 135 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 198 + m_GlyphIndex: 136 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 199 + m_GlyphIndex: 137 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 200 + m_GlyphIndex: 138 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 201 + m_GlyphIndex: 139 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 202 + m_GlyphIndex: 140 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 203 + m_GlyphIndex: 141 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 204 + m_GlyphIndex: 142 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 205 + m_GlyphIndex: 143 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 206 + m_GlyphIndex: 144 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 207 + m_GlyphIndex: 145 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 208 + m_GlyphIndex: 146 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 209 + m_GlyphIndex: 147 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 210 + m_GlyphIndex: 148 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 211 + m_GlyphIndex: 149 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 212 + m_GlyphIndex: 150 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 213 + m_GlyphIndex: 151 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 214 + m_GlyphIndex: 152 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 215 + m_GlyphIndex: 153 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 216 + m_GlyphIndex: 154 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 217 + m_GlyphIndex: 155 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 218 + m_GlyphIndex: 156 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 219 + m_GlyphIndex: 157 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 220 + m_GlyphIndex: 158 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 221 + m_GlyphIndex: 159 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 222 + m_GlyphIndex: 160 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 223 + m_GlyphIndex: 161 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 224 + m_GlyphIndex: 162 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 225 + m_GlyphIndex: 163 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 226 + m_GlyphIndex: 164 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 227 + m_GlyphIndex: 165 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 228 + m_GlyphIndex: 166 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 229 + m_GlyphIndex: 167 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 230 + m_GlyphIndex: 168 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 231 + m_GlyphIndex: 169 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 232 + m_GlyphIndex: 170 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 233 + m_GlyphIndex: 171 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 234 + m_GlyphIndex: 172 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 235 + m_GlyphIndex: 173 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 236 + m_GlyphIndex: 174 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 237 + m_GlyphIndex: 175 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 238 + m_GlyphIndex: 176 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 239 + m_GlyphIndex: 177 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 240 + m_GlyphIndex: 178 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 241 + m_GlyphIndex: 179 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 242 + m_GlyphIndex: 180 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 243 + m_GlyphIndex: 181 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 244 + m_GlyphIndex: 182 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 245 + m_GlyphIndex: 183 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 246 + m_GlyphIndex: 184 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 247 + m_GlyphIndex: 185 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 248 + m_GlyphIndex: 186 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 249 + m_GlyphIndex: 187 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 250 + m_GlyphIndex: 188 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 251 + m_GlyphIndex: 189 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 252 + m_GlyphIndex: 190 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 253 + m_GlyphIndex: 191 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 254 + m_GlyphIndex: 192 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 255 + m_GlyphIndex: 193 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8211 + m_GlyphIndex: 229 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8212 + m_GlyphIndex: 230 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8216 + m_GlyphIndex: 231 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8217 + m_GlyphIndex: 232 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8218 + m_GlyphIndex: 233 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8220 + m_GlyphIndex: 234 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8221 + m_GlyphIndex: 235 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8222 + m_GlyphIndex: 236 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8224 + m_GlyphIndex: 237 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8225 + m_GlyphIndex: 238 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8226 + m_GlyphIndex: 239 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 240 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8240 + m_GlyphIndex: 241 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8249 + m_GlyphIndex: 242 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8250 + m_GlyphIndex: 243 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8260 + m_GlyphIndex: 244 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8364 + m_GlyphIndex: 245 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8482 + m_GlyphIndex: 246 + m_Scale: 1 + m_AtlasTextures: + - {fileID: -2340667833886341526} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 63 + m_Height: 41 + - m_X: 63 + m_Y: 0 + m_Width: 58 + m_Height: 41 + - m_X: 121 + m_Y: 0 + m_Width: 52 + m_Height: 41 + - m_X: 173 + m_Y: 0 + m_Width: 44 + m_Height: 49 + - m_X: 0 + m_Y: 41 + m_Width: 44 + m_Height: 46 + - m_X: 44 + m_Y: 41 + m_Width: 44 + m_Height: 41 + - m_X: 88 + m_Y: 41 + m_Width: 44 + m_Height: 41 + - m_X: 132 + m_Y: 41 + m_Width: 40 + m_Height: 52 + - m_X: 44 + m_Y: 82 + m_Width: 44 + m_Height: 41 + - m_X: 0 + m_Y: 87 + m_Width: 44 + m_Height: 30 + - m_X: 0 + m_Y: 117 + m_Width: 43 + m_Height: 41 + - m_X: 88 + m_Y: 82 + m_Width: 43 + m_Height: 30 + - m_X: 217 + m_Y: 0 + m_Width: 42 + m_Height: 51 + - m_X: 172 + m_Y: 49 + m_Width: 42 + m_Height: 51 + - m_X: 131 + m_Y: 93 + m_Width: 40 + m_Height: 51 + - m_X: 88 + m_Y: 112 + m_Width: 42 + m_Height: 50 + - m_X: 43 + m_Y: 123 + m_Width: 42 + m_Height: 50 + - m_X: 0 + m_Y: 158 + m_Width: 42 + m_Height: 49 + - m_X: 259 + m_Y: 0 + m_Width: 42 + m_Height: 46 + - m_X: 301 + m_Y: 0 + m_Width: 42 + m_Height: 41 + - m_X: 343 + m_Y: 0 + m_Width: 42 + m_Height: 41 + - m_X: 385 + m_Y: 0 + m_Width: 40 + m_Height: 51 + - m_X: 301 + m_Y: 41 + m_Width: 40 + m_Height: 50 + - m_X: 259 + m_Y: 46 + m_Width: 40 + m_Height: 50 + - m_X: 341 + m_Y: 41 + m_Width: 40 + m_Height: 49 + - m_X: 214 + m_Y: 51 + m_Width: 40 + m_Height: 41 + - m_X: 214 + m_Y: 92 + m_Width: 40 + m_Height: 41 + - m_X: 171 + m_Y: 100 + m_Width: 40 + m_Height: 41 + - m_X: 425 + m_Y: 0 + m_Width: 40 + m_Height: 30 + - m_X: 465 + m_Y: 0 + m_Width: 39 + m_Height: 41 + - m_X: 425 + m_Y: 30 + m_Width: 39 + m_Height: 41 + - m_X: 381 + m_Y: 51 + m_Width: 39 + m_Height: 6 + - m_X: 381 + m_Y: 57 + m_Width: 38 + m_Height: 41 + - m_X: 341 + m_Y: 90 + m_Width: 38 + m_Height: 18 + - m_X: 299 + m_Y: 91 + m_Width: 38 + m_Height: 9 + - m_X: 254 + m_Y: 96 + m_Width: 37 + m_Height: 51 + - m_X: 291 + m_Y: 96 + m_Width: 8 + m_Height: 42 + - m_X: 299 + m_Y: 100 + m_Width: 37 + m_Height: 47 + - m_X: 291 + m_Y: 138 + m_Width: 7 + m_Height: 53 + - m_X: 211 + m_Y: 133 + m_Width: 37 + m_Height: 41 + - m_X: 171 + m_Y: 141 + m_Width: 37 + m_Height: 41 + - m_X: 130 + m_Y: 144 + m_Width: 37 + m_Height: 41 + - m_X: 248 + m_Y: 147 + m_Width: 37 + m_Height: 41 + - m_X: 208 + m_Y: 174 + m_Width: 36 + m_Height: 50 + - m_X: 167 + m_Y: 182 + m_Width: 36 + m_Height: 41 + - m_X: 85 + m_Y: 162 + m_Width: 35 + m_Height: 49 + - m_X: 120 + m_Y: 162 + m_Width: 10 + m_Height: 42 + - m_X: 130 + m_Y: 185 + m_Width: 35 + m_Height: 41 + - m_X: 120 + m_Y: 204 + m_Width: 10 + m_Height: 37 + - m_X: 165 + m_Y: 223 + m_Width: 35 + m_Height: 41 + - m_X: 130 + m_Y: 226 + m_Width: 34 + m_Height: 51 + - m_X: 200 + m_Y: 223 + m_Width: 7 + m_Height: 53 + - m_X: 164 + m_Y: 264 + m_Width: 34 + m_Height: 51 + - m_X: 42 + m_Y: 173 + m_Width: 34 + m_Height: 50 + - m_X: 76 + m_Y: 173 + m_Width: 9 + m_Height: 41 + - m_X: 85 + m_Y: 211 + m_Width: 34 + m_Height: 50 + - m_X: 76 + m_Y: 214 + m_Width: 9 + m_Height: 41 + - m_X: 119 + m_Y: 241 + m_Width: 11 + m_Height: 10 + - m_X: 119 + m_Y: 251 + m_Width: 10 + m_Height: 29 + - m_X: 129 + m_Y: 277 + m_Width: 34 + m_Height: 41 + - m_X: 0 + m_Y: 207 + m_Width: 34 + m_Height: 41 + - m_X: 34 + m_Y: 207 + m_Width: 7 + m_Height: 16 + - m_X: 34 + m_Y: 223 + m_Width: 34 + m_Height: 41 + - m_X: 68 + m_Y: 255 + m_Width: 17 + m_Height: 51 + - m_X: 85 + m_Y: 261 + m_Width: 34 + m_Height: 41 + - m_X: 119 + m_Y: 280 + m_Width: 10 + m_Height: 17 + - m_X: 119 + m_Y: 297 + m_Width: 10 + m_Height: 16 + - m_X: 85 + m_Y: 302 + m_Width: 33 + m_Height: 41 + - m_X: 118 + m_Y: 313 + m_Width: 10 + m_Height: 9 + - m_X: 0 + m_Y: 248 + m_Width: 32 + m_Height: 41 + - m_X: 32 + m_Y: 264 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 289 + m_Width: 32 + m_Height: 41 + - m_X: 32 + m_Y: 305 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 330 + m_Width: 32 + m_Height: 41 + - m_X: 64 + m_Y: 306 + m_Width: 21 + m_Height: 50 + - m_X: 32 + m_Y: 346 + m_Width: 32 + m_Height: 41 + - m_X: 0 + m_Y: 371 + m_Width: 31 + m_Height: 41 + - m_X: 244 + m_Y: 188 + m_Width: 31 + m_Height: 41 + - m_X: 275 + m_Y: 188 + m_Width: 16 + m_Height: 52 + - m_X: 207 + m_Y: 224 + m_Width: 31 + m_Height: 35 + - m_X: 238 + m_Y: 229 + m_Width: 30 + m_Height: 54 + - m_X: 207 + m_Y: 259 + m_Width: 30 + m_Height: 50 + - m_X: 198 + m_Y: 276 + m_Width: 9 + m_Height: 39 + - m_X: 504 + m_Y: 0 + m_Width: 30 + m_Height: 49 + - m_X: 464 + m_Y: 41 + m_Width: 30 + m_Height: 41 + - m_X: 494 + m_Y: 41 + m_Width: 9 + m_Height: 18 + - m_X: 419 + m_Y: 71 + m_Width: 30 + m_Height: 41 + - m_X: 449 + m_Y: 71 + m_Width: 15 + m_Height: 52 + - m_X: 379 + m_Y: 98 + m_Width: 30 + m_Height: 41 + - m_X: 409 + m_Y: 98 + m_Width: 9 + m_Height: 17 + - m_X: 418 + m_Y: 112 + m_Width: 30 + m_Height: 41 + - m_X: 336 + m_Y: 108 + m_Width: 30 + m_Height: 41 + - m_X: 366 + m_Y: 108 + m_Width: 13 + m_Height: 53 + - m_X: 298 + m_Y: 147 + m_Width: 30 + m_Height: 41 + - m_X: 328 + m_Y: 149 + m_Width: 30 + m_Height: 41 + - m_X: 298 + m_Y: 188 + m_Width: 30 + m_Height: 41 + - m_X: 379 + m_Y: 139 + m_Width: 30 + m_Height: 40 + - m_X: 358 + m_Y: 161 + m_Width: 21 + m_Height: 50 + - m_X: 328 + m_Y: 190 + m_Width: 30 + m_Height: 39 + - m_X: 534 + m_Y: 0 + m_Width: 30 + m_Height: 33 + - m_X: 564 + m_Y: 0 + m_Width: 30 + m_Height: 30 + - m_X: 594 + m_Y: 0 + m_Width: 30 + m_Height: 30 + - m_X: 624 + m_Y: 0 + m_Width: 30 + m_Height: 29 + - m_X: 654 + m_Y: 0 + m_Width: 30 + m_Height: 28 + - m_X: 684 + m_Y: 0 + m_Width: 29 + m_Height: 42 + - m_X: 654 + m_Y: 28 + m_Width: 29 + m_Height: 41 + - m_X: 624 + m_Y: 29 + m_Width: 29 + m_Height: 41 + - m_X: 564 + m_Y: 30 + m_Width: 29 + m_Height: 41 + - m_X: 534 + m_Y: 33 + m_Width: 29 + m_Height: 41 + - m_X: 503 + m_Y: 49 + m_Width: 29 + m_Height: 41 + - m_X: 593 + m_Y: 30 + m_Width: 29 + m_Height: 41 + - m_X: 464 + m_Y: 82 + m_Width: 29 + m_Height: 40 + - m_X: 713 + m_Y: 0 + m_Width: 29 + m_Height: 30 + - m_X: 742 + m_Y: 0 + m_Width: 28 + m_Height: 52 + - m_X: 713 + m_Y: 30 + m_Width: 28 + m_Height: 52 + - m_X: 683 + m_Y: 42 + m_Width: 28 + m_Height: 51 + - m_X: 653 + m_Y: 69 + m_Width: 28 + m_Height: 51 + - m_X: 622 + m_Y: 70 + m_Width: 28 + m_Height: 50 + - m_X: 563 + m_Y: 71 + m_Width: 28 + m_Height: 50 + - m_X: 532 + m_Y: 74 + m_Width: 28 + m_Height: 43 + - m_X: 591 + m_Y: 71 + m_Width: 28 + m_Height: 42 + - m_X: 591 + m_Y: 113 + m_Width: 28 + m_Height: 41 + - m_X: 493 + m_Y: 90 + m_Width: 28 + m_Height: 41 + - m_X: 464 + m_Y: 122 + m_Width: 28 + m_Height: 41 + - m_X: 448 + m_Y: 123 + m_Width: 16 + m_Height: 52 + - m_X: 409 + m_Y: 153 + m_Width: 28 + m_Height: 39 + - m_X: 379 + m_Y: 179 + m_Width: 28 + m_Height: 28 + - m_X: 521 + m_Y: 117 + m_Width: 28 + m_Height: 28 + - m_X: 549 + m_Y: 117 + m_Width: 14 + m_Height: 53 + - m_X: 563 + m_Y: 121 + m_Width: 28 + m_Height: 13 + - m_X: 563 + m_Y: 134 + m_Width: 27 + m_Height: 51 + - m_X: 492 + m_Y: 131 + m_Width: 27 + m_Height: 42 + - m_X: 464 + m_Y: 163 + m_Width: 27 + m_Height: 41 + - m_X: 437 + m_Y: 175 + m_Width: 27 + m_Height: 41 + - m_X: 407 + m_Y: 192 + m_Width: 27 + m_Height: 41 + - m_X: 379 + m_Y: 207 + m_Width: 27 + m_Height: 41 + - m_X: 358 + m_Y: 211 + m_Width: 21 + m_Height: 41 + - m_X: 519 + m_Y: 145 + m_Width: 27 + m_Height: 40 + - m_X: 546 + m_Y: 170 + m_Width: 17 + m_Height: 51 + - m_X: 491 + m_Y: 173 + m_Width: 27 + m_Height: 39 + - m_X: 464 + m_Y: 204 + m_Width: 27 + m_Height: 30 + - m_X: 518 + m_Y: 185 + m_Width: 26 + m_Height: 42 + - m_X: 491 + m_Y: 212 + m_Width: 26 + m_Height: 42 + - m_X: 434 + m_Y: 216 + m_Width: 26 + m_Height: 41 + - m_X: 406 + m_Y: 233 + m_Width: 26 + m_Height: 41 + - m_X: 379 + m_Y: 248 + m_Width: 26 + m_Height: 41 + - m_X: 460 + m_Y: 234 + m_Width: 26 + m_Height: 41 + - m_X: 432 + m_Y: 257 + m_Width: 26 + m_Height: 41 + - m_X: 405 + m_Y: 274 + m_Width: 26 + m_Height: 40 + - m_X: 291 + m_Y: 229 + m_Width: 26 + m_Height: 39 + - m_X: 268 + m_Y: 240 + m_Width: 23 + m_Height: 41 + - m_X: 317 + m_Y: 229 + m_Width: 26 + m_Height: 30 + - m_X: 343 + m_Y: 229 + m_Width: 15 + m_Height: 22 + - m_X: 343 + m_Y: 251 + m_Width: 14 + m_Height: 52 + - m_X: 317 + m_Y: 259 + m_Width: 26 + m_Height: 30 + - m_X: 291 + m_Y: 268 + m_Width: 26 + m_Height: 20 + - m_X: 268 + m_Y: 281 + m_Width: 23 + m_Height: 40 + - m_X: 291 + m_Y: 288 + m_Width: 26 + m_Height: 15 + - m_X: 317 + m_Y: 289 + m_Width: 26 + m_Height: 14 + - m_X: 357 + m_Y: 252 + m_Width: 21 + m_Height: 41 + - m_X: 378 + m_Y: 289 + m_Width: 25 + m_Height: 43 + - m_X: 357 + m_Y: 293 + m_Width: 21 + m_Height: 39 + - m_X: 237 + m_Y: 283 + m_Width: 25 + m_Height: 41 + - m_X: 207 + m_Y: 309 + m_Width: 25 + m_Height: 41 + - m_X: 163 + m_Y: 315 + m_Width: 25 + m_Height: 41 + - m_X: 188 + m_Y: 315 + m_Width: 19 + m_Height: 41 + - m_X: 128 + m_Y: 318 + m_Width: 25 + m_Height: 41 + - m_X: 85 + m_Y: 343 + m_Width: 25 + m_Height: 40 + - m_X: 64 + m_Y: 356 + m_Width: 21 + m_Height: 25 + - m_X: 64 + m_Y: 381 + m_Width: 21 + m_Height: 20 + - m_X: 110 + m_Y: 343 + m_Width: 18 + m_Height: 18 + - m_X: 31 + m_Y: 387 + m_Width: 25 + m_Height: 39 + - m_X: 0 + m_Y: 412 + m_Width: 25 + m_Height: 30 + - m_X: 291 + m_Y: 303 + m_Width: 25 + m_Height: 30 + - m_X: 262 + m_Y: 321 + m_Width: 25 + m_Height: 30 + - m_X: 232 + m_Y: 324 + m_Width: 25 + m_Height: 6 + - m_X: 232 + m_Y: 330 + m_Width: 24 + m_Height: 45 + - m_X: 207 + m_Y: 350 + m_Width: 24 + m_Height: 45 + - m_X: 316 + m_Y: 303 + m_Width: 24 + m_Height: 45 + - m_X: 340 + m_Y: 303 + m_Width: 17 + m_Height: 22 + - m_X: 340 + m_Y: 325 + m_Width: 17 + m_Height: 22 + - m_X: 287 + m_Y: 333 + m_Width: 24 + m_Height: 27 + - m_X: 256 + m_Y: 351 + m_Width: 24 + m_Height: 27 + - m_X: 231 + m_Y: 375 + m_Width: 24 + m_Height: 22 + - m_X: 153 + m_Y: 356 + m_Width: 24 + m_Height: 6 + - m_X: 128 + m_Y: 359 + m_Width: 23 + m_Height: 30 + - m_X: 110 + m_Y: 361 + m_Width: 18 + m_Height: 17 + - m_X: 110 + m_Y: 378 + m_Width: 18 + m_Height: 17 + - m_X: 85 + m_Y: 383 + m_Width: 20 + m_Height: 25 + - m_X: 56 + m_Y: 401 + m_Width: 20 + m_Height: 20 + - m_X: 177 + m_Y: 356 + m_Width: 20 + m_Height: 19 + - m_X: 151 + m_Y: 362 + m_Width: 19 + m_Height: 40 + - m_X: 128 + m_Y: 389 + m_Width: 19 + m_Height: 30 + - m_X: 105 + m_Y: 395 + m_Width: 19 + m_Height: 8 + - m_X: 105 + m_Y: 403 + m_Width: 19 + m_Height: 5 + - m_X: 170 + m_Y: 375 + m_Width: 17 + m_Height: 19 + - m_X: 187 + m_Y: 375 + m_Width: 17 + m_Height: 6 + - m_X: 187 + m_Y: 381 + m_Width: 17 + m_Height: 6 + - m_X: 187 + m_Y: 387 + m_Width: 16 + m_Height: 16 + - m_X: 170 + m_Y: 394 + m_Width: 14 + m_Height: 41 + - m_X: 147 + m_Y: 402 + m_Width: 14 + m_Height: 10 + - m_X: 147 + m_Y: 412 + m_Width: 13 + m_Height: 52 + - m_X: 203 + m_Y: 395 + m_Width: 13 + m_Height: 41 + - m_X: 216 + m_Y: 395 + m_Width: 13 + m_Height: 12 + - m_X: 184 + m_Y: 403 + m_Width: 13 + m_Height: 10 + - m_X: 184 + m_Y: 413 + m_Width: 12 + m_Height: 25 + - m_X: 160 + m_Y: 435 + m_Width: 12 + m_Height: 25 + m_FreeGlyphRects: + - m_X: 172 + m_Y: 41 + m_Width: 1 + m_Height: 8 + - m_X: 131 + m_Y: 82 + m_Width: 1 + m_Height: 11 + - m_X: 43 + m_Y: 117 + m_Width: 1 + m_Height: 6 + - m_X: 214 + m_Y: 49 + m_Width: 3 + m_Height: 2 + - m_X: 171 + m_Y: 93 + m_Width: 1 + m_Height: 7 + - m_X: 381 + m_Y: 41 + m_Width: 4 + m_Height: 10 + - m_X: 299 + m_Y: 46 + m_Width: 2 + m_Height: 45 + - m_X: 254 + m_Y: 51 + m_Width: 5 + m_Height: 45 + - m_X: 211 + m_Y: 100 + m_Width: 3 + m_Height: 33 + - m_X: 130 + m_Y: 112 + m_Width: 1 + m_Height: 32 + - m_X: 248 + m_Y: 133 + m_Width: 6 + m_Height: 14 + - m_X: 208 + m_Y: 141 + m_Width: 3 + m_Height: 33 + - m_X: 167 + m_Y: 144 + m_Width: 4 + m_Height: 38 + - m_X: 85 + m_Y: 123 + m_Width: 3 + m_Height: 39 + - m_X: 165 + m_Y: 185 + m_Width: 2 + m_Height: 38 + - m_X: 203 + m_Y: 182 + m_Width: 5 + m_Height: 41 + - m_X: 164 + m_Y: 226 + m_Width: 1 + m_Height: 38 + - m_X: 42 + m_Y: 158 + m_Width: 1 + m_Height: 15 + - m_X: 119 + m_Y: 211 + m_Width: 1 + m_Height: 30 + - m_X: 129 + m_Y: 251 + m_Width: 1 + m_Height: 26 + - m_X: 41 + m_Y: 207 + m_Width: 1 + m_Height: 16 + - m_X: 68 + m_Y: 223 + m_Width: 8 + m_Height: 32 + - m_X: 118 + m_Y: 302 + m_Width: 1 + m_Height: 11 + - m_X: 32 + m_Y: 248 + m_Width: 2 + m_Height: 16 + - m_X: 64 + m_Y: 264 + m_Width: 4 + m_Height: 42 + - m_X: 244 + m_Y: 174 + m_Width: 4 + m_Height: 14 + - m_X: 285 + m_Y: 147 + m_Width: 6 + m_Height: 41 + - m_X: 207 + m_Y: 182 + m_Width: 1 + m_Height: 42 + - m_X: 238 + m_Y: 224 + m_Width: 6 + m_Height: 5 + - m_X: 198 + m_Y: 264 + m_Width: 2 + m_Height: 12 + - m_X: 464 + m_Y: 30 + m_Width: 1 + m_Height: 11 + - m_X: 420 + m_Y: 51 + m_Width: 5 + m_Height: 20 + - m_X: 419 + m_Y: 57 + m_Width: 6 + m_Height: 14 + - m_X: 379 + m_Y: 90 + m_Width: 2 + m_Height: 8 + - m_X: 418 + m_Y: 98 + m_Width: 1 + m_Height: 14 + - m_X: 337 + m_Y: 91 + m_Width: 4 + m_Height: 17 + - m_X: 336 + m_Y: 100 + m_Width: 5 + m_Height: 8 + - m_X: 298 + m_Y: 138 + m_Width: 1 + m_Height: 9 + - m_X: 328 + m_Y: 147 + m_Width: 8 + m_Height: 2 + - m_X: 358 + m_Y: 149 + m_Width: 8 + m_Height: 12 + - m_X: 503 + m_Y: 41 + m_Width: 1 + m_Height: 8 + - m_X: 770 + m_Y: 0 + m_Width: 254 + m_Height: 1024 + - m_X: 741 + m_Y: 52 + m_Width: 283 + m_Height: 972 + - m_X: 741 + m_Y: 30 + m_Width: 1 + m_Height: 994 + - m_X: 683 + m_Y: 28 + m_Width: 1 + m_Height: 14 + - m_X: 711 + m_Y: 82 + m_Width: 313 + m_Height: 942 + - m_X: 711 + m_Y: 42 + m_Width: 2 + m_Height: 982 + - m_X: 653 + m_Y: 29 + m_Width: 1 + m_Height: 40 + - m_X: 681 + m_Y: 93 + m_Width: 343 + m_Height: 931 + - m_X: 681 + m_Y: 69 + m_Width: 2 + m_Height: 955 + - m_X: 622 + m_Y: 30 + m_Width: 2 + m_Height: 40 + - m_X: 650 + m_Y: 70 + m_Width: 3 + m_Height: 954 + - m_X: 563 + m_Y: 33 + m_Width: 1 + m_Height: 38 + - m_X: 532 + m_Y: 49 + m_Width: 2 + m_Height: 25 + - m_X: 619 + m_Y: 71 + m_Width: 3 + m_Height: 953 + - m_X: 619 + m_Y: 120 + m_Width: 405 + m_Height: 904 + - m_X: 494 + m_Y: 59 + m_Width: 9 + m_Height: 31 + - m_X: 493 + m_Y: 82 + m_Width: 10 + m_Height: 8 + - m_X: 448 + m_Y: 112 + m_Width: 1 + m_Height: 11 + - m_X: 409 + m_Y: 115 + m_Width: 9 + m_Height: 38 + - m_X: 521 + m_Y: 90 + m_Width: 11 + m_Height: 27 + - m_X: 560 + m_Y: 74 + m_Width: 3 + m_Height: 43 + - m_X: 590 + m_Y: 154 + m_Width: 434 + m_Height: 870 + - m_X: 590 + m_Y: 134 + m_Width: 1 + m_Height: 890 + - m_X: 492 + m_Y: 122 + m_Width: 1 + m_Height: 9 + - m_X: 437 + m_Y: 153 + m_Width: 11 + m_Height: 22 + - m_X: 407 + m_Y: 179 + m_Width: 2 + m_Height: 13 + - m_X: 519 + m_Y: 131 + m_Width: 2 + m_Height: 14 + - m_X: 563 + m_Y: 185 + m_Width: 461 + m_Height: 839 + - m_X: 546 + m_Y: 145 + m_Width: 3 + m_Height: 25 + - m_X: 491 + m_Y: 163 + m_Width: 1 + m_Height: 10 + - m_X: 518 + m_Y: 173 + m_Width: 1 + m_Height: 12 + - m_X: 544 + m_Y: 185 + m_Width: 2 + m_Height: 839 + - m_X: 544 + m_Y: 221 + m_Width: 480 + m_Height: 803 + - m_X: 517 + m_Y: 227 + m_Width: 507 + m_Height: 797 + - m_X: 517 + m_Y: 212 + m_Width: 1 + m_Height: 812 + - m_X: 434 + m_Y: 192 + m_Width: 3 + m_Height: 24 + - m_X: 406 + m_Y: 207 + m_Width: 1 + m_Height: 26 + - m_X: 460 + m_Y: 216 + m_Width: 4 + m_Height: 18 + - m_X: 486 + m_Y: 254 + m_Width: 538 + m_Height: 770 + - m_X: 486 + m_Y: 234 + m_Width: 5 + m_Height: 790 + - m_X: 432 + m_Y: 233 + m_Width: 2 + m_Height: 24 + - m_X: 458 + m_Y: 257 + m_Width: 2 + m_Height: 767 + - m_X: 458 + m_Y: 275 + m_Width: 566 + m_Height: 749 + - m_X: 405 + m_Y: 248 + m_Width: 1 + m_Height: 26 + - m_X: 431 + m_Y: 298 + m_Width: 593 + m_Height: 726 + - m_X: 431 + m_Y: 274 + m_Width: 1 + m_Height: 750 + - m_X: 291 + m_Y: 191 + m_Width: 7 + m_Height: 38 + - m_X: 268 + m_Y: 229 + m_Width: 7 + m_Height: 11 + - m_X: 357 + m_Y: 251 + m_Width: 1 + m_Height: 1 + - m_X: 403 + m_Y: 314 + m_Width: 621 + m_Height: 710 + - m_X: 403 + m_Y: 289 + m_Width: 2 + m_Height: 735 + - m_X: 378 + m_Y: 252 + m_Width: 1 + m_Height: 37 + - m_X: 237 + m_Y: 259 + m_Width: 1 + m_Height: 24 + - m_X: 163 + m_Y: 277 + m_Width: 1 + m_Height: 38 + - m_X: 128 + m_Y: 313 + m_Width: 1 + m_Height: 5 + - m_X: 118 + m_Y: 322 + m_Width: 10 + m_Height: 21 + - m_X: 31 + m_Y: 371 + m_Width: 1 + m_Height: 16 + - m_X: 25 + m_Y: 412 + m_Width: 6 + m_Height: 612 + - m_X: 262 + m_Y: 283 + m_Width: 6 + m_Height: 38 + - m_X: 232 + m_Y: 309 + m_Width: 5 + m_Height: 15 + - m_X: 340 + m_Y: 347 + m_Width: 684 + m_Height: 677 + - m_X: 357 + m_Y: 332 + m_Width: 667 + m_Height: 692 + - m_X: 287 + m_Y: 321 + m_Width: 4 + m_Height: 12 + - m_X: 311 + m_Y: 348 + m_Width: 713 + m_Height: 676 + - m_X: 311 + m_Y: 333 + m_Width: 5 + m_Height: 691 + - m_X: 257 + m_Y: 324 + m_Width: 5 + m_Height: 27 + - m_X: 256 + m_Y: 330 + m_Width: 6 + m_Height: 21 + - m_X: 280 + m_Y: 360 + m_Width: 744 + m_Height: 664 + - m_X: 280 + m_Y: 351 + m_Width: 7 + m_Height: 673 + - m_X: 231 + m_Y: 350 + m_Width: 1 + m_Height: 25 + - m_X: 255 + m_Y: 378 + m_Width: 769 + m_Height: 646 + - m_X: 255 + m_Y: 375 + m_Width: 1 + m_Height: 649 + - m_X: 153 + m_Y: 318 + m_Width: 10 + m_Height: 38 + - m_X: 56 + m_Y: 387 + m_Width: 8 + m_Height: 14 + - m_X: 76 + m_Y: 401 + m_Width: 9 + m_Height: 623 + - m_X: 151 + m_Y: 359 + m_Width: 2 + m_Height: 3 + - m_X: 76 + m_Y: 408 + m_Width: 52 + m_Height: 616 + - m_X: 105 + m_Y: 383 + m_Width: 5 + m_Height: 12 + - m_X: 124 + m_Y: 395 + m_Width: 4 + m_Height: 629 + - m_X: 170 + m_Y: 362 + m_Width: 7 + m_Height: 13 + - m_X: 197 + m_Y: 356 + m_Width: 10 + m_Height: 19 + - m_X: 147 + m_Y: 389 + m_Width: 4 + m_Height: 13 + - m_X: 0 + m_Y: 464 + m_Width: 1024 + m_Height: 560 + - m_X: 0 + m_Y: 442 + m_Width: 147 + m_Height: 582 + - m_X: 25 + m_Y: 426 + m_Width: 122 + m_Height: 598 + - m_X: 56 + m_Y: 421 + m_Width: 91 + m_Height: 603 + - m_X: 76 + m_Y: 419 + m_Width: 71 + m_Height: 605 + - m_X: 204 + m_Y: 356 + m_Width: 3 + m_Height: 39 + - m_X: 203 + m_Y: 387 + m_Width: 4 + m_Height: 8 + - m_X: 216 + m_Y: 407 + m_Width: 808 + m_Height: 617 + - m_X: 229 + m_Y: 397 + m_Width: 795 + m_Height: 627 + - m_X: 229 + m_Y: 395 + m_Width: 2 + m_Height: 629 + - m_X: 184 + m_Y: 394 + m_Width: 3 + m_Height: 9 + - m_X: 197 + m_Y: 403 + m_Width: 6 + m_Height: 621 + - m_X: 196 + m_Y: 436 + m_Width: 828 + m_Height: 588 + - m_X: 196 + m_Y: 413 + m_Width: 7 + m_Height: 611 + - m_X: 161 + m_Y: 402 + m_Width: 9 + m_Height: 33 + - m_X: 160 + m_Y: 412 + m_Width: 10 + m_Height: 23 + - m_X: 160 + m_Y: 460 + m_Width: 864 + m_Height: 564 + - m_X: 172 + m_Y: 438 + m_Width: 852 + m_Height: 586 + - m_X: 172 + m_Y: 435 + m_Width: 12 + m_Height: 589 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 1 + m_AtlasRenderMode: 4121 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 49342641ea2b7e6429da3245744bb92b + pointSizeSamplingMode: 1 + pointSize: 55 + padding: 1 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 6 + characterSequence: 20-7E,A0-FF,2013-2015,2018-201A,201C-201E,2020-2022,2026,2030,2039-203A,2044,20AC,2122 + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4121 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &7453642021753212536 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lato-Regular Material + m_Shader: {fileID: 4800000, guid: 128e987d567d4e2c824d754223b3f3b0, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: -2340667833886341526} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _ColorMask: 15 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta new file mode 100644 index 0000000..4612655 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ffb8c3515fb6dc4688eff5a7e48200f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf b/Assets/Plugins/Febucci/Text Animator/Example/Font/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..33eba8b192384487f04951539f13bf1f8dd9f9cb GIT binary patch literal 75136 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.Category category, string tag) where T: ScriptableObject + { + return $"{category.openingSymbol}{tag}{category.closingSymbol}{tag}{category.openingSymbol}/{category.closingSymbol}, "; + } + + private void Start() + { + const char quote = '"'; + //builds the text with all the default tags + string builtText = "You can add effects by using rich text tags." + + $"\nExample: writing {quote}I'm cold{quote} will result in {quote}I'm cold{quote}." + + $"\n\n Effects that animate through time are called {quote}Behaviors{quote}, and the default tags are: "; + + foreach (var effect in typewriter.TextAnimator.DatabaseBehaviors.Data) + { + if(!effect) continue; + builtText += AddEffect(settings.behaviors, effect.TagID); + } + + builtText += $"\n\nEffects that animate letters while they appear on screen are called {quote}Appearances{quote} and the default tags are: "; + + foreach (var effect in typewriter.TextAnimator.DatabaseAppearances.Data) + { + if(!effect) continue; + builtText += AddEffect(settings.appearances, effect.TagID); + } + + //shows the text dynamically (typewriter like) + typewriter.ShowText(builtText); + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta new file mode 100644 index 0000000..9df1e3f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/DefaultEffectsExample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b97a825c489d94194a088dd18fedd2f0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs new file mode 100644 index 0000000..4c421ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Scripts/Runtime/ExampleEvents.cs @@ -0,0 +1,168 @@ +using System.Collections; +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using UnityEngine; + +namespace Febucci.UI.Examples +{ + [AddComponentMenu(""), DisallowMultipleComponent] + class ExampleEvents : MonoBehaviour + { + // ---- PART OF THE SCRIPT THAT YOU'RE PROBABLY INTERESTED IT ---- + + void Start() + { + //Subscribe to the event + typewriter.onMessage.AddListener(OnMessage); + + + dialogueIndex = 0; + CurrentLineShown = false; + typewriter.ShowText(dialoguesLines[dialogueIndex]); + } + + void OnDestroy() + { + if(typewriter) typewriter.onMessage.RemoveListener(OnMessage); + } + + bool TryGetInt(string parameter, out int result) + { + + if (FormatUtils.TryGetFloat(parameter, 0, out float resultFloat)) + { + result = (int)resultFloat; + return true; + } + + result = -1; + return false; + } + void OnMessage(EventMarker eventData) + { + switch (eventData.name) + { + case "face": + if (eventData.parameters.Length <= 0) + { + Debug.LogWarning($"You need to specify a sprite index! Dialogue: {dialogueIndex}"); + return; + } + + if (TryGetInt(eventData.parameters[0], out int spriteIndex)) + { + if (spriteIndex >= 0 && spriteIndex < faces.Length) + { + faceRenderer.sprite = faces[spriteIndex]; + } + else + { + Debug.Log($"Sprite index was out of range. Dialogue: {dialogueIndex}"); + } + } + break; + + case "crate": + if (eventData.parameters.Length <= 0) + { + Debug.LogWarning($"You need to specify a crate index! Dialogue: {dialogueIndex}"); + return; + } + + if (TryGetInt(eventData.parameters[0], out int crateIndex)) + { + if (crateIndex >= 0 && crateIndex < crates.Length) + { + StartCoroutine(AnimateCrate(crateIndex)); + } + else + { + Debug.Log($"Sprite index was out of range. Dialogue: {dialogueIndex}"); + } + } + break; + } + } + + // ---- OTHER PART OF THE SCRIPT ---- + // This makes the script run faking a dialogue system + [SerializeField] TypewriterCore typewriter; + [SerializeField, TextArea(1, 5)] string[] dialoguesLines; + [SerializeField] Sprite[] faces; + [SerializeField] SpriteRenderer faceRenderer; + [SerializeField] GameObject continueText; + [SerializeField] Transform[] crates; + Vector3[] cratesInitialScale; + + int dialogueIndex = 0; + int dialogueLength; + bool currentLineShown; + + bool CurrentLineShown + { + get => currentLineShown; + set + { + currentLineShown = value; + continueText.SetActive(value); + } + } + + void Awake() + { + cratesInitialScale = new Vector3[crates.Length]; + for (int i = 0; i < crates.Length; i++) + { + cratesInitialScale[i] = crates[i].localScale; + } + + dialogueLength = dialoguesLines.Length; + typewriter.onTextShowed.AddListener(() => CurrentLineShown = true); + } + + void ContinueSequence() + { + CurrentLineShown = false; + dialogueIndex++; + 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 m%u9ax`v^T69(xHKD`wGr*H;d^P(sSXg1Zo>)c< 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ʁ^|&T-PB~ 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta b/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta new file mode 100644 index 0000000..15f65ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f2803ca31271d4631b7dcb81cccea0ee +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts.meta b/Assets/Plugins/Febucci/Text Animator/Scripts.meta new file mode 100644 index 0000000..93299ad --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a47363b2fbe9e2d45b00c72c79679fc3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta new file mode 100644 index 0000000..4c76f29 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 834807df07adbb843a9e2270df867e8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta new file mode 100644 index 0000000..3ffd24c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4092478b3f6ba408384c2224ec1edc58 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta new file mode 100644 index 0000000..2f651bf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 71fee1318e1eb47f7854704b0697d75d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs new file mode 100644 index 0000000..64be9e3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs @@ -0,0 +1,641 @@ +using System.Text; +using UnityEngine; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(Core.TAnimCore), true)] + class TAnimCoreDrawer : Editor + { + SerializedProperty m_Script; + + SerializedProperty typewriterStartsAutomatically; + + SerializedProperty referenceFontSize; + SerializedProperty useDynamicScaling; + + SerializedProperty timeScale; + SerializedProperty animationLoop; + SerializedProperty isResettingTimeOnNewText; + + + SerializedProperty defaultTagsMode; + SerializedProperty defaultAppearancesTags; + SerializedProperty defaultBehaviorsTags; + SerializedProperty defaultDisappearancesTags; + + SerializedProperty useDefaultDatabases; + + SerializedProperty databaseBehaviorsField; + DatabaseSharedDrawer databaseBehaviorsDrawer; + SerializedProperty databaseAppearancesField; + DatabaseSharedDrawer databaseAppearancesDrawer; + SerializedProperty databaseActionsField; + DatabaseSharedDrawer databaseActionsDrawer; + + Core.TAnimCore script; + static string[] excludedProperties = new string[] + { + "m_Script", + "_text", + "databaseBehaviors", + "databaseAppearances", + "defaultAppearancesTags", + "defaultBehaviorsTags", + "defaultDisappearancesTags", + "typewriterStartsAutomatically", + nameof(TAnimCore.referenceFontSize), + nameof(TAnimCore.useDynamicScaling), + nameof(TAnimCore.defaultTagsMode), + nameof(TAnimCore.timeScale), + nameof(TAnimCore.animationLoop), + nameof(TAnimCore.isResettingTimeOnNewText), + "databaseActions", + "useDefaultDatabases", + }; + + void OnEnable() + { + script = (Core.TAnimCore)target; + + m_Script = serializedObject.FindProperty("m_Script"); + + typewriterStartsAutomatically = serializedObject.FindProperty("typewriterStartsAutomatically"); + + useDefaultDatabases = serializedObject.FindProperty("useDefaultDatabases"); + databaseBehaviorsField = serializedObject.FindProperty("databaseBehaviors"); + databaseAppearancesField = serializedObject.FindProperty("databaseAppearances"); + databaseActionsField = serializedObject.FindProperty("databaseActions"); + + databaseBehaviorsDrawer = new DatabaseSharedDrawer(); + databaseAppearancesDrawer = new DatabaseSharedDrawer(); + databaseActionsDrawer = new DatabaseSharedDrawer(); + + defaultTagsMode = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.defaultTagsMode)); + defaultAppearancesTags = serializedObject.FindProperty("defaultAppearancesTags"); + defaultBehaviorsTags = serializedObject.FindProperty("defaultBehaviorsTags"); + defaultDisappearancesTags = serializedObject.FindProperty("defaultDisappearancesTags"); + + referenceFontSize = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.referenceFontSize)); + useDynamicScaling = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.useDynamicScaling)); + timeScale = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.timeScale)); + animationLoop = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.animationLoop)); + isResettingTimeOnNewText = serializedObject.FindProperty(nameof(Febucci.UI.Core.TAnimCore.isResettingTimeOnNewText)); + + gui_visibleCharacters = new GUIContent("Visible Characters", null, + $"Range of visible characters in the text.\nTo modify this via script, set \"{nameof(TAnimCore.firstVisibleCharacter)}\" and \"{nameof(TAnimCore.maxVisibleCharacters)}\""); + + EditorApplication.playModeStateChanged += OnPlayModeChanged; + RegisterUndoRedraw(); + UnregisterPlayback(); + } + + void OnPlayModeChanged(PlayModeStateChange stateChange) + { + if(stateChange == PlayModeStateChange.ExitingEditMode) + UnregisterPlayback(); + } + + private void OnDisable() + { + EditorApplication.playModeStateChanged -= OnPlayModeChanged; + UnregisterPlayback(); + UnregisterUndoRedraw(); + } + + private void OnDestroy() + { + UnregisterPlayback(); + UnregisterUndoRedraw(); + } + + #region Undo Redo + + private bool undoRedoRegistered; + + void RegisterUndoRedraw() + { + if (undoRedoRegistered) + return; + + undoRedoRegistered = true; + Undo.undoRedoPerformed += UndoRedraw; + } + + void UndoRedraw() + { + OnDisable(); + OnEnable(); + Repaint(); + runInEditMode = false; + } + + void UnregisterUndoRedraw() + { + if (!undoRedoRegistered) + return; + + undoRedoRegistered = false; + Undo.undoRedoPerformed -= UndoRedraw; + + } + + + #endregion + + #region Playback + + string textBeforePreview; + string textDuringPreview; + + private bool runInEditMode; + bool isPlaying => Application.isPlaying || runInEditMode; + + private GUIContent gui_visibleCharacters; + Vector2 playbackCharsScrollView; + bool extraPlaybackControls; + void DrawPlayback() + { + void HookPlaybackEvent() + { + script.time.RestartTime(); + + if (runInEditMode) RegisterPlayback(); + else UnregisterPlayback(); + } + + //--- Playback Toolbar --- + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(Application.isPlaying ? "Playback info" : "Preview in Edit Mode", GUILayout.Width(120)); + GUI.enabled = !Application.isPlaying; + if(GUILayout.Button(runInEditMode ? TexturesLoader.StopIcon : TexturesLoader.PlayIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + runInEditMode = !runInEditMode; + HookPlaybackEvent(); + } + + GUI.enabled = runInEditMode && !Application.isPlaying; + if(GUILayout.Button(TexturesLoader.SaveIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + textBeforePreview = textDuringPreview; + runInEditMode = false; + HookPlaybackEvent(); + } + GUI.enabled = true; + + EditorGUILayout.EndHorizontal(); + + //---Visible characters--- + if (isPlaying) + { + //---Text--- + if (!Application.isPlaying) + { + EditorGUI.BeginChangeCheck(); + + textDuringPreview = EditorGUILayout.TextArea(textDuringPreview, GUILayout.MinHeight(50)); + if (EditorGUI.EndChangeCheck()) + { + script.SetText(textDuringPreview); + EditorUtility.SetDirty(script); + } + } + + //---Visible characters--- + int charCount = script.CharactersCount; + + EditorGUILayout.BeginVertical(EditorStyles.helpBox); + //First visible character + EditorGUI.BeginChangeCheck(); + float minValue = script.firstVisibleCharacter; + float maxValue = script.maxVisibleCharacters; + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.MinMaxSlider(gui_visibleCharacters, ref minValue, ref maxValue, 0, charCount); + if (EditorGUI.EndChangeCheck()) + { + script.firstVisibleCharacter = Mathf.RoundToInt(minValue); + script.maxVisibleCharacters = Mathf.RoundToInt(maxValue); + } + + EditorGUILayout.Space(); + int intMinValue = script.firstVisibleCharacter; + int intMaxValue = script.maxVisibleCharacters; + EditorGUI.BeginChangeCheck(); + intMinValue = EditorGUILayout.DelayedIntField(GUIContent.none, intMinValue, GUILayout.Width(30)); + EditorGUILayout.LabelField("/", GUILayout.Width(10)); + intMaxValue = EditorGUILayout.DelayedIntField(GUIContent.none, intMaxValue, GUILayout.Width(30)); + if(EditorGUI.EndChangeCheck()) + { + script.firstVisibleCharacter = Mathf.Clamp(intMinValue, 0, charCount); + script.maxVisibleCharacters = Mathf.Clamp(intMaxValue, 0, charCount); + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Time passed:"); + if(GUILayout.Button(TexturesLoader.RestartIcon, EditorStyles.label, GUILayout.Width(20), GUILayout.Height(20))) + { + script.time.RestartTime(); + } + EditorGUILayout.LabelField(script.time.timeSinceStart.ToString("F2"), EditorStyles.boldLabel); + + EditorGUILayout.EndHorizontal(); + + GUI.color = extraPlaybackControls ? Color.gray : Color.white; + if (GUILayout.Button("Extra Visibility Controls", EditorStyles.helpBox)) + { + extraPlaybackControls = !extraPlaybackControls; + } + GUI.color = Color.white; + + if (extraPlaybackControls) + { + const float boxSize = 12; + + if(script.WordsCount > 20) + EditorGUILayout.HelpBox("Displaying only the first 20 words to optimize performance", MessageType.None); + + playbackCharsScrollView = EditorGUILayout.BeginScrollView(playbackCharsScrollView); + + EditorGUILayout.BeginHorizontal(); + for (int w = 0; w < script.WordsCount && w < 20; w++) //max X words for performance + { + EditorGUILayout.BeginVertical(); + if (GUILayout.Button(script.Words[w].text, EditorStyles.miniButton)) + { + script.SetVisibilityWord(w, !script.Characters[script.Words[w].firstCharacterIndex].isVisible); + } + + EditorGUILayout.BeginHorizontal(); + for (int i = script.Words[w].firstCharacterIndex; i <= script.Words[w].lastCharacterIndex; i++) + { + script.Characters[i].isVisible = EditorGUILayout.Toggle(script.Characters[i].isVisible, + GUILayout.Width(boxSize)); + } + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.EndVertical(); + } + EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndScrollView(); + } + + EditorGUILayout.EndVertical(); + } + + EditorGUILayout.EndVertical(); + } + + bool registeredPlayback; + + void RegisterPlayback() + { + if (registeredPlayback) return; + registeredPlayback = true; + + if (script) + { + textBeforePreview = script.GetOriginalTextFromSource(); + textDuringPreview = textBeforePreview; + if (textDuringPreview.StartsWith("")) + textDuringPreview = textDuringPreview.Remove(0, 19); + + //resets text and databases regardless + script.ForceDatabaseRefresh(); + script.SetText(textDuringPreview); + } + + lastTime = EditorApplication.timeSinceStartup; + EditorApplication.update += UpdatePlayback; + } + + void UnregisterPlayback() + { + if (!registeredPlayback) return; + registeredPlayback = false; + + if (script) + { + // unfocus text area field to prevent having the same text when it appears again + if (textDuringPreview != string.Empty) + GUIUtility.keyboardControl = -1; + + script.SetTextToSource(textBeforePreview); + textBeforePreview = string.Empty; + textDuringPreview = string.Empty; + } + + EditorApplication.update -= UpdatePlayback; + } + + private double lastTime = 0; + void UpdatePlayback() + { + script.Animate((float)(EditorApplication.timeSinceStartup - lastTime)); + lastTime = EditorApplication.timeSinceStartup; + EditorApplication.QueuePlayerLoopUpdate(); + Repaint(); + } + + #endregion + + #region Default Tags + bool drawDefaultBehaviorTags = false; + bool drawDefaultAppearancesTags = false; + bool drawDefaultDisappearancesTags = false; + + void ForceDatabaseRefresh() + { + serializedObject.ApplyModifiedProperties(); + script.ForceDatabaseRefresh(); + } + + void DrawDefaultTags() + { + const string helpConstantTags = "How many of these effects will be applied to the entire text"; + const string helpFallbackTags = "How many of these effects will be applied to a letter, in case there aren't others of the same category."; + + void DrawDefaultArray(ref bool enabledOption, string name, SerializedProperty array, + Database database) where T : ScriptableObject, ITagProvider + { + int size = array.arraySize; + EditorGUILayout.BeginHorizontal(); + enabledOption = EditorGUILayout.Foldout(enabledOption, name + $" [{size} enabled]", true); + + bool areAllTagsValid = true; + + bool IsTagValid(string tag) + { + // hackyly returns valid on an empty tag, to allow user to add new tags without error + return string.IsNullOrEmpty(tag) || + database.ContainsKey(tag.Split(' ')[0]); //splits in case of attributes + } + + // Displays icon if any of the tags is not found in the database + if (database) + { + + for (int i = 0; i < array.arraySize && areAllTagsValid; i++) + { + if (!IsTagValid(array.GetArrayElementAtIndex(i).stringValue)) areAllTagsValid = false; + } + + if (!areAllTagsValid) + { + GUILayout.Box(TexturesLoader.WarningIcon, EditorStyles.label, GUILayout.Width(20), + GUILayout.Height(20)); + } + } + + EditorGUILayout.EndHorizontal(); + if (enabledOption) + { + EditorGUI.indentLevel++; //--begin of foldout + + if (!areAllTagsValid) + { + StringBuilder sb = new StringBuilder(); + foreach (var effect in database.Data) + { + if(!effect) continue; + if(string.IsNullOrEmpty(effect.TagID)) continue; + sb.Append(effect.TagID); + sb.Append(" "); + } + + EditorGUILayout.HelpBox( + $"The tags with the warning icons will not be recognized by Text Animator. Accepted tags: {sb}", + MessageType.Warning); + } + + GUI.enabled = false; + EditorGUILayout.LabelField( + (defaultTagsMode.intValue == (int)Core.TAnimCore.DefaultTagsMode.Fallback + ? helpFallbackTags + : helpConstantTags), EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + + //Edits array size + EditorGUI.BeginChangeCheck(); + size = EditorGUILayout.IntField("Effects Count", size); + if (EditorGUI.EndChangeCheck()) + { + bool increasing = size > array.arraySize; + size = Mathf.Clamp(size, 0, size + 1); + array.arraySize = size; + + if (increasing && size > 1) //new element is empty + { + array.GetArrayElementAtIndex(size - 1).stringValue = string.Empty; + } + + ForceDatabaseRefresh(); + } + + Vector2 scrollPos = Vector2.zero; + if (size > 0) + { + GUI.enabled = false; + EditorGUILayout.LabelField( + "Choose one effect per array element, e.g. 'wave'.\nModifiers are also accepted, e.g. 'wave a=2'", + EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + EditorGUI.indentLevel++; //--begin of array + + GUIContent temp = new GUIContent(); + string tempString; + for (int i = 0; i < array.arraySize; i++) + { + var element = array.GetArrayElementAtIndex(i); + temp.text = "Effect #" + (i + 1); + tempString = element.stringValue; + // Displays a nice set of button the user can choose recognized tags from + + EditorGUILayout.BeginHorizontal(); + EditorGUI.BeginChangeCheck(); + tempString = EditorGUILayout.DelayedTextField(temp, tempString); + if (EditorGUI.EndChangeCheck()) + { + element.stringValue = tempString; + ForceDatabaseRefresh(); + } + + if (database && !IsTagValid(tempString)) + { + GUILayout.Box(TexturesLoader.WarningIcon, EditorStyles.label, GUILayout.Width(20), + GUILayout.Height(20)); + } + + EditorGUILayout.EndHorizontal(); + } + + EditorGUI.indentLevel--; //--end of array + } + + EditorGUI.indentLevel--; //--end of foldout + } + } + + EditorGUILayout.LabelField("Default Tags", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(defaultTagsMode, true); + if(EditorGUI.EndChangeCheck()) + ForceDatabaseRefresh(); + + if (useDefaultDatabases.boolValue) + { + var settings = TextAnimatorSettings.Instance; + if (settings) + { + DrawDefaultArray(ref drawDefaultAppearancesTags, "Appearances", defaultAppearancesTags, settings.appearances.defaultDatabase); + DrawDefaultArray(ref drawDefaultBehaviorTags, "Behaviors", defaultBehaviorsTags, settings.behaviors.defaultDatabase); + DrawDefaultArray(ref drawDefaultDisappearancesTags, "Disappearances", defaultDisappearancesTags, settings.appearances.defaultDatabase); + } + } + else + { + DrawDefaultArray(ref drawDefaultAppearancesTags, "Appearances", defaultAppearancesTags, script.DatabaseAppearances); + DrawDefaultArray(ref drawDefaultBehaviorTags, "Behaviors", defaultBehaviorsTags, script.DatabaseBehaviors); + DrawDefaultArray(ref drawDefaultDisappearancesTags, "Disappearances", defaultDisappearancesTags, script.DatabaseAppearances); + } + + EditorGUI.indentLevel--; + } +#endregion + + #region Databases + bool editBehaviors = false; + bool editAppearances = false; + bool editActions = false; + SerializedObject settingsObject; + + void DrawDatabases() + { + EditorGUILayout.LabelField("Edit Effects & Actions", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PropertyField(useDefaultDatabases); + GUI.enabled = false; + EditorGUILayout.LabelField(useDefaultDatabases.boolValue ? "Editing databases for every component that uses default settings." : "Editing databases assigned only to this component.", EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + EditorGUILayout.EndHorizontal(); + + void DrawDatabaseField(ref bool foldoutToggle, string foldoutName, SerializedProperty field, DatabaseSharedDrawer drawer) + { + foldoutToggle = EditorGUILayout.Foldout(foldoutToggle, foldoutName, true); + + if (foldoutToggle) + { + EditorGUI.indentLevel++; + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(field); + if (EditorGUI.EndChangeCheck()) + ForceDatabaseRefresh(); + drawer.OnInspectorGUI(field); + EditorGUI.indentLevel--; + } + } + + if (useDefaultDatabases.boolValue) + { + var settings = TextAnimatorSettings.Instance; + if (!settings) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox("Text Animator Settings not found. Please re-run the setup wizard or click the following button.", MessageType.Error); + if (GUILayout.Button("Fix it for me", GUILayout.Width(80))) + { + TextAnimatorSetupWindow.FixSettingsFileNotFound(); + } + EditorGUILayout.EndHorizontal(); + } + else + { + if(settingsObject == null) settingsObject = new SerializedObject(settings); + + //Draws default settings instead + SerializedProperty databaseBehaviorsField = settingsObject.FindProperty(nameof(settings.behaviors)).FindPropertyRelative(nameof(settings.behaviors.defaultDatabase)); + SerializedProperty databaseAppearancesField = settingsObject.FindProperty(nameof(settings.appearances)).FindPropertyRelative(nameof(settings.appearances.defaultDatabase)); + SerializedProperty databaseActionsField = settingsObject.FindProperty(nameof(settings.actions)).FindPropertyRelative(nameof(settings.actions.defaultDatabase)); + DrawDatabaseField(ref editAppearances, "Appearances/Disappearances", databaseAppearancesField, databaseAppearancesDrawer); + DrawDatabaseField(ref editBehaviors, "Behaviors", databaseBehaviorsField, databaseBehaviorsDrawer); + DrawDatabaseField(ref editActions, "Actions", databaseActionsField, databaseActionsDrawer); + } + } + else + { + DrawDatabaseField(ref editAppearances, "Appearances/Disappearances", databaseAppearancesField, databaseAppearancesDrawer); + DrawDatabaseField(ref editBehaviors, "Behaviors", databaseBehaviorsField, databaseBehaviorsDrawer); + DrawDatabaseField(ref editActions, "Actions", databaseActionsField, databaseActionsDrawer); + } + + EditorGUI.indentLevel--; + } + + #endregion + + #region Main Settings + void DrawMainSettings() + { + EditorGUILayout.LabelField("Main Settings", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(typewriterStartsAutomatically); + if(typewriterStartsAutomatically.boolValue) + EditorGUILayout.LabelField("(Remember to add a Typewriter component!)", EditorStyles.wordWrappedMiniLabel); + + EditorGUILayout.PropertyField(useDynamicScaling); + if(useDynamicScaling.boolValue) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(referenceFontSize); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(animationLoop); + if ((int)animationLoop.intValue != (int)AnimationLoop.Script) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(timeScale); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField(isResettingTimeOnNewText); + + EditorGUI.indentLevel--; + } + #endregion + + public override void OnInspectorGUI() + { + GUI.enabled = false; + EditorGUILayout.PropertyField(m_Script); + GUI.enabled = true; + //--- Draws Text Animator --- + + DrawPlayback(); + EditorGUILayout.Space(); + + DrawMainSettings(); + EditorGUILayout.Space(); + + DrawDefaultTags(); + EditorGUILayout.Space(); + + DrawDatabases(); + EditorGUILayout.Space(); + + //--- Draws the rest --- + //(in case of custom inspector from child classes etc.) + DrawPropertiesExcluding(serializedObject, excludedProperties); + + if(serializedObject.hasModifiedProperties) + serializedObject.ApplyModifiedProperties(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta new file mode 100644 index 0000000..d7b2280 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TAnimCoreDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcb43c683fc0e47569981a9ff0d346bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs new file mode 100644 index 0000000..54aacca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs @@ -0,0 +1,89 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterByCharacter), true)] + class TypewriterByCharacterDrawer : TypewriterCoreDrawer + { + SerializedProperty waitForNormalChars; + SerializedProperty waitLong; + SerializedProperty waitMiddle; + SerializedProperty avoidMultiplePunctuactionWait; + SerializedProperty waitForNewLines; + SerializedProperty waitForLastCharacter; + + PropertyWithDifferentLabel useTypewriterWaitForDisappearances; + PropertyWithDifferentLabel disappearanceWaitTime; + PropertyWithDifferentLabel disappearanceSpeedMultiplier; + + protected override void OnEnable() + { + base.OnEnable(); + + waitForNormalChars = serializedObject.FindProperty("waitForNormalChars"); + waitLong = serializedObject.FindProperty("waitLong"); + waitMiddle = serializedObject.FindProperty("waitMiddle"); + avoidMultiplePunctuactionWait = serializedObject.FindProperty("avoidMultiplePunctuactionWait"); + waitForNewLines = serializedObject.FindProperty("waitForNewLines"); + waitForLastCharacter = serializedObject.FindProperty("waitForLastCharacter"); + useTypewriterWaitForDisappearances = new PropertyWithDifferentLabel(serializedObject, "useTypewriterWaitForDisappearances", "Use Typewriter Wait Times"); + disappearanceSpeedMultiplier = new PropertyWithDifferentLabel(serializedObject, "disappearanceSpeedMultiplier", "Typewriter Speed Multiplier"); + disappearanceWaitTime = new PropertyWithDifferentLabel(serializedObject, "disappearanceWaitTime", "Disappearances Wait"); + } + + protected override string[] GetPropertiesToExclude() + { + string[] newProperties = new string[] { + "script", + "waitForNormalChars", + "waitLong", + "waitMiddle", + "avoidMultiplePunctuactionWait", + "waitForNewLines", + "waitForLastCharacter", + "useTypewriterWaitForDisappearances", + "disappearanceSpeedMultiplier", + "disappearanceWaitTime" + }; + + string[] baseProperties = base.GetPropertiesToExclude(); + + string[] mergedArray = new string[newProperties.Length + baseProperties.Length]; + + for (int i = 0; i < baseProperties.Length; i++) + { + mergedArray[i] = baseProperties[i]; + } + + for (int i = 0; i < newProperties.Length; i++) + { + mergedArray[i + baseProperties.Length] = newProperties[i]; + } + + return mergedArray; + } + + protected override void OnTypewriterSectionGUI() + { + EditorGUILayout.PropertyField(waitForNormalChars); + EditorGUILayout.PropertyField(waitLong); + EditorGUILayout.PropertyField(waitMiddle); + + EditorGUILayout.PropertyField(avoidMultiplePunctuactionWait); + EditorGUILayout.PropertyField(waitForNewLines); + EditorGUILayout.PropertyField(waitForLastCharacter); + } + + protected override void OnDisappearanceSectionGUI() + { + useTypewriterWaitForDisappearances.PropertyField(); + + if (useTypewriterWaitForDisappearances.property.boolValue) + disappearanceSpeedMultiplier.PropertyField(); + else + disappearanceWaitTime.PropertyField(); + + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta new file mode 100644 index 0000000..0049108 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByCharacterDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 867d2cd807cf4028ad7222663d1d20dc +timeCreated: 1679750297 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs new file mode 100644 index 0000000..2ba50d6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs @@ -0,0 +1,59 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterByWord), true)] + class TypewriterByWordDrawer : TypewriterCoreDrawer + { + SerializedProperty waitForNormalWord; + SerializedProperty waitForWordWithPunctuation; + PropertyWithDifferentLabel disappearanceDelay; + + protected override void OnEnable() + { + base.OnEnable(); + + waitForNormalWord = serializedObject.FindProperty("waitForNormalWord"); + waitForWordWithPunctuation = serializedObject.FindProperty("waitForWordWithPunctuation"); + disappearanceDelay = new PropertyWithDifferentLabel(serializedObject, "disappearanceDelay", "Disappearances Wait"); + } + + protected override string[] GetPropertiesToExclude() + { + string[] newProperties = new string[] { + "script", + "waitForNormalWord", + "waitForWordWithPunctuation", + "disappearanceDelay", + }; + + string[] baseProperties = base.GetPropertiesToExclude(); + + string[] mergedArray = new string[newProperties.Length + baseProperties.Length]; + + for (int i = 0; i < baseProperties.Length; i++) + { + mergedArray[i] = baseProperties[i]; + } + + for (int i = 0; i < newProperties.Length; i++) + { + mergedArray[i + baseProperties.Length] = newProperties[i]; + } + + return mergedArray; + } + + protected override void OnTypewriterSectionGUI() + { + EditorGUILayout.PropertyField(waitForNormalWord); + EditorGUILayout.PropertyField(waitForWordWithPunctuation); + } + + protected override void OnDisappearanceSectionGUI() + { + disappearanceDelay.PropertyField(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta new file mode 100644 index 0000000..b5dd0d5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterByWordDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89bf62aedbe94754920fc2335a4fc7d0 +timeCreated: 1688982269 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs new file mode 100644 index 0000000..727afb5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs @@ -0,0 +1,253 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core.Editors +{ + [CustomEditor(typeof(TypewriterCore), true)] + class TypewriterCoreDrawer : Editor + { + SerializedProperty showLettersDinamically; + SerializedProperty startTypewriterMode; + SerializedProperty hideAppearancesOnSkip; + SerializedProperty triggerEventsOnSkip; + SerializedProperty disappearanceOrientation; + + SerializedProperty onTextShowed; + SerializedProperty onTypewriterStart; + SerializedProperty onCharacterVisible; + SerializedProperty onTextDisappeared; + SerializedProperty onMessage; + + SerializedProperty resetTypingSpeedAtStartup; + + string[] propertiesToExclude = new string[0]; + + + protected struct PropertyWithDifferentLabel + { + public SerializedProperty property; + public GUIContent label; + + public PropertyWithDifferentLabel(SerializedObject obj, string property, string label) + { + this.property = obj.FindProperty(property); + this.label = new GUIContent(label); + } + + public void PropertyField() + { + EditorGUILayout.PropertyField(property, label); + } + } + + + protected virtual string[] GetPropertiesToExclude() + { + return new string[] { + "m_Script", + "useTypeWriter", + "startTypewriterMode", + "hideAppearancesOnSkip", + "triggerEventsOnSkip", + "onTextShowed", + "onTypewriterStart", + "onCharacterVisible", + "resetTypingSpeedAtStartup", + "onTextDisappeared", + "disappearanceOrientation", + "onMessage", + }; + } + + protected virtual void OnEnable() + { + showLettersDinamically = serializedObject.FindProperty("useTypeWriter"); + startTypewriterMode = serializedObject.FindProperty("startTypewriterMode"); + hideAppearancesOnSkip = serializedObject.FindProperty("hideAppearancesOnSkip"); + triggerEventsOnSkip = serializedObject.FindProperty("triggerEventsOnSkip"); + disappearanceOrientation = serializedObject.FindProperty("disappearanceOrientation"); + + + onTextShowed = serializedObject.FindProperty("onTextShowed"); + onTypewriterStart = serializedObject.FindProperty("onTypewriterStart"); + onCharacterVisible = serializedObject.FindProperty("onCharacterVisible"); + onTextDisappeared = serializedObject.FindProperty("onTextDisappeared"); + onMessage = serializedObject.FindProperty("onMessage"); + + resetTypingSpeedAtStartup = serializedObject.FindProperty("resetTypingSpeedAtStartup"); + + propertiesToExclude = GetPropertiesToExclude(); + } + + bool ButtonPlaymode(string label) + { + bool prevGUI = GUI.enabled; + GUI.enabled = Application.isPlaying; + + bool value = GUILayout.Button(label, EditorStyles.miniButton, GUILayout.MaxWidth(70)); + + GUI.enabled = prevGUI; + return value; + } + + public override void OnInspectorGUI() + { + + { + EditorGUILayout.LabelField("Main Settings", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(showLettersDinamically); + + EditorGUI.indentLevel--; + } + + EditorGUILayout.Space(); + + //Typewriter settings + + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Typewriter", EditorStyles.boldLabel); + + if (showLettersDinamically.boolValue) + { + if (ButtonPlaymode("Start")) + { + ((TypewriterCore)target).StartShowingText(true); + } + if (ButtonPlaymode("Stop")) + { + ((TypewriterCore)target).StopShowingText(); + } + } + + EditorGUILayout.EndHorizontal(); + } + + if (showLettersDinamically.boolValue) + { + EditorGUI.indentLevel++; + + EditorGUILayout.PropertyField(startTypewriterMode); + + EditorGUILayout.PropertyField(resetTypingSpeedAtStartup); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Typewriter Skip", EditorStyles.boldLabel); + + + if (ButtonPlaymode("Skip")) + { + ((TypewriterCore)target).SkipTypewriter(); + } + EditorGUILayout.EndHorizontal(); + + + EditorGUILayout.PropertyField(hideAppearancesOnSkip); + EditorGUILayout.PropertyField(triggerEventsOnSkip); + + EditorGUI.indentLevel--; + + } + else + { + GUI.enabled = false; + EditorGUILayout.LabelField("The typewriter is disabled"); + GUI.enabled = true; + } + + EditorGUILayout.Space(); + + //Events + { + EditorGUILayout.LabelField("Events", EditorStyles.boldLabel); + + // foldoutEvents = EditorGUILayout.Foldout(foldoutEvents, "Events"); + + //if (foldoutEvents) + { + EditorGUILayout.PropertyField(onTextShowed); + EditorGUILayout.PropertyField(onTextDisappeared); + + //GUI.enabled = showLettersDinamically.boolValue; + + if (showLettersDinamically.boolValue) + { + + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(onTypewriterStart); + EditorGUILayout.PropertyField(onCharacterVisible); + EditorGUILayout.PropertyField(onMessage); + + EditorGUI.indentLevel--; + } + + //GUI.enabled = true; + } + + } + + EditorGUILayout.Space(); + + //Typewriter + { + EditorGUILayout.LabelField("Typewriter Wait", EditorStyles.boldLabel); + + EditorGUI.indentLevel++; + OnTypewriterSectionGUI(); + EditorGUI.indentLevel--; + } + + EditorGUILayout.Space(); + + //Disappearance + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Disappearances", EditorStyles.boldLabel); + + if (ButtonPlaymode("Start")) + { + ((TypewriterCore)target).StartDisappearingText(); + } + if (ButtonPlaymode("Stop")) + { + ((TypewriterCore)target).StopDisappearingText(); + } + + EditorGUILayout.EndHorizontal(); + + EditorGUI.indentLevel++; + GUI.enabled = false; + EditorGUILayout.LabelField("To start disappearances, please call the 'StartDisappearingText()' method. See the docs for more.", EditorStyles.wordWrappedMiniLabel); + GUI.enabled = true; + + EditorGUILayout.PropertyField(disappearanceOrientation); + + OnDisappearanceSectionGUI(); + + EditorGUI.indentLevel--; + } + + //Draws parent without the children (so, TanimPlayerBase can have a custom inspector) + DrawPropertiesExcluding(serializedObject, propertiesToExclude); + + + if (serializedObject.hasModifiedProperties) + { + serializedObject.ApplyModifiedProperties(); + } + + } + + protected virtual void OnTypewriterSectionGUI() + { + + } + + protected virtual void OnDisappearanceSectionGUI() + { + + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta new file mode 100644 index 0000000..259f154 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Components/TypewriterCoreDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c505a7fbdbbf6604f9f76bf0afbec264 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta new file mode 100644 index 0000000..924f85d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2072e32578cb41c696fbc87874010a2b +timeCreated: 1680343888 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs new file mode 100644 index 0000000..9d72008 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs @@ -0,0 +1,51 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(ColorCurveProperty))] + public class ColorCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + SerializedProperty enabled = property.FindPropertyRelative(nameof(ColorCurve.enabled)); + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + + Rect enabledRect = new Rect(lineByLine.xMax-EditorGUIUtility.singleLineHeight, lineByLine.y, EditorGUIUtility.singleLineHeight, lineByLine.height); + Rect expandedRect = new Rect(lineByLine.x, lineByLine.y, position.width-EditorGUIUtility.singleLineHeight, lineByLine.height); + enabled.boolValue = GUI.Toggle(enabledRect, enabled.boolValue, GUIContent.none); + GUI.color = enabled.boolValue ? Color.white : Color.gray; + + property.isExpanded = EditorGUI.Foldout(expandedRect, property.isExpanded, label, true); + GUI.color = Color.white; + if(!property.isExpanded) return; + GUI.enabled = enabled.boolValue; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.colorOverTime))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.duration))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(ColorCurve.waveSize))); + GUI.enabled = true; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return (property.isExpanded) + ? EditorGUIUtility.singleLineHeight * 4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..5c71ff3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/ColorCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 66208123db9e4e77b655117ebcc45e29 +timeCreated: 1680346774 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs new file mode 100644 index 0000000..7e32fb5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs @@ -0,0 +1,49 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(EmissionCurveProperty))] + public class EmissionCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + property.isExpanded = EditorGUI.Foldout(lineByLine, property.isExpanded, label, true); + if(!property.isExpanded) return; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + // -- cycles -- + SerializedProperty cycles = property.FindPropertyRelative(nameof(EmissionCurve.cycles)); + Rect half = lineByLine; + half.width /= 2f; + EditorGUI.PropertyField(half, cycles); + half.x += half.width + 5; + half.width -= 5; + EditorGUI.LabelField(half,cycles.intValue > 0 ? "cycles until end" : "effect is infinite"); + + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(EmissionCurve.duration))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(EmissionCurve.weightOverTime))); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return property.isExpanded + ? EditorGUIUtility.singleLineHeight*4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..6b2ec5c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/EmissionCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4d090238fa054eed8276f4ad839ea8d0 +timeCreated: 1680343908 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs new file mode 100644 index 0000000..12fd08f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs @@ -0,0 +1,51 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [CustomPropertyDrawer(typeof(FloatCurveProperty))] + public class FloatCurvePropertyDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + SerializedProperty enabled = property.FindPropertyRelative(nameof(FloatCurve.enabled)); + Rect lineByLine = position; + lineByLine.height = EditorGUIUtility.singleLineHeight; + + Rect enabledRect = new Rect(lineByLine.xMax-EditorGUIUtility.singleLineHeight, lineByLine.y, EditorGUIUtility.singleLineHeight, lineByLine.height); + Rect expandedRect = new Rect(lineByLine.x, lineByLine.y, position.width-EditorGUIUtility.singleLineHeight, lineByLine.height); + enabled.boolValue = GUI.Toggle(enabledRect, enabled.boolValue, GUIContent.none); + GUI.color = enabled.boolValue ? Color.white : Color.gray; + + property.isExpanded = EditorGUI.Foldout(expandedRect, property.isExpanded, label, true); + GUI.color = Color.white; + if(!property.isExpanded) return; + GUI.enabled = enabled.boolValue; + + // -- inner area smaller --- + position.y = lineByLine.yMax; + position.height -= lineByLine.height; + position.x += 15; + position.width-=15; + + lineByLine.x = position.x; + lineByLine.width = position.width; + lineByLine.y += lineByLine.height; + + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.amplitude))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.waveSize))); + lineByLine.y += lineByLine.height; + EditorGUI.PropertyField(lineByLine, property.FindPropertyRelative(nameof(FloatCurve.weightOverTime))); + GUI.enabled = true; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return (property.isExpanded) + ? EditorGUIUtility.singleLineHeight * 4 + : EditorGUIUtility.singleLineHeight; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta new file mode 100644 index 0000000..537c83e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Properties/FloatCurvePropertyDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4894f9d8534334cd7a2f30c70b7bf59f +timeCreated: 1680343908 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta new file mode 100644 index 0000000..4f2fa4a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92e50da885b094e4fb85655841952277 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta new file mode 100644 index 0000000..47f126a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c2f725852edc492b8576fab496a36bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs new file mode 100644 index 0000000..46ce4fa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs @@ -0,0 +1,15 @@ +using Febucci.UI.Actions; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(ActionScriptableBase), true)] + class ActionScriptableDrawer : Editor + { + GenericSharedDrawer drawer = new GenericSharedDrawer(true); + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta new file mode 100644 index 0000000..1da562b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Actions/ActionScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2200ec37f7bdf40a2aebe58049fd175f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta new file mode 100644 index 0000000..dd12f4b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b590f529b1e874522b94d7c65ad0dc13 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs new file mode 100644 index 0000000..153e6af --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs @@ -0,0 +1,15 @@ +using Febucci.UI.Effects; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(AnimationScriptableBase), true)] + class AnimScriptableDrawer : Editor + { + GenericSharedDrawer drawer = new GenericSharedDrawer(true); + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta new file mode 100644 index 0000000..452e793 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Animations/AnimScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 475624099e3c24c10a455adc583e9044 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta new file mode 100644 index 0000000..42bc15b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 322f146cc940c4028b1d7a11a84d2e89 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs new file mode 100644 index 0000000..4892cf8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs @@ -0,0 +1,17 @@ +using Febucci.UI.Actions; +using Febucci.UI.Core.Parsing; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(ActionDatabase), true)] + class ActionDatabaseScriptableDrawer : Editor + { + DatabaseSharedDrawer drawer = new DatabaseSharedDrawer(); + + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta new file mode 100644 index 0000000..99b77bc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/ActionDatabaseScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cef03566441d243eca1e263c1a8d95ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs new file mode 100644 index 0000000..880f8d9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs @@ -0,0 +1,16 @@ +using Febucci.UI.Effects; +using UnityEditor; + +namespace Febucci.UI.Core +{ + [CustomEditor(typeof(AnimationsDatabase), true)] + class AnimDatabaseScriptableDrawer : Editor + { + DatabaseSharedDrawer drawer = new DatabaseSharedDrawer(); + + public override void OnInspectorGUI() + { + drawer.OnInspectorGUI(serializedObject); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta new file mode 100644 index 0000000..6f43652 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimDatabaseScriptableDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d5e9601a30fe4cd8a211bde9711dd42 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs new file mode 100644 index 0000000..06e9c26 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs @@ -0,0 +1,104 @@ +using Febucci.UI.Effects; +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + [System.Serializable] + class AnimationElementDrawer + { + public SerializedProperty propertyScriptable; + GenericSharedDrawer drawer; + private GUIContent scriptableNameContent; + public bool expanded; + public bool somethingChanged; + public int wantsToDelete; + + public AnimationElementDrawer(SerializedProperty propertyArrayElementPair) + { + propertyScriptable = propertyArrayElementPair; + drawer = new GenericSharedDrawer(false); + expanded = false; + wantsToDelete = 0; + scriptableNameContent = new GUIContent("Scriptable"); + } + + public bool hasScriptable => propertyScriptable.objectReferenceValue != null; + + public void Draw() + { + somethingChanged = false; + bool drawWarning = false; + string foldoutName; + if (propertyScriptable.objectReferenceValue is ITagProvider tag) + { + if (string.IsNullOrEmpty(tag.TagID)) + { + drawWarning = true; + foldoutName = "[!] Empty Tag"; + } + else + { + foldoutName = tag.TagID; + } + } + else + { + drawWarning = true; + foldoutName = "[!] Empty Slot"; + } + + EditorGUILayout.BeginHorizontal(); + expanded = EditorGUILayout.Foldout(expanded, foldoutName, true); + GUI.backgroundColor = wantsToDelete == 1 ? Color.red : Color.white; + GUI.enabled = expanded; + if (GUILayout.Button(wantsToDelete == 1 ? "Confirm?" : "Delete", EditorStyles.helpBox, GUILayout.Width(55))) + { + wantsToDelete++; + } + GUI.enabled = true; + if (!expanded) + wantsToDelete = 0; + + GUI.backgroundColor = Color.white; + + if(drawWarning) + EditorGUILayout.HelpBox("Invalid", MessageType.Warning); + EditorGUILayout.EndHorizontal(); + + if (expanded) + { + EditorGUI.indentLevel++; + DrawInfo(); + DrawBody(); + EditorGUI.indentLevel--; + } + } + + + void DrawInfo() + { + EditorGUILayout.BeginHorizontal(); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(propertyScriptable, scriptableNameContent); + if (EditorGUI.EndChangeCheck()) + { + //refreshes drawer + somethingChanged = true; + drawer = new GenericSharedDrawer(false); + + if (propertyScriptable.serializedObject.hasModifiedProperties) + propertyScriptable.serializedObject.ApplyModifiedProperties(); + + expanded = true; + } + EditorGUILayout.EndHorizontal(); + } + + void DrawBody() + { + drawer.OnInspectorGUI(propertyScriptable); + } + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta new file mode 100644 index 0000000..a33c496 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/AnimationElementDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 44ca8d8eac0743e88fa01e22338f71f7 +timeCreated: 1674559685 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs new file mode 100644 index 0000000..7bff073 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs @@ -0,0 +1,73 @@ +using UnityEngine; +using UnityEditor; + +namespace Febucci.UI.Core +{ + //handles drawing of each single effect + //with possibility to expand and directly draw the scriptable object as well + [System.Serializable] + class DatabaseSharedDrawer : SharedDrawer + { + SerializedProperty pairsProperty; + [SerializeField] AnimationElementDrawer[] elements; + + protected override void OnEnabled(SerializedObject baseObject) + { + base.OnEnabled(baseObject); + pairsProperty = baseObject.FindProperty("data"); + MatchEffectsWithArray(); + } + + void MatchEffectsWithArray() + { + if (elements == null || elements.Length != pairsProperty.arraySize) + { + elements = new AnimationElementDrawer[pairsProperty.arraySize]; + for (int i = 0; i < elements.Length; i++) + { + elements[i] = new AnimationElementDrawer(pairsProperty.GetArrayElementAtIndex(i)); + } + } + } + + protected override void _OnInspectorGUI() + { + MatchEffectsWithArray(); //putting this one here since might change after Undo + + for (var i = 0; i < elements.Length; i++) + { + var effect = elements[i]; + effect.Draw(); + if (effect.wantsToDelete >= 2) + { + pairsProperty.DeleteArrayElementAtIndex(i); + MatchEffectsWithArray(); + ApplyChanges(); + return; + } + + if (effect.somethingChanged) + { + ApplyChanges(); + effect.somethingChanged = false; + } + } + + //Adds new effect if there isn't any available slot already //TODO check every position + if (elements.Length == 0 || elements[elements.Length - 1].hasScriptable) + { + if(EditorGUILayout.Foldout(false, "->[Add new effect]", true)) + { + pairsProperty.InsertArrayElementAtIndex(pairsProperty.arraySize); + MatchEffectsWithArray(); + //Sets last element as empty + elements[elements.Length - 1].propertyScriptable.objectReferenceValue = null; + ApplyChanges(); + elements[elements.Length - 1].expanded = true; + return; + } + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta new file mode 100644 index 0000000..14db8f9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Scriptables/Database/DatabaseSharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c02119de7d2e84ba9ad22ff6b6c23dfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta new file mode 100644 index 0000000..8c8d93e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 18ea5fac169d489ebc9f01ebedbd65be +timeCreated: 1677691490 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs new file mode 100644 index 0000000..97c8978 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace Febucci.UI +{ + [System.Serializable] + internal class TextAnimatorInstallationData : ScriptableObject + { + [SerializeField] internal string latestVersion = "None"; //stores the latest version + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta new file mode 100644 index 0000000..147a6fc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9e2a5ebb2c224910b14d053825d88b4a +timeCreated: 1678369185 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs new file mode 100644 index 0000000..60f8e98 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs @@ -0,0 +1,52 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + [CustomEditor(typeof(TextAnimatorInstallationData))] + internal class TextAnimatorInstallationDataDrawer : Editor + { + TextAnimatorInstallationData script; + + void OnEnable() + { + script = (TextAnimatorInstallationData)target; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.HelpBox("This file is used by Text Animator to locate your installation path, so that you can move the folder anywhere you want, rename it and better organize your effects. Enjoy!", MessageType.None); + EditorGUILayout.Space(); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Installed version:"); + EditorGUILayout.LabelField(script.latestVersion); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + if (TextAnimatorSettings.Instance) + { + EditorGUILayout.HelpBox("If you wanted to edit the default settings instead, you can select the file via the button below.", MessageType.None); + if (GUILayout.Button("Select Settings")) + { + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + else + { + EditorGUILayout.HelpBox("It seems you don't have a settings file, which is necessary for Text Animator. Do you want to fix it now?", MessageType.Warning); + if (GUILayout.Button("Fix it for me")) + { + TextAnimatorSetupWindow.FixSettingsFileNotFound(); + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + + EditorGUILayout.Space(); + if (GUILayout.Button("Open About Window")) + { + TextAnimatorSetupWindow.Menu_ShowWindowAlways(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta new file mode 100644 index 0000000..0647367 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorInstallationDataDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 88089012e3cf74143abc644150aba565 +timeCreated: 1678369185 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs new file mode 100644 index 0000000..4db1bad --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs @@ -0,0 +1,30 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + [CustomEditor(typeof(TextAnimatorSettings))] + public class TextAnimatorSettingsDrawer : Editor + { + bool extraSettings = false; + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + EditorGUILayout.Space(); + extraSettings = EditorGUILayout.Foldout(extraSettings, "Extra Settings", EditorStyles.foldoutHeader); + if (extraSettings) + { + if (GUILayout.Button("Reset Default Effects and Actions")) + { + if (EditorUtility.DisplayDialog("Text Animator", + "Are you sure you want to reset the default effects and actions?", "Yes", "No")) + { + TextAnimatorSetupWindow.ResetToBuiltIn(); + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta new file mode 100644 index 0000000..b03ae60 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSettingsDrawer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 67c87275cac3743da833880fb7431757 +timeCreated: 1677691499 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs new file mode 100644 index 0000000..810862c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs @@ -0,0 +1,486 @@ +using System; +using Febucci.UI.Core; +using UnityEditor; +using UnityEngine; +using System.Linq; +using Febucci.UI.Actions; +using Febucci.UI.Effects; + +namespace Febucci.UI +{ + public class TextAnimatorSetupWindow : EditorWindow + { + const string currentVersion = "2.0.2"; + const string path_defaultInstallation = "Assets/Plugins/Febucci/Text Animator"; + + TextAnimatorInstallationData installationData; + bool settingsFileFound; + + + ///

+ /// Called whenever the editor is loaded, + /// e.g. useful for checking if the asset is imported + /// for the first time or after an update + /// + [InitializeOnLoadMethod] + internal static void TryShowingWindowOnLoad() + { + EditorApplication.delayCall += () => ShowWindow(true);; + } + + #region Menu Items + + const string menuParent = "Tools/Febucci/TextAnimator/"; + + [MenuItem(menuParent + "About Window", priority = 1)] + internal static void Menu_ShowWindowAlways() => ShowWindow(false); + + [MenuItem(menuParent + "Utils/Select Settings SO", priority = 11)] + static void Menu_SelectSettingsScriptable() + { + if (TextAnimatorSettings.Instance) + { + Selection.activeObject = TextAnimatorSettings.Instance; + } + else + { + if (EditorUtility.DisplayDialog("Settings not found", + "Text Animator's settings file has not been found. Do you want to run the setup and create it automatically?", + "Yes", "No")) + { + FixSettingsFileNotFound(); + Selection.activeObject = TextAnimatorSettings.Instance; + } + } + } + + + #endregion + + #region Window + + static void ShowWindow(bool onlyOnUpdate) + { + // already installed + if (IsTextAnimatorInstalled(out var installationGUID)) + { + string installationPath = AssetDatabase.GUIDToAssetPath(installationGUID); + var installationData = AssetDatabase.LoadAssetAtPath(installationPath); + + // same version installed, no need to show the window + if (onlyOnUpdate && installationData.latestVersion == currentVersion) + { + return; + } + + //--- Updates to new version --- + UpdateProject(installationData); + } + else + { + //--- First time import --- + //Does nothing, asking the user to install with one click + } + + //Initializes the asset for the first time + var window = (TextAnimatorSetupWindow)GetWindow(typeof(TextAnimatorSetupWindow), true, + "Text Animator Setup", true); + window.maxSize = new Vector2(351, 485); + window.minSize = window.maxSize; + window.settingsFileFound = TextAnimatorSettings.Instance; + } + + bool triedInstallingOnce; + void OnGUI() + { + if (!installationData) + { + if (!triedInstallingOnce) + { + EditorGUILayout.LabelField("Installing...."); + triedInstallingOnce = true; + installationData = GetOrCreateInstallationData(); + Repaint(); + } + else + { + EditorGUILayout.LabelField("Unable to install package, please try to reopen this window from the Tools->Febucci menu"); + return; + } + } + + //--- HEADER --- + GUILayout.Box(TexturesLoader.AboutLogo, EditorStyles.wordWrappedLabel); + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Welcome!", EditorStyles.boldLabel); + EditorGUILayout.LabelField("Thank you for using Text Animator. Have fun bringing your projects to life!", + EditorStyles.wordWrappedLabel); + + EditorGUILayout.Space(); + + //--- VERSION STATUS --- + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PrefixLabel("Version:", EditorStyles.boldLabel); + EditorGUILayout.LabelField(installationData.latestVersion, EditorStyles.whiteMiniLabel); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(); + + if (!settingsFileFound) + { + FixSettingsFileNotFound(); + settingsFileFound = true; + } + + // --- LINKS etc. --- + EditorGUILayout.LabelField("Online Resources", EditorStyles.boldLabel); + EditorGUILayout.LabelField("Here are some useful resources.", EditorStyles.label); + + EditorGUILayout.BeginHorizontal(); + const string baseUrl = "https://febucci.com/text-animator-unity/"; + if (GUILayout.Button("What's New")) + { + Application.OpenURL($"{baseUrl}changelog/"); + } + + if (GUILayout.Button("Documentation")) + { + Application.OpenURL($"{baseUrl}docs/"); + } + + if (GUILayout.Button("Support")) + { + Application.OpenURL($"{baseUrl}support/"); + } + + EditorGUILayout.EndHorizontal(); + + + //--Extras-- + EditorGUILayout.LabelField("Extras", EditorStyles.boldLabel); + + EditorGUILayout.LabelField("Would you like to be included in a future Text Animator showcase?", + EditorStyles.wordWrappedMiniLabel); + if (GUILayout.Button("-> Submit your game/project")) + Application.OpenURL("https://www.febucci.com/text-animator-unity/showcase/"); + + EditorGUILayout.Space(1); + EditorGUILayout.LabelField("Please consider writing a review for the asset. It takes one minute but it really helps. Thanks!", + EditorStyles.wordWrappedMiniLabel); + if (GUILayout.Button("♥ Review on the Asset Store")) + Application.OpenURL("https://assetstore.unity.com/packages/slug/158707"); + + + GUILayout.Space(5); + EditorGUILayout.LabelField("Cheers! @febucci", EditorStyles.centeredGreyMiniLabel); + } + + #endregion + + #region Installation + + static TextAnimatorInstallationData GetOrCreateInstallationData() + { + if (IsTextAnimatorInstalled(out var installationGuid)) + { + return AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(installationGuid)); + } + + var data = _CreateScriptableAssetAtPath(path_defaultInstallation + "/Data", + "InstallationData"); + data.latestVersion = currentVersion; + EditorUtility.SetDirty(data); + AssetDatabase.SaveAssets(); + + return data; + } + + static bool IsTextAnimatorInstalled(out string installationGUID) + { + string[] path = AssetDatabase.FindAssets($"t:{nameof(TextAnimatorInstallationData)}"); + installationGUID = path.Length > 0 ? path[0] : string.Empty; + return path.Length > 0; + } + + static bool TryGetInstallationFolder(out string result) + { + if (!IsTextAnimatorInstalled(out var installationGUID)) + { + Debug.LogError("Unable to locate Text Animator's Installation file. Please re-run the setup."); + result = null; + return false; + } + + result = AssetDatabase.GUIDToAssetPath(installationGUID); + result = result.Substring(0, result.LastIndexOf('/')); + return true; + } + + #endregion + + /// + /// Creates built-in effects databases and assigns it to the settings file as default. + /// + /// + /// In case the settings file doesn't exist, it'll be created as well. + /// In case the built-in effects or databases already exist, they'll be overwritten. + /// + public static void ResetToBuiltIn() + { + //makes sure the asset is installed + GetOrCreateInstallationData(); + if (!TryGetInstallationFolder(out string installationFolder)) + { + Debug.LogError("Something went wrong in locating TextAnimator's installation data."); + return; + } + + var settings = GetOrCreateSettings(installationFolder); + CreateDefaultDatabases(installationFolder, + out var beh, + out var app, + out var act); + AssignDatabasesToSettings(settings, beh, app, act); + } + + #region Databases and Tags + + /// + /// Creates default effects and actions databases. + /// + /// + /// + /// + /// + /// In case they already exist, they'll get overwritten. + static void CreateDefaultDatabases(string installationFolder, out AnimationsDatabase behaviors, out AnimationsDatabase appearances, out ActionDatabase actions) + { + string progressTitle = "Text Animator"; + + // --- DATABASES --- + EditorUtility.DisplayProgressBar(progressTitle, "Creating Behaviors Database", 1/4f); + behaviors = _CreateDatabase(installationFolder, "Behaviors", "Behaviors Database", EffectCategory.Behaviors); + + EditorUtility.DisplayProgressBar(progressTitle, "Creating Appearances Database", 2/4f); + appearances = _CreateDatabase(installationFolder, "Appearances", "Appearances Database", EffectCategory.Appearances); + + EditorUtility.DisplayProgressBar(progressTitle, "Creating Actions Database", 3/4f); + actions = _CreateDatabase(installationFolder, "Actions", "Actions Database", EffectCategory.None); + + AssetDatabase.SaveAssets(); + EditorUtility.ClearProgressBar(); + } + + public static DatabaseType _CreateDatabase(string installationFolder, string folderName, string fileName, EffectCategory category) + where DatabaseType : Database where ElementType : ScriptableObject, ITagProvider + { + string databasePath = installationFolder + $"/{folderName}"; + + var database = _CreateScriptableAssetAtPath(databasePath, fileName); + var types = GetScriptableElementsFromAssembly(); + for (var i = 0; i < types.Length; i++) + { + if (TryCreatingDefaultTagScriptable(types[i], category, out var so)) + { + PlaceScriptableAtPath(so, databasePath); + database.Add(so as ElementType); + } + } + EditorUtility.SetDirty(database); + SerializedObject dat = new SerializedObject(database); + dat.ApplyModifiedProperties(); + return database; + } + + static bool TryCreatingDefaultTagScriptable(System.Type type, EffectCategory category, out ScriptableObject result) + { + var attribute = type.GetCustomAttributes(typeof(TagInfoAttribute), true).FirstOrDefault() as TagInfoAttribute; + if (attribute == null) + { + //skips default elements that do not have EffectInfo attribute + result = default; + return false; + } + + //skips empty tags by design, e.g. Composite animation + if (string.IsNullOrEmpty(attribute.tagID)) + { + result = default; + return false; + } + + if (attribute is EffectInfoAttribute effectInfo) + { + if (!effectInfo.category.HasFlag(category)) + { + result = default; + return false; + } + } + + var so = CreateInstance(type); + so.name = type.Name; + + //changes scriptable field based on default value attributes + var defaultValueAttributes = + type.GetCustomAttributes(typeof(DefaultValueAttribute), true) as DefaultValueAttribute[]; + + SerializedObject serializedSo = new SerializedObject(so); + var tagID = serializedSo.FindProperty("tagID"); + + if (defaultValueAttributes != null) + { + foreach (var info in defaultValueAttributes) + { + serializedSo.FindProperty(info.variableName).floatValue = info.variableValue; + } + } + + tagID.stringValue = attribute.tagID; + serializedSo.ApplyModifiedProperties(); + result = so; + return true; + } + + + #endregion + + + #region Settings + + static void AssignDatabasesToSettings(TextAnimatorSettings settings, AnimationsDatabase behaviorsDatabase, + AnimationsDatabase appearanceDatabase, ActionDatabase actionsDatabase) + { + SerializedObject serialized = new SerializedObject(settings); + serialized.FindProperty(nameof(settings.actions)) + .FindPropertyRelative(nameof(settings.actions.defaultDatabase)).objectReferenceValue = actionsDatabase; + + serialized.FindProperty(nameof(settings.behaviors)) + .FindPropertyRelative(nameof(settings.behaviors.defaultDatabase)).objectReferenceValue = + behaviorsDatabase; + + serialized.FindProperty(nameof(settings.appearances)) + .FindPropertyRelative(nameof(settings.appearances.defaultDatabase)).objectReferenceValue = + appearanceDatabase; + + serialized.ApplyModifiedProperties(); + serialized.Update(); + } + + + static TextAnimatorSettings GetOrCreateSettings(string installationFolder) + { + if(TextAnimatorSettings.Instance) + return TextAnimatorSettings.Instance; + + return _CreateScriptableAssetAtPath(installationFolder + "/Resources", TextAnimatorSettings.expectedName); + } + + + + /// + /// Creates a new settings file (with databases) inside the installation's Resources folder. + /// Also assigns default effects and actions databases, + /// either looking if they already exist or by creating new ones. + /// + /// + /// P.S. A new settings file will be created even if it already exists but in another folder, + /// as the user might have moved it for archive/backups purposes. + /// + public static void FixSettingsFileNotFound() + { + GetOrCreateInstallationData(); + if (!TryGetInstallationFolder(out string installationFolder)) + { + Debug.LogError("Something went wrong in locating TextAnimator's installation data."); + return; + } + + DatabaseType GetOrCreateDatabase(string folderName, string fileName, EffectCategory category) + where DatabaseType : Database where ElementType : ScriptableObject, ITagProvider + { + string databaseGuid = AssetDatabase.FindAssets($"t:{nameof(DatabaseType)}").FirstOrDefault(); + + if (!string.IsNullOrEmpty(databaseGuid)) + { + return AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(databaseGuid)); + } + + // tries creating new database + if (TryGetInstallationFolder(out installationFolder)) + { + return _CreateDatabase(installationFolder, folderName, fileName, category); + } + + return null; + } + + var settings = GetOrCreateSettings(installationFolder); + AssignDatabasesToSettings(settings, + GetOrCreateDatabase("Behaviors", "Behaviors Database", EffectCategory.Behaviors), + GetOrCreateDatabase("Appearances", + "Appearances Database", EffectCategory.Appearances), + GetOrCreateDatabase("Actions", "Actions Database", EffectCategory.None)); + } + + + #endregion + + #region Updating to new versions + + /// + /// Checks for stuff and updates some project files if needed + /// + /// + static void UpdateProject(TextAnimatorInstallationData installationData) + { + //TODO on new update + installationData.latestVersion = currentVersion; + EditorUtility.SetDirty(installationData); + } + + #endregion + + #region Utilties + + public static void _CreateDirectoryIfDoesntExist(string path) + { + string[] folders = path.Split('/'); + string subPath = folders[0]; + for (int i = 1; i < folders.Length; i++) + { + if (!AssetDatabase.IsValidFolder(subPath + '/' + folders[i])) + AssetDatabase.CreateFolder(subPath, folders[i]); + subPath += $"/{folders[i]}"; + } + } + + static Type[] GetScriptableElementsFromAssembly() where T : ScriptableObject, ITagProvider + { + return System.AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => typeof(T).IsAssignableFrom(p) && !p.IsInterface && !p.IsAbstract) + .Where(s => s.Assembly.FullName.StartsWith("Febucci.TextAnimator.Runtime")) + .ToArray(); + } + + public static T _CreateScriptableAssetAtPath(string path, string objectName) where T : ScriptableObject + { + var scriptable = CreateInstance(); + scriptable.name = objectName; + PlaceScriptableAtPath(scriptable, path); + return scriptable; + } + + static void PlaceScriptableAtPath(ScriptableObject scriptable, string path) + { + _CreateDirectoryIfDoesntExist(path); + AssetDatabase.CreateAsset(scriptable, path + $"/{scriptable.name}.asset"); + } + + #endregion + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta new file mode 100644 index 0000000..a64a070 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/Settings/TextAnimatorSetupWindow.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0301c4642b7847db8af9a12e47083bf3 +timeCreated: 1677691499 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta new file mode 100644 index 0000000..afd6600 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa8ee49190adc45c5a5fea31311af75a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs new file mode 100644 index 0000000..35598e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs @@ -0,0 +1,55 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI.Core +{ + /// + /// Could draw anything + /// + class GenericSharedDrawer : SharedDrawer + { + + bool showScript; + public GenericSharedDrawer(bool showScript) + { + this.showScript = showScript; + } + + protected override void _OnInspectorGUI() + { + //draws every visible property (first level children only) of the base serialized object + var iterator = baseObject.GetIterator(); + iterator.NextVisible(true); + do + { + if (iterator.name == "m_Script") + { + if (showScript) + { + GUI.enabled = false; + EditorGUILayout.PropertyField(iterator, true); + GUI.enabled = true; + } + + continue; + } + + if (iterator.isArray) + { + EditorGUILayout.PropertyField(iterator, true); + } + else + { + EditorGUILayout.BeginHorizontal(); + //if (iterator.displayName.Length > 0) + //EditorGUILayout.PrefixLabel(iterator.displayName.Replace("Base ", "")); + EditorGUILayout.PropertyField(iterator, true); + //EditorGUILayout.PropertyField(iterator, GUIContent.none, true); + EditorGUILayout.EndHorizontal(); + } + + } while (iterator.NextVisible(false)) ; + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta new file mode 100644 index 0000000..40e404d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/GenericSharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f18ab2a0e017d4193b01c358f796c4b2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs new file mode 100644 index 0000000..d8dfad3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs @@ -0,0 +1,69 @@ +using UnityEditor; + +namespace Febucci.UI.Core +{ + /// + /// Base class that can be used to create drawers used by multiple + /// custom editors, both components and scriptable objects + /// + [System.Serializable] + abstract class SharedDrawer + { + protected SerializedProperty baseProperty; + protected SerializedObject baseObject; + bool initialized; + + protected virtual void OnEnabled(SerializedObject baseObject) { } + + public void OnInspectorGUI(SerializedProperty baseProperty) + { + if(baseProperty == null) return; + if(baseProperty.objectReferenceValue == null) return; + + if (baseProperty != this.baseProperty) + initialized = false; + + if(!initialized) + { + this.baseProperty = baseProperty; + //hacky unity way to reach the actual serialized object + this.baseObject = new SerializedObject(baseProperty.objectReferenceValue); + OnEnabled(baseObject); + initialized = true; + } + + baseObject.Update(); + _OnInspectorGUI(); + + ApplyChanges(); + } + + public void OnInspectorGUI(SerializedObject baseObject) + { + if (baseObject == null) return; + if (this.baseObject != baseObject) + initialized = false; + + if (!initialized) + { + this.baseObject = baseObject; + OnEnabled(baseObject); + initialized = true; + } + + baseObject.Update(); + _OnInspectorGUI(); + + ApplyChanges(); + } + + protected virtual void _OnInspectorGUI() { } + + protected void ApplyChanges() + { + if (baseObject.hasModifiedProperties) + baseObject.ApplyModifiedProperties(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta new file mode 100644 index 0000000..0dc98a3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/SharedDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f91133a2133874ec7a3239f6932eefad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs new file mode 100644 index 0000000..e112634 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs @@ -0,0 +1,75 @@ +using UnityEditor; +using UnityEngine; + +namespace Febucci.UI +{ + public static class TexturesLoader + { + const string localPath_resourcesFolder = "Text Animator"; + + static Texture aboutLogo; + public static Texture AboutLogo + { + get + { + if(!aboutLogo) aboutLogo = Resources.Load(localPath_resourcesFolder+"/about_logo"); + return aboutLogo; + } + } + + + static Texture stopIcon; + public static Texture StopIcon + { + get + { + if(!stopIcon) stopIcon = Resources.Load(localPath_resourcesFolder+"/stop_icon"); + return stopIcon; + } + } + + static Texture restartIcon; + public static Texture RestartIcon + { + get + { + if(!restartIcon) restartIcon = Resources.Load(localPath_resourcesFolder+"/restart_icon"); + return restartIcon; + } + } + + static Texture saveIcon; + public static Texture SaveIcon + { + get + { + if(!saveIcon) saveIcon = Resources.Load(localPath_resourcesFolder+"/save_icon"); + return saveIcon; + } + } + + static Texture playIcon; + public static Texture PlayIcon + { + get + { + if(!playIcon) playIcon = Resources.Load(localPath_resourcesFolder+"/play_icon"); + return playIcon; + } + } + + static Texture pauseIcon; + public static Texture PauseIcon + { + get + { + if(!pauseIcon) pauseIcon = Resources.Load(localPath_resourcesFolder+"/pause_icon"); + return pauseIcon; + } + } + + + public static Texture WarningIcon => EditorGUIUtility.IconContent("Warning").image; + public static Texture ErrorIcon => EditorGUIUtility.IconContent("Error").image; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta new file mode 100644 index 0000000..85f01ca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Drawers/_Core/TexturesLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bfd3592baf4bc4a84a1c008acf9aac45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef new file mode 100644 index 0000000..092219b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Febucci.TextAnimator.Editor", + "rootNamespace": "", + "references": [ + "GUID:1e113d3b5d77bc04eab508251483e8ff" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta new file mode 100644 index 0000000..6e1d414 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Febucci.TextAnimator.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0306e69412d8fbf41a94465bbaf34341 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta new file mode 100644 index 0000000..039957c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44dfac1202f97428c8f53d2d01bc88cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta new file mode 100644 index 0000000..d1d987a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a149d8b764bcf4a398f25186fb0db4e4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7862fdca2b648a3f171c8cdbbba30e6017366f8f GIT binary patch literal 22597 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 JPDHLkV1f`@a7zFH literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta new file mode 100644 index 0000000..c5cc739 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/about_logo.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 04f06a54beeb7574a8c2b2083e7be396 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 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: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + 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: 4c61e790940ecb64e876d955039cd056 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1056c27beff1b221b9a61e801d8520eb0b224d GIT binary patch literal 529 zcmV+s0`C2ZP)VpwrONlW7jF}1i+wuF+_Oc`#rcfZtr zyuI%vxm9jgl(_Nhg1>-UR2E!O;!82!(zspKC@Q!bN^aHEUqhHsS_SmR4p$& zDLlQJS54j)ZdFo|nDD7^uO=51zBTn|iC;`kmiWtLEfn;F)hX;s{^IB_R#I9MuFtDYG0l&U*?Q2S&UZ{1+ug71Q1d>$Ic_Yv40;UZhf z&mF+({UU|7Rc(h>D7eii$Ea!uaHx!$hhEYJ*V+j5=V{0izBWb-<_tMjZeE3JnjS TIsUOn00000NkvXXu0mjf^Y!Jy literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta new file mode 100644 index 0000000..afa0f43 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/pause_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 58094e2ec45f7480e81fb4a78bc2dd66 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + 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: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/play_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49f36494019aed3c1b6d8cbaab4ac494d70c7003 GIT binary patch literal 640 zcmV-`0)PF9P)VpwrONlW7jF}1i+wuF+_Oc`#rcfZtr zyuI%vxm9jgl(_Nhg1>-UR2E!O;!82!(zspKC@Q!bN^aHEUqhHsS_SmR4p$& zDLlQJS54j)ZdFo|nDD7^uO=51zBTn|iC;`kmiWtLEfn;F)hX;s{^IB_R#I9MuFtDYG0l&U*?Q2S&UZ{1+ug71Q1d>$Ic_Yv40;UZhf z&mF+VhI>({U44npWjlOVK|6a$?ABg8@_9tijDX9)e{2ZWwI8$x$D7eii$paMr{W$ zVHf7$fY70>6RS4m50R0?9qyuQ@ATk|5JqJK;$wSg#fYO|9=+x zSOoL&tXU8mR<1mMP9q24wh&zVpwrONlW7jF}1i+wuF+_Oc`#rcfZtr zyuI%vxm9jgl(_Nhg1>-UR2E!O;!82!(zspKC@Q!bN^aHEUqhHsS_SmR4p$& zDLlQJS54j)ZdFo|nDD7^uO=51zBTn|iC;`kmiWtLEfn;F)hX;s{^IB_R#I9MuFtDYG0l&U*?Q2S&UZ{1+ug71Q1d>$Ic_Yv40;UZhf z&mF+R(lx74B9Y@A3yRVwR^ zMX_jvBd(#^HQ7CHyncTxMX0$lAfPKpP9h->$Sg1aq)@yS}lDd zvjv3$XfS}Y85j=3u+>`s+}8;heFgPViF%eacRF1;gh(g|P-Zj8^Dxfk)*Ejx%vGzQ zTrRNFQLznVNTjOQ4>Jw~pe7TLR?updJ%qno$H(B$-cz7O04(uf07azodJhZW^RZeG z$WLYks#R8JvslX0(_Jmm?{-6FGIH}}0_5``?U_acmP!~Li-F3;Atnvd-?Ug{pC6Ce z`5Ufc_9D8wlkzSFrh(lqXt#q#BilEhgQ*mj{^4P305-_JS8=ZgCX+C()s{QI9U sAia#7PO#ku>1r;QVf^v2tIxmJH_*q`;~}7`eEVpwrONlW7jF}1i+wuF+_Oc`#rcfZtr zyuI%vxm9jgl(_Nhg1>-UR2E!O;!82!(zspKC@Q!bN^aHEUqhHsS_SmR4p$& zDLlQJS54j)ZdFo|nDD7^uO=51zBTn|iC;`kmiWtLEfn;F)hX;s{^IB_R#I9MuFtDYG0l&U*?Q2S&UZ{1+ug71Q1d>$Ic_Yv40;UZhf z&mF+0z< z2>ty#gx1r;Z?S{~g!k?pg#PdWLZ3MUp}DwF&D*^jqK}ss?f?kozaB#K@!_%%JK*Gm z&}?j|;(~(M)jK&s=skNN4iOT9I)Lc{X%@r4moE_d<3|Yn=MRK_`V_xDGcyRibSVpY z7BetF;_~%t2v0x&T^==U-~z(JO!yU8S&{2NV)YXUfhkiUKFP>{@c;iO%>im^Bs$>U zJqW#gIcXM=3c|y2IN;nlNZi)c(8_8^h$<;Tcq%Fc(g5wjr~?L@17JlftpUOwv|Qlg z0!gKHbrAlG7u2;_TpU7sctGgOml+`z7C(asgg&CKg@nMhYXD3hekL}+#Bcxr002ov JPDHLkV1i{2T^axY literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta new file mode 100644 index 0000000..7990162 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/save_icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 039155adb637742a997e9d56b089e95f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + 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: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d91c70c25060d6b7d60e323a243450d63ec2757f GIT binary patch literal 567 zcmV-70?7S|P)VpwrONlW7jF}1i+wuF+_Oc`#rcfZtr zyuI%vxm9jgl(_Nhg1>-UR2E!O;!82!(zspKC@Q!bN^aHEUqhHsS_SmR4p$& zDLlQJS54j)ZdFo|nDD7^uO=51zBTn|iC;`kmiWtLEfn;F)hX;s{^IB_R#I9MuFtDYG0l&U*?Q2S&UZ{1+ug71Q1d>$Ic_Yv40;UZhf z&mF+K z)v*l#Aq)dR^DD6dJCPySDJpOWzbpmQ#2d`mkkry#dB0>k+vNr$#002ovPDHLk FV1jeW@=E{! literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta new file mode 100644 index 0000000..f3c448f --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Editor/Resources/Text Animator/stop_icon.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 9c056a25dd76643ba8f1ee229906a71b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 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: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 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: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta new file mode 100644 index 0000000..361de8b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df7d5220397fe2547bef0d83a82cd45c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta new file mode 100644 index 0000000..5062453 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f9d800b5adc74d4f9570b41fc986a5e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta new file mode 100644 index 0000000..3aae68a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a82ba40ede495c24a8ac264fc5945681 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta new file mode 100644 index 0000000..43a79c7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5ac60f2cc66e4d4ca386fe558fd4be6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef new file mode 100644 index 0000000..81ab5c0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef @@ -0,0 +1,30 @@ +{ + "name": "Febucci.TextAnimator.TMP.Runtime", + "rootNamespace": "", + "references": [ + "GUID:1e113d3b5d77bc04eab508251483e8ff", + "GUID:6055be8ebefd69e48b49212b09b47b2f" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [ + "TANIM_TMP_PRESENT" + ], + "versionDefines": [ + { + "name": "com.unity.textmeshpro", + "expression": "", + "define": "TANIM_TMP_PRESENT" + }, + { + "name": "com.unity.ugui", + "expression": "2.0.0", + "define": "TANIM_TMP_PRESENT" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta new file mode 100644 index 0000000..5823305 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/Febucci.TextAnimator.TMP.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e539678cf69674b418d82e89c16a9753 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs new file mode 100644 index 0000000..211df45 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs @@ -0,0 +1,86 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public class TMPTagParser : TagParserBase + { + readonly bool richTagsEnabled; + + //PS no "noparse" since it's already checked + static readonly TMPTagInfo[] lookups = new[] + { + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""),new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo( ""), new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo(""), + new TMPTagInfo(""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), new TMPTagInfo( ""), + new TMPTagInfo(""), + new TMPTagInfo("") + }; + + struct TMPTagInfo + { + public readonly string tagOpening; + public readonly bool increasesTextLength; + + public TMPTagInfo(string tagOpening, bool increasesTextLength = false) + { + this.tagOpening = tagOpening; + this.increasesTextLength = increasesTextLength; + } + } + + public TMPTagParser(bool richTagsEnabled, char openingBracket, char closingBracket, char closingTagSymbol) + : base(openingBracket, closingBracket, closingTagSymbol) + { + this.richTagsEnabled = richTagsEnabled; + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!richTagsEnabled) return false; + + string fullTag = startSymbol + textInsideBrackets + endSymbol; //TODO improve + + foreach (var lookupTag in lookups) + { + if (fullTag.StartsWith(lookupTag.tagOpening, true, System.Globalization.CultureInfo.InvariantCulture)) + { + finalTextBuilder.Append(fullTag); + if (lookupTag.increasesTextLength) realTextIndex++; + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta new file mode 100644 index 0000000..a523d14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TMPTagParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a3d19aed716a0144afe3d3676bee59c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs new file mode 100644 index 0000000..7f3addf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs @@ -0,0 +1,238 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using TMPro; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Animates a TMP text component, both UI or World. + /// See for the base class information. + /// + [RequireComponent(typeof(TMP_Text))] + [AddComponentMenu("Febucci/TextAnimator/Text Animator - Text Mesh Pro")] + public sealed class TextAnimator_TMP : TAnimCore + { + /// + /// The TextMeshPro text component linked to this Text Animator + /// + public TMP_Text TMProComponent + { + get + { + if (tmpComponent) return tmpComponent; + CacheComponentsOnce(); + return tmpComponent; + } + } + + TMP_Text tmpComponent; + TMP_TextInfo textInfo; + TMP_InputField attachedInputField; + + //----- Values cache ----- + bool autoSize; + Rect sourceRect; + Color sourceColor; + int tmpFirstVisibleCharacter; + int tmpMaxVisibleCharacters; + //----- + + bool componentsCached; + bool isUI; + void CacheComponentsOnce() + { + if(componentsCached) return; + + if (!gameObject.TryGetComponent(out tmpComponent)) + { + Debug.LogError($"TextAnimator_TMP {name} requires a TMP_Text component to work.", gameObject); + } + + gameObject.TryGetComponent(out attachedInputField); + componentsCached = true; + isUI = tmpComponent is TextMeshProUGUI; + } + + protected override void OnInitialized() + { + CacheComponentsOnce(); + + //prevents the text from being rendered at startup + //e.g. in case user has stuff on the inspector + tmpComponent.renderMode = TextRenderFlags.DontRender; + } + + protected override void OnEnable() + { + base.OnEnable(); + textInfo = TMProComponent.textInfo; + } + + #region Text + + protected override TagParserBase[] GetExtraParsers() + { + return new TagParserBase[1] {new TMPTagParser(tmpComponent.richText, '<', '/', '>')}; + } + + public override string GetOriginalTextFromSource() => TMProComponent.text; + public override string GetStrippedTextFromSource() => tmpComponent.GetParsedText(); + + /// + /// Equivalent to setting the text to the TMP component, without parsing it. + /// Please use or instead. + /// + /// + public override void SetTextToSource(string text) + { + //Avoids rendering the text for half a frame + TMProComponent.renderMode = TextRenderFlags.DontRender; + + //--generates mesh and text info-- + if (attachedInputField) attachedInputField.text = text; //renders input field + else tmpComponent.text = text; //<-- sets the text + + OnForceMeshUpdate(); + + textInfo = tmpComponent.GetTextInfo(tmpComponent.text); + +#if UNITY_EDITOR + if (!Application.isPlaying) + { + //needed to update tmp mesh from editor + tmpComponent.havePropertiesChanged = true; + UnityEditor.EditorUtility.SetDirty(tmpComponent); + } + else +#endif + tmpComponent.renderMode = TextRenderFlags.DontRender; + } + #endregion + + protected override bool IsReady() => componentsCached && (!isUI || tmpComponent.canvas); + #region Characters + protected override int GetCharactersCount() => textInfo.characterCount; + #endregion + + #region Checks + protected override bool HasChangedRenderingSettings() + { + return tmpComponent.havePropertiesChanged + //changing the properties below doesn't seem to trigger 'havePropertiesChanged', so we're checking them manually + || tmpComponent.enableAutoSizing != autoSize + || tmpComponent.rectTransform.rect != sourceRect + || tmpComponent.color != sourceColor + || tmpComponent.firstVisibleCharacter != tmpFirstVisibleCharacter + || tmpComponent.maxVisibleCharacters != tmpMaxVisibleCharacters; + } + + protected override bool HasChangedText(string strippedText) + { + if(string.IsNullOrEmpty(tmpComponent.text) && string.IsNullOrEmpty(strippedText)) + return false; + + if (string.IsNullOrEmpty(tmpComponent.text) != string.IsNullOrEmpty(strippedText)) + return true; + + return !tmpComponent.text.Equals(strippedText); + } + + #endregion + + #region Mesh + + protected override void CopyMeshFromSource(ref CharacterData[] characters) + { + autoSize = tmpComponent.enableAutoSizing; + sourceRect = tmpComponent.rectTransform.rect; + sourceColor = tmpComponent.color; + tmpFirstVisibleCharacter = tmpComponent.firstVisibleCharacter; + tmpMaxVisibleCharacters = tmpComponent.maxVisibleCharacters; + + TMP_CharacterInfo currentCharInfo; + + //Updates the characters sources + for (int i = 0; i < textInfo.characterCount && i < characters.Length; i++) + { + currentCharInfo = textInfo.characterInfo[i]; + characters[i].info.isRendered = currentCharInfo.isVisible; + characters[i].info.character = currentCharInfo.character; + //Updates TMP char info + //characters[i].current.tmp_CharInfo = textInfo.characterInfo[i]; + + //Copies source data from the mesh info only if the character is valid, otherwise its vertices array will be null and tAnim will start throw errors + if (!currentCharInfo.isVisible) continue; + + characters[i].info.pointSize = currentCharInfo.pointSize; + + //Updates vertices + for (byte k = 0; k < TextUtilities.verticesPerChar; k++) + { + characters[i].source.positions[k] = textInfo.meshInfo[currentCharInfo.materialReferenceIndex].vertices[currentCharInfo.vertexIndex + k]; + } + + //Updates colors + for (byte k = 0; k < TextUtilities.verticesPerChar; k++) + { + characters[i].source.colors[k] = textInfo.meshInfo[currentCharInfo.materialReferenceIndex].colors32[currentCharInfo.vertexIndex + k]; + } + } + } + + protected override void PasteMeshToSource(CharacterData[] characters) + { + + TMP_CharacterInfo currentCharInfo; + + //Updates the mesh + for (int i = 0; i < textInfo.characterCount && i < CharactersCount; i++) + { + currentCharInfo = textInfo.characterInfo[i]; + //Avoids updating if we're on an invisible character, like a spacebar + //Do not switch this with "i tmpComponent.ForceMeshUpdate(true); + #endregion + + #region Obsolete + + [System.Obsolete("This method is Obsolete. Please check through the 'Characters' array instead.")] + public bool TryGetNextCharacter(out TMP_CharacterInfo result) + { + if(latestCharacterShown.index TMProComponent; + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta new file mode 100644 index 0000000..c0dfd5a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/TextMeshPro/TextAnimator_TMP.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8ace8ced0e81c847968cdca0aeda757 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta new file mode 100644 index 0000000..1a70987 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fcc9bd3818c90824396a4b66126b13d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs new file mode 100644 index 0000000..9d3c4ed --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs @@ -0,0 +1,14 @@ +namespace Febucci.UI +{ + public enum AnimationLoop + { + Update = 0, + + LateUpdate = 1, + + /// + /// Via Script + /// + Script = 2 + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta new file mode 100644 index 0000000..c4ab1f7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/AnimationLoop.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 98cf9e54383e4c35bd21cabe037c5fbc +timeCreated: 1672434576 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs new file mode 100644 index 0000000..d581d9e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs @@ -0,0 +1,1342 @@ +using System; +using System.Text; +using Febucci.UI.Actions; +using Febucci.UI.Core.Parsing; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Core +{ + [DisallowMultipleComponent] + [HelpURL("https://www.febucci.com/text-animator-unity/docs/how-to-add-effects-to-your-texts/")] + public abstract class TAnimCore : MonoBehaviour + { + #region Types + enum ShowTextMode : byte + { + Hidden = 0, + Shown = 1, + UserTyping = 2, + Refresh = 3 + } + #endregion + + #region Variables + bool initialized; + bool requiresTagRefresh; + + #region Options + /// + /// If the source text changes, should the typewriter start automatically? + /// + /// + /// Requires a Typewriter component if true. + /// + [Tooltip("If the source text changes, should the typewriter start automatically? Requires a Typewriter component if true.\nP.s. Previously, this option was called 'Use Easy Integration'.")] + public bool typewriterStartsAutomatically = false; + TypewriterCore _typewriterCache; + /// + /// Linked TAnimPlayer to this component + /// + TypewriterCore typewriter + { + get + { + if (_typewriterCache != null) + return _typewriterCache; + +#if UNITY_2019_2_OR_NEWER + if(!TryGetComponent(out _typewriterCache)) + { + Debug.LogError($"Typewriter component is null on GameObject {gameObject.name}. Please add a typewriter on the same GameObject or set 'Typewriter Starts Automatically' to false.", this.gameObject); + } +#else + _tAnimPlayer = GetComponent(); + Assert.IsNotNull(_tAnimPlayer, $"Text Animator Player component is null on GameObject {gameObject.name}"); +#endif + + return _typewriterCache; + } + } + + + /// + /// Controls when Text Animator should update its effects. Set it to if you want to control the animations from your own loop, invoking the method. + /// + [Tooltip("Controls when this TextAnimator component should update its effects. Defaults in the 'Update' Loop.\nSet it to 'Manual' if you want to control the animations from your own loop instead.")] + public AnimationLoop animationLoop = AnimationLoop.Update; + + /// + /// Chooses which Time Scale to use when automatically animating effects (in other words, when the Update Mode is not set to Script). Set it to if you want to animate effects even when the game is paused. + /// + [Tooltip("Chooses which Time Scale to use when animating effects.\nSet it to 'Unscaled' if you want to animate effects even when the game is paused.")] + public TimeScale timeScale = TimeScale.Scaled; + + #endregion + + #region Text + /// + /// The original text pasted to Text Animator, with all its tags + /// + [SerializeField, TextArea(4, 10), HideInInspector] string _text = string.Empty; + public string textFull + { + get => _text; + set + { + if(typewriterStartsAutomatically + #if UNITY_EDITOR + && Application.isPlaying + #endif + && typewriter + ) + { + SetTypewriterText(value); + return; + } + + SetText(value); + } + } + + /// + /// The text without any Text Animator tag + /// + /// + /// PS. this might still contain other tags from different supported plugins, like "color" from TMPro. + /// To get the full stripped text, see . + /// + public string textWithoutTextAnimTags { get; private set; } = string.Empty; + public string textWithoutAnyTag { get; private set; } = string.Empty; + + bool hasText => charactersCount > 0; + + public CharacterData latestCharacterShown { get; private set; } + + /// + /// true if the text is entirely visible, including waiting for appearance effects to finish + /// (as they might still hide a character until the very end) + /// + /// + /// You can use this to check if all the letters have been shown. + /// + public bool allLettersShown + { + get + { + if (_maxVisibleCharacters < charactersCount) return false; + if (_firstVisibleCharacter == _maxVisibleCharacters) return false; + + for (int i = 0; i < charactersCount; i++) + { + if (!characters[i].isVisible) + { + if (characters[i].passedTime <= 0) + return false; + } + else + { + if (characters[i].info.isRendered && characters[i].passedTime < characters[i].info.appearancesMaxDuration) + return false; + } + } + + return true; + } + } + + + /// + /// true if any letter is still visible in the text + /// + /// + /// You can use this to check if the disappearance effects are still running. + /// + public bool anyLetterVisible //TODO test + { + get + { + if (characters.Length == 0) return true; + + bool IsCharacterVisible(int index) + { + return characters[index].passedTime > 0; + } + + //searches for the first character or the last one first, since they're most probably the first ones to be shown (based on orientation) + if (IsCharacterVisible(0) || IsCharacterVisible(charactersCount-1)) + return true; + + //searches for the other, which might still be running their appearance/disappearance + for(int i=1;i + /// Number of characters in the text + /// + int charactersCount; + public int CharactersCount + { + get => charactersCount; + } + CharacterData[] characters; + /// + /// The array of characters currently present in the text. + /// + /// + /// This array might be larger than the actual number of characters, so please cycle for instead. + /// + public CharacterData[] Characters + { + get => characters; + } + + int wordsCount; + /// + /// Number of words in the text + /// + public int WordsCount + { + get => wordsCount; + } + + WordInfo[] words; + /// + /// The array of words currently present in the text. + /// + /// + /// This array might be larger than the actual number of words, so please cycle for instead. + /// + public WordInfo[] Words => words; + + //---CHARS SIZE/INTENSITY--- + + /// + /// True if you want the animations to be uniform/consistent across different font sizes. Default/Suggested to leave this as true, and change . Otherwise, effects will move more when the text is smaller (requires less space on screen). + /// + [Tooltip("True if you want the animations to be uniform/consistent across different font sizes. Default/Suggested to leave this as true, and change the 'Reference Font Size'.\nOtherwise, effects will move more when the text is smaller (requires less space on screen)")] + public bool useDynamicScaling = true; + + /// + /// Font size that will be used as reference to keep animations consistent/uniform at different scales. Works only if is set to true. + /// + [Tooltip("Font size that will be used as reference to keep animations consistent/uniform at different scales.")] + public float referenceFontSize = 10; + + + //---OTHERS--- + + /// + /// True if you want the animator's time to be reset on new text. + /// + [Tooltip("True if you want the animator's time to be reset on new text.")] + [FormerlySerializedAs("isResettingEffectsOnNewText")] public bool isResettingTimeOnNewText = true; + + #endregion + + #region Effects and Databases + + bool isAnimatingBehaviors = true; + bool isAnimatingAppearances = true; + + /// + /// True if you want to use the databases referenced in the asset, otherwise you can specify which databases to use in this component. + /// + [Tooltip("Lets you use the databases referenced in the 'TextAnimatorSettings' asset.\nSet to false if you'd like to specify which databases to use in this component.")] + public bool useDefaultDatabases = true; + + // ---------------- + // -- Databases -- + // ---------------- + [SerializeField] AnimationsDatabase databaseBehaviors; + /// + /// Behaviors Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public AnimationsDatabase DatabaseBehaviors + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.behaviors.defaultDatabase : databaseBehaviors; + set + { + useDefaultDatabases = false; + databaseBehaviors = value; + requiresTagRefresh = true; + } + } + + [SerializeField] AnimationsDatabase databaseAppearances; + /// + /// Appearances Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public AnimationsDatabase DatabaseAppearances + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.appearances.defaultDatabase : databaseAppearances; + set + { + useDefaultDatabases = false; + databaseAppearances = value; + requiresTagRefresh = true; + } + } + + // ---------------- + // -- Effects -- + // ---------------- + AnimationRegion[] behaviors; + /// + /// All the behavior effects that are applied to the current text. + /// + public AnimationRegion[] Behaviors + { + get => behaviors; + set => behaviors = value; + } + + AnimationRegion[] appearances; + /// + /// All the appearance effects that are applied to the current text. + /// + public AnimationRegion[] Appearances + { + get => appearances; + set => appearances = value; + } + AnimationRegion[] disappearances; + + /// + /// All the disappearance effects that are applied to the current text. + /// + public AnimationRegion[] Disappearances + { + get => disappearances; + set => disappearances = value; + } + #endregion + + #region Actions and Events + ActionMarker[] actions; + + /// + /// All the actions that have been parsed from the current text, and that will be used by a component if present. + /// + public ActionMarker[] Actions + { + get => actions; + set => actions = value; + } + + + [SerializeField] ActionDatabase databaseActions; + /// + /// Actions Database used by this Text Animator. If is set to true, this will be the default database from the asset. + /// + public ActionDatabase DatabaseActions + { + get => useDefaultDatabases ? TextAnimatorSettings.Instance.actions.defaultDatabase : databaseActions; + set + { + databaseActions = value; + requiresTagRefresh = true; + } + } + + EventMarker[] events; + /// + /// Events that have been parsed from the current text, and that will be used by a component if present. + /// + public EventMarker[] Events + { + get => events; + set => events = value; + } + + #endregion + + #region Default Tags + + struct DefaultRegion + { + public string[] tagWords; + public AnimationRegion region; + + public DefaultRegion(string tagID, VisibilityMode visibilityMode, AnimationScriptableBase scriptable, string[] tagWords) + { + this.tagWords = tagWords; + this.region = new AnimationRegion(tagID, visibilityMode, scriptable); + } + } + + [SerializeField] string[] defaultAppearancesTags = new []{"size"}; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultAppearancesTags + { + get => defaultAppearancesTags; + set + { + defaultAppearancesTags = value; + requiresTagRefresh = true; + } + } + [SerializeField] string[] defaultDisappearancesTags = new []{"fade"}; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultDisappearancesTags + { + get => defaultDisappearancesTags; + set + { + defaultDisappearancesTags = value; + requiresTagRefresh = true; + } + } + + [SerializeField] string[] defaultBehaviorsTags; + /// + /// Fallback/Constant tags that will be applied to the entire text, if no other tags are found, based on the value. + /// + public string[] DefaultBehaviorsTags + { + get => defaultBehaviorsTags; + set + { + defaultBehaviorsTags = value; + requiresTagRefresh = true; + } + } + #endregion + + #endregion + + #region Abstract / Virtual + /// + /// Called once when the component is initialized. + /// + protected virtual void OnInitialized() { } + + //---------------- + //--Setting Text-- + //---------------- + public abstract string GetOriginalTextFromSource(); + public abstract string GetStrippedTextFromSource(); + public abstract void SetTextToSource(string text); + + //---------------- + //--Checking Changes-- + //---------------- + protected abstract bool HasChangedText(string strippedText); + protected abstract bool HasChangedRenderingSettings(); + + //----------------- + //--Setting Chars-- + //----------------- + protected abstract int GetCharactersCount(); + + //----------------- + //---Setting Mesh-- + //----------------- + protected abstract void OnForceMeshUpdate(); + protected abstract void CopyMeshFromSource(ref CharacterData[] characters); + protected abstract void PasteMeshToSource(CharacterData[] characters); + #endregion + + bool requiresMeshUpdate; + void ForceMeshUpdate() + { + requiresMeshUpdate = false; + OnForceMeshUpdate(); + } + + void Awake() + { + requiresTagRefresh = true; + TryInitializing(); + } + + void TryInitializing() + { + #if UNITY_EDITOR + if (!Application.isPlaying) + { + if(characters == null) //forces reset in editor + initialized = false; + } + #endif + + if (initialized) return; + + initialized = true; + + TextUtilities.Initialize(); + charactersCount = 0; + characters = new CharacterData[0]; + + wordsCount = 0; + words = new WordInfo[0]; + + behaviors = new AnimationRegion[0]; + appearances = new AnimationRegion[0]; + disappearances = new AnimationRegion[0]; + actions = new ActionMarker[0]; + events = new EventMarker[0]; + + if(DatabaseActions) DatabaseActions.ForceBuildRefresh(); + if(DatabaseAppearances) DatabaseAppearances.ForceBuildRefresh(); + if(DatabaseBehaviors) DatabaseBehaviors.ForceBuildRefresh(); + + OnInitialized(); + } + + /// + /// Contains TextAnimator's current time values. + /// + [HideInInspector] public TimeData time; + + + void UpdateUniformIntensity() + { + if(useDynamicScaling) + { + for (int i = 0; i < characters.Length; i++) + { + // multiplies by current character size, which could be modified by "size" tags and so + // be different than the basic tmp font size value + characters[i].UpdateIntensity(referenceFontSize); + } + } + else + { + for (int i = 0; i < characters.Length; i++) + { + characters[i].uniformIntensity = 1; + } + } + } + + public enum DefaultTagsMode + { + /// + /// Applies effects only to characters that don't have any. + /// + Fallback = 0, + /// + /// Applies effects to all the characters, even if they already have other tags via text. + /// + Constant = 1 + } + + /// + /// Controls how default tags should be applied.\n"Fallback" will apply the effects only to characters that don't have any.\n"Constant" will apply the default effects to all the characters, even if they already have other tags via text. + /// + [Tooltip("Controls how default tags should be applied.\n\"Fallback\" will apply the effects only to characters that don't have any.\n\"Constant\" will apply the default effects to all the characters, even if they already have other tags via text.")] + public DefaultTagsMode defaultTagsMode = DefaultTagsMode.Fallback; + + #region Text + + protected virtual TagParserBase[] GetExtraParsers(){ return Array.Empty(); } + + TextAnimatorSettings settings; + void ConvertText(string textToParse, ShowTextMode showTextMode) + { + #region Local Methods + void PopulateCharacters() + { + if (characters.Length < charactersCount) + Array.Resize(ref characters, charactersCount); + + for (int i = 0; i < charactersCount; i++) + { + //--Resets info-- + characters[i].ResetInfo(i); + + //--Assigns effect times-- + float CalculateRegionMaxDuration(AnimationRegion[] tags) + { + float maxDuration = 0; + float currentDuration; + //For each tag + foreach(var tag in tags) + { + //for each range + foreach(var range in tag.ranges) + { + //If the region contains the character + if (i>=range.indexes.x && i maxDuration) + { + //Assigns the new max + maxDuration = currentDuration; + } + } + } + } + + return maxDuration; + } + + characters[i].info.disappearancesMaxDuration = CalculateRegionMaxDuration(disappearances); + characters[i].info.appearancesMaxDuration = CalculateRegionMaxDuration(appearances); + } + } + + void CalculateWords() + { + StringBuilder currentWord = new StringBuilder(); + wordsCount = charactersCount; + + if (words.Length < wordsCount) + Array.Resize(ref words, wordsCount); + + int tempLength = 0; + int wordIndex = 0; + int currentFirstIndex = 0; + for (int i = 0; i < charactersCount; i++) + { + if (!char.IsWhiteSpace(characters[i].info.character)) + { + characters[i].wordIndex = wordIndex; + currentWord.Append(characters[i].info.character); + tempLength++; + continue; + } + else + { + characters[i].wordIndex = -1; + } + + if (tempLength > 0) + { + words[wordIndex] = new WordInfo( + currentFirstIndex, + currentFirstIndex + tempLength - 1, + currentWord.ToString()); + currentFirstIndex += tempLength+1; //removes additional space + wordIndex++; + } + else + { + currentFirstIndex++; //proceeds to shift white spaces etc. + } + + currentWord.Clear(); + tempLength = 0; + } + + //Adds last + if (tempLength > 0) + { + words[wordIndex] = new WordInfo( + currentFirstIndex, + currentFirstIndex + tempLength - 1, + currentWord.ToString()); + wordIndex++; + } + + wordsCount = wordIndex; + } + + void HideCharacterTime(int charIndex) + { + var c = characters[charIndex]; + c.isVisible = false; + c.passedTime = 0; + c.Hide(); + characters[charIndex] = c; + } + + void HideAllCharactersTime() + { + for (int i = 0; i < charactersCount; i++) + { + HideCharacterTime(i); + } + } + + void ShowCharacterTimes() + { + for (int i = 0; i < charactersCount; i++) + { + var c = characters[i]; + c.isVisible = true; + c.passedTime = c.info.appearancesMaxDuration; + characters[i] = c; + } + } + + bool IsCharacterInsideAnyEffect(int charIndex, AnimationRegion[] regions) + { + foreach (var region in regions) + { + foreach (var range in region.ranges) + { + if (charIndex >= range.indexes.x && (range.indexes.y == int.MaxValue || charIndex < range.indexes.y)) + { + return true; + } + } + } + + return false; + } + + void AddFallbackEffectsFor(ref AnimationRegion[] currentEffects, VisibilityMode visibilityMode, Database database, string[] defaultEffectsTags) where T : AnimationScriptableBase + { + if(!database) return; + + if (defaultEffectsTags == null || defaultEffectsTags.Length == 0) + { + return; + } + + //create list of default regions that should be added + var defaultRegions = new System.Collections.Generic.List(); + string[] tagWords; + string tagName; + foreach (var tag in defaultEffectsTags) + { + if(string.IsNullOrEmpty(tag)) + { + if(Application.isPlaying) + Debug.LogError($"Empty tag as default effect in database {database.name}. Skipping.", gameObject); + continue; + } + + tagWords = tag.Split(' '); + tagName = tagWords[0]; + + if (!database.ContainsKey(tagName)) + { + if(Application.isPlaying) + Debug.LogError($"Fallback effect with tag '{tagName}' not found in database {database.name}. Skipping.", gameObject); + continue; + } + + defaultRegions.Add(new DefaultRegion(tagName, visibilityMode, database[tagName], tagWords)); + } + + //if there are no current effects, directly adds the default effects + if(currentEffects.Length == 0 || defaultTagsMode == DefaultTagsMode.Constant) + { + foreach(var element in defaultRegions) + { + element.region.OpenNewRange(0, element.tagWords); + } + } + else + { + //for every character in the text + for (int startIndex = 0; startIndex < charactersCount; startIndex++) + { + //if the character has no effect of this category assigned + if (!IsCharacterInsideAnyEffect(startIndex, currentEffects)) + { + //opens new range for default effects + foreach (var element in defaultRegions) + { + //add the default effect to the character + //TODO performance can be improved by caching modifiers + element.region.OpenNewRange(startIndex, element.tagWords); + } + + //until there are characters that are not inside this category + int endIndex = startIndex + 1; + for (; endIndex < charactersCount; endIndex++) + { + if (IsCharacterInsideAnyEffect(endIndex, currentEffects)) + { + break; + } + } + + //closes new range for default effects + foreach (var element in defaultRegions) + { + element.region.TryClosingRange(endIndex); + } + + startIndex = endIndex; + } + } + } + + //adds the default regions to the current effects + int prevCount = currentEffects.Length; + System.Array.Resize(ref currentEffects, currentEffects.Length + defaultRegions.Count); + for(int i = 0; i < defaultRegions.Count; i++) + { + currentEffects[prevCount + i] = defaultRegions[i].region; + } + } + + #endregion + + TryInitializing(); + + requiresTagRefresh = false; + _text = textToParse; + + settings = TextAnimatorSettings.Instance; + if (!settings) + { + charactersCount = 0; + Debug.LogError("Text Animator Settings not found. Skipping setting the text to Text Animator."); + return; + } + + // Uses default database from settings + if (useDefaultDatabases) + { + databaseBehaviors = settings.behaviors.defaultDatabase; + databaseAppearances = settings.appearances.defaultDatabase; + databaseActions = settings.actions.defaultDatabase; + } + + + var ruleBehavior = new AnimationParser(settings.behaviors.openingSymbol, '/', settings.behaviors.closingSymbol, VisibilityMode.Persistent, databaseBehaviors); + var ruleAppearance = new AnimationParser(settings.appearances.openingSymbol, '/', settings.appearances.closingSymbol, VisibilityMode.OnVisible, databaseAppearances); + var ruleDisappearance = new AnimationParser(settings.appearances.openingSymbol, '/', '#', settings.appearances.closingSymbol, VisibilityMode.OnHiding, databaseAppearances); + ActionParser ruleActions = new ActionParser(settings.actions.openingSymbol, '/', settings.actions.closingSymbol, databaseActions); + EventParser ruleEvents = new EventParser('<', '/', '>'); + + //TODO optimize + var parsers = new System.Collections.Generic.List() + { + ruleBehavior, + ruleAppearance, + ruleDisappearance, + ruleActions, + ruleEvents + }; + + foreach (var extraParser in GetExtraParsers()) + { + parsers.Add(extraParser); + } + + //Convert text in tags, mesh etc. + textWithoutTextAnimTags = TextParser.ParseText(_text, parsers.ToArray()); + + //Set converted text to source + SetTextToSource(textWithoutTextAnimTags); + textWithoutAnyTag = GetStrippedTextFromSource(); + charactersCount = GetCharactersCount(); + + //Assigns results + behaviors = ruleBehavior.results; + appearances = ruleAppearance.results; + disappearances = ruleDisappearance.results; + actions = ruleActions.results; + events = ruleEvents.results; + + //Adds fallback effects to characters that have no effect assigned + AddFallbackEffectsFor(ref behaviors, VisibilityMode.Persistent,databaseBehaviors, defaultBehaviorsTags); + AddFallbackEffectsFor(ref appearances, VisibilityMode.OnVisible, databaseAppearances, defaultAppearancesTags); + AddFallbackEffectsFor(ref disappearances, VisibilityMode.OnHiding, databaseAppearances, defaultDisappearancesTags); + + //Initializes only animations that are being used + foreach (var behavior in behaviors) behavior.animation.InitializeOnce(); + foreach (var appearance in appearances) appearance.animation.InitializeOnce(); + foreach (var disappearance in disappearances) disappearance.animation.InitializeOnce(); + + //Prepares Characters + PopulateCharacters(); + CopyMeshFromSource(ref characters); + CalculateWords(); + + switch(showTextMode) + { + case ShowTextMode.Hidden: + HideAllCharactersTime(); + break; + + case ShowTextMode.Shown: + ShowCharacterTimes(); + break; + + //user is typing, the latest letter has time reset + case ShowTextMode.UserTyping: + ShowCharacterTimes(); + if (charactersCount > 1) + { + HideCharacterTime(charactersCount - 1); + characters[charactersCount - 1].isVisible = true; + } + break; + + case ShowTextMode.Refresh: + //Does nothing + break; + } + + _maxVisibleCharacters = charactersCount; + + // Makes sure deltaTime is updated instantly, as user might change the timeScale on the same frame as the + // text is set (or even at Start/Awake) and typewriters might detect deltaTime of 0 and skip showing the text + time.UpdateDeltaTime(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + + if(isResettingTimeOnNewText && showTextMode != ShowTextMode.Refresh) + time.RestartTime(); + } + + /// + /// Sets the text to Text Animator, parsing its rich text tags. + /// + /// Full text that you want to paste, including rich text tags. + /// This method shows the text instantly. To control if it should be hidden instead, please see . + public void SetText(string text) => ConvertText(text, ShowTextMode.Shown); + /// + /// Sets the text to Text Animator, parsing its rich text tags. + /// + /// + /// + public void SetText(string text, bool hideText) => ConvertText(text, hideText ? ShowTextMode.Hidden : ShowTextMode.Shown); + + //TODO optimize, only add new stuff without recalculating text + /// + /// Adds text to the already existing one, parsing its rich text tags. + /// + /// New text that you want to append + /// + public void AppendText(string appendedText, bool hideText = false) + { + //Prevents appending an empty text + if (string.IsNullOrEmpty(appendedText)) + return; + + //The user is appending to an empty text + //so we set it instead + if (!hasText) + { + SetText(appendedText, hideText); + return; + } + + bool previousResettingTime = isResettingTimeOnNewText; + isResettingTimeOnNewText = false; + + int currentMax = maxVisibleCharacters; + int currentFirst = firstVisibleCharacter; + SetText(textFull + appendedText, hideText); + + //restores visibility + isResettingTimeOnNewText = previousResettingTime; + maxVisibleCharacters = currentMax; + firstVisibleCharacter = currentFirst; + for (int i = firstVisibleCharacter; i < maxVisibleCharacters; i++) + { + characters[i].isVisible = true; + characters[i].passedTime = characters[i].info.appearancesMaxDuration; + } + } + + void SetTypewriterText(string text) + { + //temp fix, opening and closing this TMPro tag (which won't be showed in the text, acting like they aren't there) because otherwise + //there isn't any way to trigger that the text has changed, if it's actually the same as the previous one. + if (text.Length <= 0) //forces clearing the mesh during the tempFix, without the tags + typewriter.ShowText(""); + else + typewriter.ShowText($"{text}"); + } + + //TODO TEST + /// + /// Sets a character visibility. + /// + /// Character's index. See and the array. + /// Controls if the character should be visible + public void SetVisibilityChar(int index, bool isVisible) + { + if(index<0 ||index>=charactersCount) return; + characters[index].isVisible = isVisible; + if (isVisible) latestCharacterShown = characters[index]; + } + + //TODO TEST + /// + /// Sets a word visibility. + /// + /// Word's index. See and the array. + /// Controls if the word should be visible + public void SetVisibilityWord(int index, bool isVisible) + { + if(index<0 || index >= wordsCount) return; + + WordInfo word = words[index]; + for (int i = Mathf.Max(word.firstCharacterIndex, 0); i <= word.lastCharacterIndex && i < charactersCount; i++) + { + SetVisibilityChar(i, isVisible); + } + } + + + //TODO Test + /// + /// Sets the visibility of the entire text, also allowing to play or skip effects. + /// + /// + /// + public void SetVisibilityEntireText(bool isVisible, bool canPlayEffects = true) + { + for (int i = 0; i < charactersCount; i++) + { + SetVisibilityChar(i, isVisible); + } + + if (!canPlayEffects) + { + if (isVisible) + { + for (int i = 0; i < charactersCount;i++) + { + characters[i].passedTime = characters[i].info.appearancesMaxDuration; + } + } + else + { + for (int i = 0; i < charactersCount;i++) + { + characters[i].passedTime = 0; + } + } + } + } + + #endregion + + #region Typing + int _firstVisibleCharacter; + /// + /// Handles the very first character allowed to be visible in the text. + /// + /// + /// Be aware that in order to visible, a character also needs to also have its own "visible" flag set to true. See and + /// + public int firstVisibleCharacter + { + get => _firstVisibleCharacter; + set => _firstVisibleCharacter = value; + } + + int _maxVisibleCharacters = 0; + /// + /// Handles the very last character allowed to be visible in the text. + /// + /// + /// Be aware that in order to visible, a character also needs to also have its own "visible" flag set to true. See and + /// + public int maxVisibleCharacters + { + get => _maxVisibleCharacters; + set + { + if (_maxVisibleCharacters == value) return; + + _maxVisibleCharacters = value; + + //clamps value + if (_maxVisibleCharacters < 0) + _maxVisibleCharacters = 0; + } + } + + + #endregion + + + #region Animation + private void Update() + { + if(!IsReady()) return; + + //--Easy Integration checks-- + if(HasChangedText(textWithoutTextAnimTags)) + { + if(typewriterStartsAutomatically && typewriter) + { + SetTypewriterText(GetOriginalTextFromSource()); + return; + } + + ConvertText(GetOriginalTextFromSource(), ShowTextMode.UserTyping); + return; + } + + //--Animates in Core Loop-- + if (animationLoop == AnimationLoop.Update) + Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + } + + void LateUpdate() + { + if (animationLoop == AnimationLoop.LateUpdate) + Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + } + + protected abstract bool IsReady(); + + /// + /// Proceeds the text animation with the given deltaTime value. + /// + /// + /// + /// You could use this if is set to and you want to control when to animate the text. + /// + public void Animate(float deltaTime) + { + if(!IsReady()) return; + + if(requiresTagRefresh) + ConvertText(_text, ShowTextMode.Refresh); + + time.UpdateDeltaTime(deltaTime); + time.IncreaseTime(); + + AnimateText(); + } + + #region Processing Regions + + bool IsCharacterAppearing(int i) => + i >= _firstVisibleCharacter && i < _maxVisibleCharacters && characters[i].isVisible; + + void ProcessAnimationRegions(AnimationRegion[] regions) + { + foreach (var region in regions) + { + foreach (var range in region.ranges) + { + region.SetupContextFor(this, range.modifiers); //TODO index instead of passing modifier by value + + for (int i = range.indexes.x; i < range.indexes.y && i < charactersCount; i++) + { + if(characters[i].passedTime<=0) continue; + if(!region.IsVisibilityPolicySatisfied(IsCharacterAppearing(i))) continue; + + if(region.animation.CanApplyEffectTo(characters[i], this)) + region.animation.ApplyEffectTo(ref characters[i], this); + } + } + } + } + + #endregion + + /// + /// Main loop + /// + void AnimateText() + { + //no text, skips + if (!hasText) return; + + TryInitializing(); //called here as well since this might be called from outside + + //Prepare characters + for(int i = 0; i < charactersCount && icharacters[i].info.disappearancesMaxDuration) + characters[i].passedTime = characters[i].info.disappearancesMaxDuration; + else + characters[i].passedTime -= time.deltaTime; + + if (characters[i].passedTime <= 0) // "<=" to force hiding characters when TimeScale = 0 + { + characters[i].passedTime = 0; + characters[i].Hide(); + } + } + } + + UpdateUniformIntensity(); + + //Processes animations + //PS Order is important + if (isAnimatingBehaviors && settings.behaviors.enabled) + { + ProcessAnimationRegions(behaviors); + } + + if (isAnimatingAppearances && settings.appearances.enabled) + { + ProcessAnimationRegions(appearances); + ProcessAnimationRegions(disappearances); + } + + //updates source + PasteMeshToSource(characters); + + //checks for changes in the setting + if (requiresMeshUpdate || HasChangedRenderingSettings()) + { + ForceMeshUpdate(); + CopyMeshFromSource(ref characters); + } + } + + #endregion + + /// + /// Schedules that a mesh refresh is required as soon as possible, which will be applied before the next animation loop starts. + /// + public void ScheduleMeshRefresh() => requiresMeshUpdate = true; + public void ForceDatabaseRefresh() + { + if(DatabaseActions) DatabaseActions.ForceBuildRefresh(); + if(DatabaseAppearances) DatabaseAppearances.ForceBuildRefresh(); + if(DatabaseBehaviors) DatabaseBehaviors.ForceBuildRefresh(); + + ConvertText(GetOriginalTextFromSource(), ShowTextMode.Refresh); + } + + /// + /// Enables or disables behavior effects animation *LOCALLY* on this Text Animator component. + /// To change this globally, see + /// + /// + public void SetBehaviorsActive(bool isCategoryEnabled) => isAnimatingBehaviors = isCategoryEnabled; + + /// + /// Enables or disables appearance effects animation *LOCALLY* on this Text Animator component. + /// To change this globally, see + /// + /// + public void SetAppearancesActive(bool isCategoryEnabled) => isAnimatingAppearances = isCategoryEnabled; + + #region Callbacks + + protected virtual void OnEnable() // things might have changed when disabled, e.g. autoSize etc. + { + requiresMeshUpdate = true; + AnimateText(); + } + #endregion + + public void ResetState() + { + _text = string.Empty; + textWithoutTextAnimTags = string.Empty; + textWithoutAnyTag = string.Empty; + charactersCount = 0; + wordsCount = 0; + initialized = false; + TryInitializing(); + } + + + + #region Obsolete + // Just for compatibility with older versions + + [Obsolete("Use TextAnimatorSettings.SetAllEffectsActive instead")] + public static void EnableAllEffects(bool enabled) => TextAnimatorSettings.SetAllEffectsActive(enabled); + + [Obsolete("Use TextAnimatorSettings.SetAppearancesActive instead")] + public static void EnableAppearances(bool enabled) => TextAnimatorSettings.SetAppearancesActive(enabled); + + [Obsolete("Use TextAnimatorSettings.SetBehaviorsActive instead")] + public static void EnableBehaviors(bool enabled) => TextAnimatorSettings.SetBehaviorsActive(enabled); + + + [Obsolete("Use SetAppearancesActive instead")] + public void EnableAppearancesLocally(bool value) => SetAppearancesActive(value); + + [Obsolete("Use SetBehaviorsActive instead")] + public void EnableBehaviorsLocally(bool value) => SetBehaviorsActive(value); + + + /// + /// Turns all characters visible at the end of the frame (i.e. "a typewriter skip") + /// + /// Set this to true if you want all letters to appear instantly (without any appearance effect) + [System.Obsolete("Use SetVisibilityEntireText instead")] + public void ShowAllCharacters(bool skipAppearanceEffects) => SetVisibilityEntireText(true, skipAppearanceEffects); + + [System.Obsolete("Use 'Animate' instead.")] + public void UpdateEffects() => Animate(timeScale == TimeScale.Unscaled ? Time.unscaledDeltaTime : Time.deltaTime); + + [System.Obsolete("Events are not tied to TextAnimators anymore, but to their Typewriters. Please invoke 'TriggerRemainingEvents' on the Typewriter component instead.")] + public void TriggerRemainingEvents() + { + if(typewriter) typewriter.TriggerRemainingEvents(); + } + + [System.Obsolete( + "Events are not tied to TextAnimators anymore, but to their related typewriters. Please invoke 'TriggerVisibleEvents' on the Typewriter component instead.")] + public void TriggerVisibleEvents() + { + if(typewriter) typewriter.TriggerVisibleEvents(); + } + + [System.Obsolete("Use 'ScheduleMeshRefresh' instead")] + public void ForceMeshRefresh() => ScheduleMeshRefresh(); + + + [System.Obsolete("To restart TextAnimator's time, please use 'time.RestartTime()'. To skip appearances effects please set 'SetVisibilityEntireText(true, false)' instead")] + public void ResetEffectsTime(bool skipAppearances) + { + time.RestartTime(); + + if(skipAppearances) SetVisibilityEntireText(true, false); + } + + [System.Obsolete("Please use 'isResettingTimeOnNewText' instead")] + public bool isResettingEffectsOnNewText => isResettingTimeOnNewText; + + [System.Obsolete("Please use 'animationLoop' instead")] + public AnimationLoop updateMode => animationLoop; + + [System.Obsolete("Events are now handled/stored by Typewriters instead.")] + public MessageEvent onEvent => typewriter.onMessage; + + [System.Obsolete("Please use TextAnimatorSettings.Instance.appearances.enabled instead")] + public static bool effectsAppearancesEnabled => TextAnimatorSettings.Instance.appearances.enabled; + + [System.Obsolete("Please use TextAnimatorSettings.Instance.behaviors.enabled instead")] + public static bool effectsBehaviorsEnabled => TextAnimatorSettings.Instance.behaviors.enabled; + + [System.Obsolete("Please use 'textFull' instead")] + public string text => textFull; + + [System.Obsolete("Please change 'referenceFontSize' instead")] + public float effectIntensityMultiplier + { + get => referenceFontSize; + set => referenceFontSize = value; + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta new file mode 100644 index 0000000..4fbeb25 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TAnimCore.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1ef08882d835b14448c3919401c5a566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs new file mode 100644 index 0000000..8868002 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs @@ -0,0 +1,35 @@ +namespace Febucci.UI +{ + /// + /// Contains TextAnimator's current time values. + /// + [System.Serializable] + public struct TimeData + { + /// + /// Time passed since the textAnimator started showing the very first letter + /// + public float timeSinceStart { get; private set; } + + /// + /// TextAnimator's Component delta time, could be Scaled or Unscaled + /// + public float deltaTime { get; private set; } + + public void RestartTime() + { + timeSinceStart = 0; + } + + internal void IncreaseTime() => timeSinceStart += deltaTime; + + internal void UpdateDeltaTime(float deltaTime) + { + this.deltaTime = deltaTime; + + //To avoid possible desync errors etc., effects can't be played backwards. + if (deltaTime < 0) + deltaTime = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta new file mode 100644 index 0000000..a68662d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7d512b128eb34fbbbfb3d7ddd5a07900 +timeCreated: 1672434698 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs new file mode 100644 index 0000000..03867cb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs @@ -0,0 +1,11 @@ +namespace Febucci.UI +{ + /// + /// TextAnimator's effects time scale, which could match unity's Time.deltaTime or Time.unscaledDeltaTime + /// + public enum TimeScale + { + Scaled, + Unscaled, + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta new file mode 100644 index 0000000..aaa5b99 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Animator/_Core/TimeScale.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7750818052bf43bdbdf9cf58aecedb0e +timeCreated: 1672434664 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta new file mode 100644 index 0000000..da8aff2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11c8bab48f67f694281dd60b75bd1e39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta new file mode 100644 index 0000000..df5be13 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebf5cc3c746f24542ba634e1b83b8b9b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs new file mode 100644 index 0000000..4adbbf6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs @@ -0,0 +1,86 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Built-in typewriter, which shows letters dynamically character after character.
+ /// To enable it, add this component near a one
+ /// - Base class:
+ /// - Manual: TextAnimatorPlayers + ///
+ [HelpURL("https://www.febucci.com/text-animator-unity/docs/typewriters/")] + [AddComponentMenu("Febucci/TextAnimator/Typewriter - By Character")] + public class TypewriterByCharacter : Core.TypewriterCore + { + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for normal letters")] public float waitForNormalChars = .03f; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for ! ? .")] public float waitLong = .6f; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for ; : ) - ,")] public float waitMiddle = .2f; + [SerializeField, Tooltip("-True: only the last punctuaction on a sequence waits for its category time.\n-False: each punctuaction will wait, regardless if it's in a sequence or not")] public bool avoidMultiplePunctuactionWait = false; + + [SerializeField, Tooltip("True if you want the typewriter to wait for new line characters")] public bool waitForNewLines = true; + + [SerializeField, Tooltip("True if you want the typewriter to wait for all characters, false if you want to skip waiting for the last one")] public bool waitForLastCharacter = true; + + [SerializeField, Tooltip("True if you want to use the same typewriter's wait times for the disappearance progression, false if you want to use a different wait time")] public bool useTypewriterWaitForDisappearances = true; + [SerializeField, Attributes.CharsDisplayTime, Tooltip("Wait time for characters in the disappearance progression")] float disappearanceWaitTime = .015f; + [SerializeField, Attributes.MinValue(0.1f), Tooltip("How much faster/slower is the disappearance progression compared to the typewriter's typing speed")] public float disappearanceSpeedMultiplier = 1; + + protected override float GetWaitAppearanceTimeOf(int charIndex) + { + char character = TextAnimator.Characters[charIndex].info.character; + + //avoids waiting for the last character + if (!waitForLastCharacter && TextAnimator.allLettersShown) + return 0; + + //avoids waiting for multiple times if there are puntuactions near each other + if (avoidMultiplePunctuactionWait && char.IsPunctuation(character)) //curr char is punctuation + { + //next char is punctuation too, so skips this one + if (charIndex < TextAnimator.CharactersCount - 1 + && char.IsPunctuation(TextAnimator.Characters[charIndex + 1].info + .character)) + { + return waitForNormalChars; + } + } + + //avoids waiting for new lines + if (!waitForNewLines && !TextAnimator.latestCharacterShown.info.isRendered) + { + bool IsUnicodeNewLine(ulong unicode) //Returns true if the unicode value represents a new line + { + return unicode == 10 || unicode == 13; + } + + //skips waiting for a new line + if (IsUnicodeNewLine(System.Convert.ToUInt64(TextAnimator.latestCharacterShown.info.character))) + return 0; //TODO test + } + + //character is not before another punctuaction + switch (character) + { + case ';': + case ':': + case ')': + case '-': + case ',': return waitMiddle; + + case '!': + case '?': + case '.': + return waitLong; + } + + return waitForNormalChars; + + } + + protected override float GetWaitDisappearanceTimeOf(int charIndex) + { + return useTypewriterWaitForDisappearances ? GetWaitAppearanceTimeOf(charIndex) * (1/disappearanceSpeedMultiplier) : disappearanceWaitTime; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta new file mode 100644 index 0000000..5ed860d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByCharacter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57a6945b90dcd0c4b81619c0d8b5c283 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs new file mode 100644 index 0000000..5fc2add --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs @@ -0,0 +1,49 @@ +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI +{ + /// + /// Built-in typewriter, which shows letters dynamically word after word.
+ /// To enable it, add this component near a one
+ /// - Base class:
+ /// - Manual: TextAnimatorPlayers + ///
+ [HelpURL("https://www.febucci.com/text-animator-unity/docs/typewriters/")] + [AddComponentMenu("Febucci/TextAnimator/Typewriter - By Word")] + public class TypewriterByWord: Core.TypewriterCore + { + [SerializeField, Attributes.CharsDisplayTime] public float waitForNormalWord = 0.3f; + [FormerlySerializedAs("waitForWordWithPuntuaction")] [SerializeField, Attributes.CharsDisplayTime] public float waitForWordWithPunctuation = 0.5f; + [SerializeField, Attributes.CharsDisplayTime] public float disappearanceDelay = 0.5f; + + bool IsCharInsideAnyWord(int charIndex) + { + return TextAnimator.Characters[charIndex].wordIndex >= 0; + } + + protected override float GetWaitAppearanceTimeOf(int charIndex) + { + if (!IsCharInsideAnyWord(charIndex) && TextAnimator.latestCharacterShown.index>0) + { + int latestWordShownIndex = TextAnimator.Characters[TextAnimator.latestCharacterShown.index-1].wordIndex; + if (latestWordShownIndex >= 0 && latestWordShownIndex < TextAnimator.WordsCount) + { + var word = TextAnimator.Words[latestWordShownIndex]; + return char.IsPunctuation(TextAnimator.Characters[word.lastCharacterIndex].info.character) + ? waitForWordWithPunctuation + : waitForNormalWord; + } + + return waitForNormalWord; + } + + return 0; + } + + protected override float GetWaitDisappearanceTimeOf(int charIndex) + { + return !IsCharInsideAnyWord(charIndex) ? disappearanceDelay : 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta new file mode 100644 index 0000000..a0db774 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/Built-in/TypewriterByWord.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb821b3a89e0240aa91c53955ccade89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta new file mode 100644 index 0000000..e3cc056 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56405348257d5434abae725e56e3ff2e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs new file mode 100644 index 0000000..71529e7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs @@ -0,0 +1,7 @@ +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + [System.Serializable] + public class CharacterEvent : UnityEvent { } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta new file mode 100644 index 0000000..8287bdb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/CharacterEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a35872b2f367498cb45631f5e243278e +timeCreated: 1679673138 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs new file mode 100644 index 0000000..e5319d8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs @@ -0,0 +1,8 @@ +using Febucci.UI.Core.Parsing; +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + [System.Serializable] + public class MessageEvent : UnityEvent { } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta new file mode 100644 index 0000000..2aa5d54 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/MessageEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 84fd57f550b545b2a6ad379e4d4ea3b9 +timeCreated: 1679673142 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs new file mode 100644 index 0000000..2a06771 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs @@ -0,0 +1,624 @@ +using System.Collections; +using System.Collections.Generic; +using Febucci.UI.Core.Parsing; +using UnityEngine; +using UnityEngine.Events; + +namespace Febucci.UI.Core +{ + /// + /// Base class for all Typewriters.
+ /// - Manual: Typewriters.
+ ///
+ /// + /// If you want to use the built-in Typewriter, see: or
+ ///
+ /// You can also create custom typewriters by inheriting from this class.
+ /// Manual: Writing Custom Typewriters (C#) + ///
+ [DisallowMultipleComponent] + [RequireComponent(typeof(Core.TAnimCore))] + public abstract class TypewriterCore : MonoBehaviour + { + [System.Flags] + public enum StartTypewriterMode + { + /// + /// Typewriter starts typing ONLY if you invoke "StartShowingText" from any of your script. + /// + FromScriptOnly = 0, + + /// + /// Typewriter automatically starts/resumes from the "OnEnable" method + /// + OnEnable = 1, + + /// + /// Typewriter automatically starts once you call "ShowText" method [includes Easy Integration] + /// + OnShowText = 2, + + AutomaticallyFromAllEvents = OnEnable | OnShowText //legacy support for unity 2018.x [instead of automatic recognition in 2019+] + } + + #region Variables + + #region Management Variables + + TAnimCore _textAnimator; + + /// + /// The TextAnimator Component linked to this typewriter + /// + public TAnimCore TextAnimator + { + get + { + if (_textAnimator != null) + return _textAnimator; + +#if UNITY_2019_2_OR_NEWER + if(!TryGetComponent(out _textAnimator)) + { + Debug.LogError($"TextAnimator: Text Animator component is null on GameObject {gameObject.name}. Please add a component that inherits from TAnimCore"); + } +#else + _textAnimator = GetComponent(); + Assert.IsNotNull(_textAnimator, $"Text Animator Component component is null on GameObject {gameObject.name}. Please add a component that inherits from TAnimCore"); +#endif + + return _textAnimator; + } + } + + #endregion + + #region Typewriter settings + /// + /// true if the typewriter is enabled + /// + [Tooltip("True if you want to shows the text dynamically")] + [SerializeField] public bool useTypeWriter = true; + + [SerializeField, Tooltip("Controls from which method(s) the typewriter will automatically start/resume. Default is 'Automatic'")] + public StartTypewriterMode startTypewriterMode = StartTypewriterMode.AutomaticallyFromAllEvents; + + #region Typewriter Skip + [SerializeField] + bool hideAppearancesOnSkip = false; + [SerializeField, Tooltip("True = plays all remaining events once the typewriter has been skipped")] + bool triggerEventsOnSkip = false; + #endregion + + + [SerializeField, Tooltip("True = resets the typewriter speed every time a new text is set/shown")] public bool resetTypingSpeedAtStartup = true; + + public enum DisappearanceOrientation + { + /// + /// Linear left to right (or right to left based on the text's direction) + /// + SameAsTypewriter = 0, + + /// + /// Opposite direction of the typewriter + /// + Inverted = 1, + + /// + /// Hides letters randomly from start to finish + /// + Random = 2, + } + + [SerializeField] public DisappearanceOrientation disappearanceOrientation; + + #endregion + + #endregion + + #region Events + /// + /// Called once the text is completely shown.
+ /// If the typewriter is enabled, this event is called once it has ended showing all letters. + ///
+ public UnityEvent onTextShowed = new UnityEvent(); + + /// + /// Called once the typewriter starts showing text.
+ ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public UnityEvent onTypewriterStart = new UnityEvent(); + + /// + /// Called once the typewriter has completed hiding all the letters. + /// + /// + /// It is only invoked when the typewriter is enabled. + /// + public UnityEvent onTextDisappeared = new UnityEvent(); + + /// + /// Called once a character has been shown by the typewriter.
+ ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public CharacterEvent onCharacterVisible = new CharacterEvent(); + + + ///
+ /// + /// It is only invoked when the typewriter is enabled. + /// + public MessageEvent onMessage = new MessageEvent(); + #endregion + + #region Public Methods + + /// + /// Sets the given text to the connected TextAnimator component.
+ /// If enabled, it also starts showing letters dynamically.
+ /// - Manual: Text Animator Players + ///
+ /// + /// + /// If the typewriter is enabled but its start mode doesn't include , this method won't start showing letters. You'd have to manually call in order to start the typewriter, or include different "start modes" like and let the script manage it automatically. + /// + public void ShowText(string text) + { + // --- SETS TEXT --- + if (string.IsNullOrEmpty(text)) + { + TextAnimator.SetText(string.Empty, true); + return; + } + + TextAnimator.SetText(text, useTypeWriter); + TextAnimator.firstVisibleCharacter = 0; + + // --- TYPEWRITER --- + if (!useTypeWriter) + onTextShowed?.Invoke(); + else if (startTypewriterMode.HasFlag(StartTypewriterMode.OnShowText)) + StartShowingText(true); + } + + + /// + /// Skips the typewriter animation (if it's currently showing).
+ /// In case the text is revealing, it will show all the letters immediately.
+ /// In case the text is hiding, it will hide all the letters immediately. + ///
+ /// + /// If both revealing and hiding are occurring, hiding will prevail. + /// + public void SkipTypewriter() + { + if (isShowingText) + { + StopAllCoroutines(); + isShowingText = false; + + TextAnimator.SetVisibilityEntireText(true, !hideAppearancesOnSkip); + + if (triggerEventsOnSkip) + { + TriggerEventsUntil(int.MaxValue); + } + + onTextShowed?.Invoke(); + } + + //TODO is hiding + + } + + + #region Typewriter + + #region Appearing + + /// + /// True if the typewriter is currently showing letters + /// + public bool isShowingText { get; private set; } + + /// + /// Starts showing letters dynamically + /// + /// false if you want the typewriter to resume where it has left. true if the typewriter should restart from character 0 + public void StartShowingText(bool restart = false) + { + if(TextAnimator.CharactersCount==0) return; + + if (!useTypeWriter) + { + Debug.LogWarning("TextAnimator: couldn't start coroutine because 'useTypewriter' is disabled"); + return; + } + + if (isShowingText) + { + StopShowingText(); + } + + if (restart) + { + TextAnimator.SetVisibilityEntireText(false, false); + latestActionTriggered = 0; + latestEventTriggered = 0; + } + + if (resetTypingSpeedAtStartup) internalSpeed = 1; + isShowingText = true; + showRoutine = StartCoroutine(ShowTextRoutine()); + } + + protected abstract float GetWaitAppearanceTimeOf(int charIndex); + + Coroutine showRoutine; + Coroutine nestedActionRoutine; + + float GetDeltaTime(TypingInfo typingInfo) => TextAnimator.time.deltaTime * internalSpeed * typingInfo.speed; + IEnumerator ShowTextRoutine() + { + isShowingText = true; + + // --- INITIALIZATION --- + TypingInfo typingInfo = new TypingInfo(); + + // --- CALLBACKS --- + onTypewriterStart?.Invoke(); + + TextAnimatorSettings settings = TextAnimatorSettings.Instance; + bool actionsEnabled = settings && settings.actions.enabled; + + // --- SHOWS TEXT LETTERS --- + for(int i=0;i= deltaTime) //waits only if we "surpassed" a frame duration + { + yield return null; + //saves remaining time to next frame as already waited time + typingInfo.timePassed %= deltaTime; + } + } + else + { + //waits until enough time has passed + while (typingInfo.timePassed < timeToWait) + { + typingInfo.timePassed += deltaTime; + yield return null; + deltaTime = GetDeltaTime(typingInfo); + } + + typingInfo.timePassed %= timeToWait; //saves remaining time to next frame + } + } + + // --- FINALIZATION --- + if (actionsEnabled) + { + for (int a = latestActionTriggered; a < TextAnimator.Actions.Length && TextAnimator.Actions[a].index + /// Stops showing letters dynamically, leaving the text as it is. + /// + public void StopShowingText() + { +#if UNITY_EDITOR + if (!Application.isPlaying) //prevents from firing in edit mode from the context menu + return; +#endif + if(!isShowingText) return; + isShowingText = false; + + if(showRoutine!=null) StopCoroutine(showRoutine); + if(nestedActionRoutine!=null) StopCoroutine(nestedActionRoutine); + } + + #endregion + + #region Disappearing + + /// + /// True if the typewriter is currently disappearing the text + /// + public bool isHidingText { get; private set; } + + /// + /// Starts disappearing the text dynamically + /// + [ContextMenu("Start Disappearing Text")] + public void StartDisappearingText() + { + if (disappearanceOrientation == DisappearanceOrientation.Inverted && isShowingText) + { + Debug.LogWarning("TextAnimatorPlayer: Can't start disappearance routine in the opposite direction of the typewriter, because you're still showing the text! (the typewriter might get stuck trying to show and override letters that keep disappearing)"); + return; + } + + if(isHidingText) return; + hideRoutine = StartCoroutine(HideTextRoutine()); + } + + Coroutine hideRoutine; + Coroutine nestedHideRoutine; + /// + /// Stops the typewriter's from disappearing the text dynamically, leaving the text at its current state + /// + [ContextMenu("Stop Disappearing Text")] + public void StopDisappearingText() + { + if(!isHidingText) return; + isHidingText = false; + + if(hideRoutine!=null)StopCoroutine(hideRoutine); + if(nestedHideRoutine!=null)StopCoroutine(nestedHideRoutine); + } + + /// + /// Handles characters delay when disappearing text. + /// + /// Current character that should decide how much time to wait. Check to view its info + /// time to wait before disappearing the next character + protected virtual float GetWaitDisappearanceTimeOf(int charIndex) => GetWaitAppearanceTimeOf(charIndex); + + static int[] ShuffleArray(int[] array) + { + var rng = new System.Random(); + var n = array.Length; + while (n > 1) + { + var k = rng.Next(n--); + (array[n], array[k]) = (array[k], array[n]); + } + + return array; + } + + IEnumerator HideTextRoutine() + { + isHidingText = true; + + // --- INITIALIZATION --- + TypingInfo typingInfo = new TypingInfo(); + + // Chooses the order in which the letters will disappear + int[] indexes = new int[TextAnimator.CharactersCount]; + switch (disappearanceOrientation) + { + default: + case DisappearanceOrientation.SameAsTypewriter: //disappears from the end + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = i; + break; + case DisappearanceOrientation.Inverted: + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = TextAnimator.CharactersCount - i - 1; + break; + + case DisappearanceOrientation.Random: + for (int i = 0; i < TextAnimator.CharactersCount; i++) indexes[i] = i; + indexes = ShuffleArray(indexes); + break; + } + + // --- CALLBACKS --- + + // --- HIDES TEXT --- + for (int i = 0; i < TextAnimator.CharactersCount; i++) + { + int indexToHide = indexes[i]; + if(!TextAnimator.Characters[indexToHide].isVisible) continue; + + TextAnimator.SetVisibilityChar(indexToHide, false); + float timeToWait = GetWaitDisappearanceTimeOf(indexToHide); + + // -- WAITS TIME -- (identical to ShowTextRoutine, in order to skip frames correctly) + float deltaTime = GetDeltaTime(typingInfo); + if (timeToWait < 0) timeToWait = 0; + if (timeToWait < deltaTime) //waiting less time than a frame, we don't wait yet + { + typingInfo.timePassed += timeToWait; + if (typingInfo.timePassed >= deltaTime) //waits only if we "surpassed" a frame duration + { + yield return null; + //saves remaining time to next frame as already waited time + typingInfo.timePassed %= deltaTime; + } + } + else + { + //waits until enough time has passed + while (typingInfo.timePassed < timeToWait) + { + typingInfo.timePassed += deltaTime; + yield return null; + deltaTime = GetDeltaTime(typingInfo); + } + + typingInfo.timePassed %= timeToWait; //saves remaining time to next frame + } + } + + // --- CALLBACKS --- + onTextDisappeared?.Invoke(); + isHidingText = false; + } + + #endregion + + /// + /// Makes the typewriter slower/faster, by setting its internal speed multiplier. + /// + /// + /// + /// If the typewriter has to wait 1 second to show the next letter but you set the typewriter speed to 2, the typewriter will wait 0.5 seconds. + /// + /// + /// The minimum value is 0.001 + /// + public void SetTypewriterSpeed(float value) + { + internalSpeed = Mathf.Clamp(value, .001f, value); + } + + #endregion + + #endregion + + + #region Utilties + + float internalSpeed = 1; + + #region Actions and Events + + int latestActionTriggered = 0; + int latestEventTriggered = 0; + + void TriggerEventsBeforeAction(int maxIndex, ActionMarker action) + { + for (int i = latestEventTriggered; i < TextAnimator.Events.Length && TextAnimator.Events[i].index + /// Triggers all messages/events that have not yet been triggered, even if they're not shown in the yet. + /// + /// + /// + /// + public void TriggerRemainingEvents() => TriggerEventsUntil(int.MaxValue); + + /// + /// Triggers all messages/events that have not been triggered, but that are in the visible range of the text. + /// + /// + /// + /// + public void TriggerVisibleEvents() => TriggerEventsUntil(TextAnimator.latestCharacterShown.index); + #endregion + + #endregion + + + /// + /// Unity's default MonoBehavior 'OnEnable' callback. + /// + /// + /// P.S. If you're overriding this method, don't forget to invoke the base one. + /// + protected virtual void OnEnable() + { + if (!useTypeWriter) + return; + + if (!startTypewriterMode.HasFlag(StartTypewriterMode.OnEnable)) + return; + + StartShowingText(); + } + + /// + /// Unity's default MonoBehavior 'OnDisable' callback. + /// + /// + /// P.S. If you're overriding this method, don't forget to invoke the base one. + /// + protected virtual void OnDisable() + { + // for backwards compatibility + } + + #region Obsolete + + [System.Obsolete("Please set the speed through 'SetTypewriterSpeed' method instead")] + protected float typewriterPlayerSpeed + { + get => internalSpeed; + set => SetTypewriterSpeed(value); + } + + [System.Obsolete("Please skip the typewriter via the 'SkipTypewriter' method instead")] + protected bool wantsToSkip + { + get => throw new System.NotImplementedException(); + set + { + if(value) SkipTypewriter(); + } + } + + [System.Obsolete("Please use 'isShowingText' instead")] + protected bool isBaseInsideRoutine => isShowingText; + + + [System.Obsolete("Please use 'TextAnimator' instead")] + public TAnimCore textAnimator => TextAnimator; + + #endregion + + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta new file mode 100644 index 0000000..d42cae2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypewriterCore.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac6b0a2b8ddbab342ad54b5409ccffec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs new file mode 100644 index 0000000..7634772 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs @@ -0,0 +1,18 @@ +namespace Febucci.UI.Core +{ + /// + /// A way to store information about the typing progress between coroutines, + /// also allowing to keep track of time between frames and characters/words showed + /// + public class TypingInfo + { + public float speed = 1; + public float timePassed { get; internal set; } = 0; + + public TypingInfo() + { + this.speed = 1; + this.timePassed = 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta new file mode 100644 index 0000000..47f4f8d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Components/Typewriter/_Core/TypingInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 116f934309cb4a4fa084190dac6083f4 +timeCreated: 1679673152 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef new file mode 100644 index 0000000..928a28b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Febucci.TextAnimator.Runtime", + "rootNamespace": "", + "references": [ + "GUID:448b0b55421917e4784a8f2f7449081f" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta new file mode 100644 index 0000000..86c6ef3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Febucci.TextAnimator.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e113d3b5d77bc04eab508251483e8ff +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta new file mode 100644 index 0000000..01481e2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b82ca89fa6e4443c184b6c6a988ce125 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta new file mode 100644 index 0000000..4ccee7b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bae97d779d1a5423bbb8446fc2e88fc6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta new file mode 100644 index 0000000..565b724 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ba7e1fc9cc234e52bea0b6e3765e563 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs new file mode 100644 index 0000000..14345f0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs @@ -0,0 +1,11 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "ActionDatabase", menuName = "Text Animator/Actions/Create Actions Database", order = 100)] + public class ActionDatabase : Core.Database + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta new file mode 100644 index 0000000..1f2cb2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionDatabase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 975089f62a0f141b0b6c1e96bb49c873 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs new file mode 100644 index 0000000..9834e69 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs @@ -0,0 +1,10 @@ +namespace Febucci.UI.Core.Parsing +{ + /// + /// Contains information about an action tag in text. + /// + public sealed class ActionMarker : MarkerBase + { + public ActionMarker(string name, int index, int internalOrder, string[] parameters) : base(name, index, internalOrder, parameters) { } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta new file mode 100644 index 0000000..53655c3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionMarker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 88dd2b2ee4cae41c1ab322d46fc27c51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs new file mode 100644 index 0000000..4de3d2d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs @@ -0,0 +1,62 @@ +using System.Text; +using Febucci.UI.Actions; + +namespace Febucci.UI.Core.Parsing +{ + public sealed class ActionParser : TagParserBase + { + public ActionDatabase database; + + //--- RESULTS --- + ActionMarker[] _results; + public ActionMarker[] results => _results; //TODO cache + + public ActionParser(char startSymbol, char closingSymbol, char endSymbol, ActionDatabase actionDatabase) + : base(startSymbol, closingSymbol, endSymbol) + { + this.database = actionDatabase; + } + + protected override void OnInitialize() + { + base.OnInitialize(); + _results = new ActionMarker[0]; + if(database) database.BuildOnce(); + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!database) + return false; + + database.BuildOnce(); + //gets the name of the action from the tag + //if there's an equal sign, it means there are parameters + int equalIndex = textInsideBrackets.IndexOf('='); + string actionName = equalIndex == -1 ? textInsideBrackets : textInsideBrackets.Substring(0, equalIndex); + actionName = actionName.ToLower(); //action names are case insensitive + + if (!database.ContainsKey(actionName)) return false; //skips unrecognized tags + + //Creates a new action + ActionMarker textAction; + + //If the action has parameters + if(equalIndex != -1) + { + string parameters = textInsideBrackets.Substring(equalIndex + 1); + textAction = new ActionMarker(actionName, realTextIndex, internalOrder, parameters.Replace(" ", "").Split(',')); + } + else + { + textAction = new ActionMarker(actionName, realTextIndex, internalOrder, new string[0]); + } + + //adds action to results + System.Array.Resize(ref _results, _results.Length + 1); + _results[_results.Length - 1] = textAction; + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta new file mode 100644 index 0000000..0d9e061 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Actions/ActionParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4b6593795a37f4d9ea045b10d92ce442 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta new file mode 100644 index 0000000..56ce640 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4267f6f185ce4a81aa5e74e70e8696e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs new file mode 100644 index 0000000..c16c625 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs @@ -0,0 +1,10 @@ +namespace Febucci.UI.Core.Parsing +{ + /// + /// Contains information about an event called in text + /// + public class EventMarker : Parsing.MarkerBase + { + public EventMarker(string name, int index, int internalOrder, string[] parameters) : base(name, index, internalOrder, parameters) { } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta new file mode 100644 index 0000000..c03f528 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventMarker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 07720fa0081784ae9aa4f33c20050078 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs new file mode 100644 index 0000000..df32a26 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs @@ -0,0 +1,52 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public class EventParser : TagParserBase + { + const char eventSymbol = '?'; + + public EventParser(char openingBracket, char closingBracket, char closingTagSymbol) + : base(openingBracket, closingBracket, closingTagSymbol){ } + + EventMarker[] _results; + + public EventMarker[] results => _results; + + protected override void OnInitialize() + { + base.OnInitialize(); + _results = new EventMarker[0]; + } + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + //If the first character is not the event symbol, skips + if (textInsideBrackets[0] != eventSymbol) + return false; + + //Creates a new event + EventMarker textEvent; + + //If the event has parameters + int indexOfEquals = textInsideBrackets.IndexOf('='); + if(indexOfEquals != -1) + { + string eventName = textInsideBrackets.Substring(1, indexOfEquals - 1); + string parameters = textInsideBrackets.Substring(indexOfEquals + 1); + + //TODO fast strip + textEvent = new EventMarker(eventName, realTextIndex, internalOrder, parameters.Replace(" ", "").Split(',')); + } + else + { + textEvent = new EventMarker(textInsideBrackets.Substring(1), realTextIndex, internalOrder, new string[0]); + } + + System.Array.Resize(ref _results, _results.Length + 1); + _results[_results.Length - 1] = textEvent; + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta new file mode 100644 index 0000000..bf44a41 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/Events/EventParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5992208bf6566454398999726c886d89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta new file mode 100644 index 0000000..251bc72 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2971a97a3d8c14f359a2a9b5d9db390e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs new file mode 100644 index 0000000..a420b03 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs @@ -0,0 +1,47 @@ +namespace Febucci.UI.Core.Parsing +{ + public abstract class MarkerBase : System.IComparable + { + public readonly string name; + public readonly int index; + internal readonly int internalOrder; + public string[] parameters; + + public MarkerBase(string name, int index, int internalOrder, string[] parameters) + { + this.name = name; + this.index = index; + this.internalOrder = internalOrder; + this.parameters = parameters; + } + + /// + /// Checks if a marker is placed before another in text. + /// PS. Checks for internal order, since when a letter is shown (character index) + /// there might be multiple events happening + /// + /// + /// + public int CompareTo(MarkerBase other) + { + return internalOrder.CompareTo(other.internalOrder); + } + + public override string ToString() + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + sb.Append(name); + sb.Append(" internal order:"); + sb.Append(internalOrder); + sb.Append(" index:"); + sb.Append(index); + sb.Append('\n'); + for (int i = 0; i < parameters.Length; i++) + { + sb.Append(parameters[i]); + sb.Append('\n'); + } + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta new file mode 100644 index 0000000..ffcafe7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Markers/_Core/MarkerBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b7eebc58c32445fd9af5a1b681b2266 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta new file mode 100644 index 0000000..6b8ded0 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5104e8d934da1497e8d56e84dcec2511 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta new file mode 100644 index 0000000..6c860d4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44576839baa2d4f7488e12a2f1ebbd1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs new file mode 100644 index 0000000..1d56d0a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs @@ -0,0 +1,115 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Febucci.UI.Effects; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Rules how to parse a rich text tag that has an opening and ending + /// + public class AnimationParser : TagParserBase where T : AnimationScriptableBase + { + //--- DATABASE --- + public Database database; + VisibilityMode visibilityMode; + char middleSymbol; + const char middleSymbolDefault = '\n'; //this will never be set... right? right??? + + //--- CONSTRUCTORS --- + public AnimationParser(char startSymbol, char closingSymbol, char endSymbol, VisibilityMode visibilityMode, Database database) : base(startSymbol, closingSymbol, endSymbol) + { + this.visibilityMode = visibilityMode; + this.database = database; + this.middleSymbol = middleSymbolDefault; + } + + public AnimationParser(char startSymbol, char closingSymbol, char middleSymbol, char endSymbol, VisibilityMode visibilityMode, Database database) : base(startSymbol, closingSymbol, endSymbol) + { + this.visibilityMode = visibilityMode; + this.database = database; + this.middleSymbol = middleSymbol; + } + + //--- RESULTS --- + Dictionary _results; + + public AnimationRegion[] results => _results.Values.ToArray(); //TODO cache + + protected override void OnInitialize() + { + base.OnInitialize(); + + _results = new Dictionary(); + if(database) database.BuildOnce(); + } + + + public override bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder) + { + if (!database) return false; + + textInsideBrackets = textInsideBrackets.ToLower(); //animations are case insensitive + + //Makes sure the database is built + database.BuildOnce(); + + //If the first character is a closing symbol, then it's a closing tag + bool isClosing = textInsideBrackets[0] == closingSymbol; + //tries closing all previous regions if tag is / + if (isClosing && tagLength == 1) + { + foreach (var range in _results.Values) + { + range.CloseAllOpenedRanges(realTextIndex); + } + return true; + } + + int tagStart = isClosing ? 1 : 0; + + string fullTag = textInsideBrackets.Substring(tagStart); + string[] tempTagWords = fullTag.Split(); + string tempTagName = tempTagWords[0]; + + //invalid closing tag, since there are modifiers + if (isClosing && tempTagWords.Length > 1) + return false; + + //----CHECKS IF TAG IS RECOGNIZED---- + + //removes middle symbol if present + //so that it can also work with disappearance effects etc. + //e.g. {#shake} + //TODO tests for this + if (middleSymbol != middleSymbolDefault) + { + if(tempTagName[0] != middleSymbol) return false; + tempTagName = tempTagName.Substring(1); + } + + if (!database.ContainsKey(tempTagName)) return false; //Skips unrecognized tags + + //----ADDS RESULT---- + if (isClosing) + { + if (_results.ContainsKey(tempTagName)) + _results[tempTagName].TryClosingRange(realTextIndex); + } + else + { + //Creates new region if it doesn't exist yet + if (!_results.ContainsKey(tempTagName)) + _results.Add(tempTagName, new AnimationRegion(tempTagName, visibilityMode, database[tempTagName])); + + _results[tempTagName].OpenNewRange(realTextIndex, tempTagWords); + } + + /* + Returns true nonetheless, since even if the tag might have not been processed correctly, + it's still a Text Animator tag that shouldn't appear in the final text + */ + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta new file mode 100644 index 0000000..62ceb97 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8690f773b4aba40a9b72dad8937dd503 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs new file mode 100644 index 0000000..efd595c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs @@ -0,0 +1,122 @@ +using UnityEngine; +using System.Text; +using System; +using Febucci.UI.Effects; + +namespace Febucci.UI.Core.Parsing +{ + + [Flags] + public enum VisibilityMode + { + OnVisible = 1, + OnHiding = 2, + Persistent = OnVisible | OnHiding, + } + + /// + /// Contains information of a region in the text + /// + public class AnimationRegion : RegionBase + { + readonly VisibilityMode visibilityMode; + public readonly AnimationScriptableBase animation; + + public AnimationRegion(string tagId, VisibilityMode visibilityMode, AnimationScriptableBase animation) : base(tagId) + { + this.visibilityMode = visibilityMode; + this.animation = animation; + } + + public bool IsVisibilityPolicySatisfied(bool visible) => visibilityMode == VisibilityMode.Persistent || visibilityMode.HasFlag(VisibilityMode.OnVisible) == visible; + + #region Ranges + + + public void OpenNewRange(int startIndex) => OpenNewRange(startIndex, Array.Empty()); + + public void OpenNewRange(int startIndex, string[] tagWords) + { + Array.Resize(ref ranges, ranges.Length + 1); + TagRange range = new TagRange(new Vector2Int(startIndex, int.MaxValue)); + + //Adds modifiers + for (int i = 1; i < tagWords.Length; i++) //starts from 1 'cos skips tag name + { + string tag = tagWords[i]; + int equalIndex = tag.IndexOf('='); + if (equalIndex <= 0) continue; //invalid modifier + + if (FormatUtils.TryGetFloat(tag.Substring(equalIndex + 1), 0, out var result)) + { + Array.Resize(ref range.modifiers, range.modifiers.Length + 1); + range.modifiers[range.modifiers.Length - 1] = new ModifierInfo(tag.Substring(0, equalIndex), result); + } + } + + ranges[ranges.Length - 1] = range; + } + + //TODO testing + public void TryClosingRange(int endIndex) + { + if (ranges.Length == 0) return; //no otherTag was opened before + + for (int i = ranges.Length - 1; i >= 0; i--) + { + if (ranges[i].indexes.y != int.MaxValue) continue; // otherTag was already closed + + var range = ranges[i]; + range.indexes.y = endIndex; + ranges[i] = range; + break; //found a range to close + } + } + + public void CloseAllOpenedRanges(int endIndex) + { + if (ranges.Length == 0) return; //no otherTag was opened before + + for (int i = ranges.Length - 1; i >= 0; i--) + { + if (ranges[i].indexes.y != int.MaxValue) continue; // otherTag was already closed + + var range = ranges[i]; + range.indexes.y = endIndex; + ranges[i] = range; + } + } + #endregion + + #region Animation + + public virtual void SetupContextFor(TAnimCore animator, ModifierInfo[] modifiers) + { + animation.ResetContext(animator); + + foreach(var mod in modifiers) + animation.SetModifier(mod); + } + #endregion + + public override string ToString() + { + StringBuilder text = new StringBuilder(); + text.Append("tag: "); + text.Append(tagId); + if (ranges.Length == 0) text.Append("\nNo ranges"); + else + { + for (int i = 0; i < ranges.Length; i++) + { + text.Append('\n'); + text.Append('-'); + text.Append('-'); + text.Append(ranges[i]); + } + } + + return text.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta new file mode 100644 index 0000000..63b6916 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/Animations/AnimationRegion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1ff8e127f267378409a5cb9bdf7f2c10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta new file mode 100644 index 0000000..9dcb929 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da51d4014591a4119940f9647d5b6cf6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs new file mode 100644 index 0000000..ce7105c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs @@ -0,0 +1,21 @@ +using System; + +namespace Febucci.UI +{ + public struct ModifierInfo: IEquatable + { + public string name; + public float value; + + public ModifierInfo(string name, float value) + { + this.name = name; + this.value = value; + } + + public bool Equals(ModifierInfo other) => value.Equals(other.value) && name.Equals(other.name); + + public override string ToString() => $"{name}={value}"; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta new file mode 100644 index 0000000..5340fb7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/ModifierInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c67b17c620c357c48a6fa7c63135b03f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs new file mode 100644 index 0000000..5d49315 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using System; + +namespace Febucci.UI.Core.Parsing +{ + public abstract class RegionBase + { + public readonly string tagId; + public TagRange[] ranges; + + public RegionBase(string tagId) + { + this.tagId = tagId; + ranges = Array.Empty(); + } + + public RegionBase(string tagId, params TagRange[] ranges) + { + this.tagId = tagId; + this.ranges = ranges; + } + + public RegionBase(string tagId, params Vector2Int[] ranges) + { + this.tagId = tagId; + int len = tagId.Length + 2; //plus opening/closing symbols + this.ranges = new TagRange[ranges.Length]; + for (int i = 0; i < this.ranges.Length; i++) + this.ranges[i] = new TagRange(ranges[i]); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta new file mode 100644 index 0000000..563c429 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/RegionBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a3db40c7789a4b2e8f4b7c760c42d26 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs new file mode 100644 index 0000000..4b345cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + public struct TagRange + { + /// + /// text index range of where to apply the tag + /// + public Vector2Int indexes; + public ModifierInfo[] modifiers; + + public TagRange(Vector2Int indexes, params ModifierInfo[] modifiers) + { + this.indexes = indexes; + this.modifiers = modifiers; + } + + public override string ToString() + { + StringBuilder text = new StringBuilder(); + + text.Append("indexes: "); + text.Append(indexes); + if (modifiers == null || modifiers.Length == 0) + text.Append("\n no modifiers"); + else + { + for (int i = 0; i < modifiers.Length; i++) + { + text.Append('\n'); + text.Append('-'); + text.Append(modifiers[i]); + } + } + return text.ToString(); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta new file mode 100644 index 0000000..9e712ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/Regions/_Core/TagRange.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc9fe708cb635ad47bc864d6a4949899 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs new file mode 100644 index 0000000..6d19bc2 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs @@ -0,0 +1,119 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Handles text parsing and rich text tags recognition + /// + public static class TextParser + { + public static string ParseText(string text, params TagParserBase[] rules) + { + if(rules == null || rules.Length == 0) + { + UnityEngine.Debug.LogWarning("No rules were provided to parse the text. Skipping"); + return text; + } + + //PS At the moment, only for avoiding fails on domain reload + //and multiple tags on different text sets + foreach (var rule in rules) + { + rule.Initialize(); + } + + /* + P.S. Calculating tags etc. is done inside this single method (and not split for each rule etc.) + so that the text is only parsed once, and not multiple times for each rule - improving performance + */ + StringBuilder result = new StringBuilder(); + + // create an array of character from text + var characters = text.ToCharArray(); + int len = characters.Length; + bool foundTag; + string fullTag; + bool allowParsing = true; + + //For every character in text + for(int textIndex = 0, realTextIndex = 0; textIndex < len; textIndex++) + { + foundTag = false; + + //searches for noparse first + if (characters[textIndex] == '<') + { + int closeIndex = text.IndexOf('>', textIndex + 1); + if(closeIndex>0) + { + int tagLength = closeIndex - textIndex + 1; + void PasteTagToText() + { + foundTag = true; + result.Append(fullTag); + textIndex = closeIndex; + } + + fullTag = text.Substring(textIndex, tagLength); + switch (fullTag.ToLower()) + { + case "": + allowParsing = false; + PasteTagToText(); + break; + case "": + allowParsing = true; + PasteTagToText(); + break; + } + } + } + + if (allowParsing && !foundTag) + { + foreach (var rule in rules) //tries rich tags + { + if (characters[textIndex] == rule.startSymbol) + { + for (int endIndex = textIndex + 1; endIndex < len && !foundTag; endIndex++) + { + //If there's an opening symbol, skips since it's a new tag + if (characters[endIndex] == rule.startSymbol) + break; + + if (characters[endIndex] == rule.endSymbol) + { + // Gets the length of the tag + int tagLength = endIndex - textIndex - 1; + + if (tagLength == 0) //Skips empty tag + break; + + if (rule.TryProcessingTag( + text.Substring(textIndex + 1, tagLength), + tagLength, + ref realTextIndex, + result, + textIndex)) + { + foundTag = true; + textIndex = endIndex; //Tag processed, skips others + break; + } + } + } + } + } + } + + if (!foundTag) + { + result.Append(characters[textIndex]); + realTextIndex++; + } + } + + return result.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta new file mode 100644 index 0000000..3bc89db --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/TextParser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 62b50d2f8435a44d5abcc3b0aec4daed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta new file mode 100644 index 0000000..f89e84d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e43be599da104e6bba973f670eecf31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs new file mode 100644 index 0000000..69e61b6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs @@ -0,0 +1,14 @@ +namespace Febucci.UI.Core +{ + public struct CharInfo + { + internal bool initialized; + public float disappearancesMaxDuration; + public float appearancesMaxDuration; + + public float pointSize; + + public char character; //TODO test + public bool isRendered; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta new file mode 100644 index 0000000..25488ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7317a03cd5fb4135ba38336b9ed9fd1c +timeCreated: 1672437590 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs new file mode 100644 index 0000000..6ac4250 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs @@ -0,0 +1,60 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + public struct CharacterData + { + public CharInfo info; + + public int index; + public int wordIndex; + public bool isVisible; + public float passedTime; + + public float uniformIntensity; + + public MeshData source; + public MeshData current; + + public void ResetInfo(int i) + { + + index = i; + wordIndex = -1; + isVisible = true; //text is visible by default + + //--Initializes first time only-- + if (!info.initialized) + { + source.positions = new Vector3[Core.TextUtilities.verticesPerChar]; + source.colors = new Color32[Core.TextUtilities.verticesPerChar]; + + current.positions = new Vector3[Core.TextUtilities.verticesPerChar]; + current.colors = new Color32[Core.TextUtilities.verticesPerChar]; + } + + } + + public void ResetAnimation() + { + for (int i = 0; i < source.positions.Length; i++) + { + current.positions[i] = source.positions[i]; + current.colors[i] = source.colors[i]; + } + } + + public void Hide() + { + for (byte i = 0; i < source.positions.Length; i++) + { + current.positions[i] = Vector3.zero; + } + } + + public void UpdateIntensity(float referenceFontSize) + { + uniformIntensity = info.pointSize / referenceFontSize; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta new file mode 100644 index 0000000..77b342e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/CharacterData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36a40ff9978cfb0458b260b57a2e84f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs new file mode 100644 index 0000000..1e75a06 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs @@ -0,0 +1,119 @@ +using System.Collections.Generic; + +namespace Febucci.UI.Core +{ + /// + /// Caches information about tag providers, so that + /// it's easier to access them + /// + /// + [System.Serializable] + public class Database : UnityEngine.ScriptableObject where T : UnityEngine.ScriptableObject, ITagProvider + { + bool built; + + void OnEnable() + { + //Prevents database from not refreshing on + //different domain reload settings + built = false; + } + + [UnityEngine.SerializeField] System.Collections.Generic.List data = new List(); + public System.Collections.Generic.List Data => data; + + public void Add(T element) + { + if(data == null) data = new System.Collections.Generic.List(); + data.Add(element); + + // at runtime adds directly on database as well, without needing to rebuild + if (built && UnityEngine.Application.isPlaying) + { + string tag = element.TagID; + if (dictionary.ContainsKey(tag)) + UnityEngine.Debug.LogError($"Text Animator: Tag {tag} is already present in the database. Skipping..."); + else + dictionary.Add(tag, element); + } + else + { + built = false; + } + } + + Dictionary dictionary; + + public void ForceBuildRefresh() + { + built = false; + BuildOnce(); + } + + public void BuildOnce() + { + if(built) return; + built = true; + + if(dictionary == null) + dictionary = new Dictionary(); + else + dictionary.Clear(); + + string tagId; + foreach (var source in data) + { + if(!source) + continue; + + tagId = source.TagID; + + if (string.IsNullOrEmpty(tagId)) + { + UnityEngine.Debug.LogError($"Text Animator: Tag is null or empty. Skipping..."); + continue; + } + + if (dictionary.ContainsKey(tagId)) + { + UnityEngine.Debug.LogError($"Text Animator: Tag {tagId} is already present in the database. Skipping..."); + continue; + } + + dictionary.Add(tagId, source); + } + + OnBuildOnce(); + } + + protected virtual void OnBuildOnce() { } + + public bool ContainsKey(string key) + { + BuildOnce(); + return dictionary.ContainsKey(key); + } + + public T this[string key] + { + get + { + BuildOnce(); + return dictionary[key]; + } + } + + public void DestroyImmediate(bool databaseOnly = false) + { + if (!databaseOnly) + { + foreach (var element in data) + { + UnityEngine.Object.DestroyImmediate(element); + } + } + + UnityEngine.Object.DestroyImmediate(this); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta new file mode 100644 index 0000000..b57ae08 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/Database.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad15696ec142b4b74a18062348e0c8ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs new file mode 100644 index 0000000..c9ca084 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs @@ -0,0 +1,7 @@ +namespace Febucci.UI.Core +{ + public interface ITagProvider + { + string TagID { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta new file mode 100644 index 0000000..7d711d3 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/ITagProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95954e1bd9a8247e485caea208576867 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs new file mode 100644 index 0000000..7f45f07 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + public struct MeshData : System.IEquatable + { + public Vector3[] positions; + public Color32[] colors; + + + public bool Equals(MeshData other) + { + //checks every position with other's position + for (int i = 0; i < positions.Length; i++) + { + if (positions[i] != other.positions[i]) + return false; + } + + //checks every color with other's color + for (int i = 0; i < colors.Length; i++) + { + if (!colors[i].Equals(other.colors[i])) + return false; + } + + return true; + } + + public override string ToString() + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + //prints positions and colors + for (int i = 0; i < positions.Length; i++) + { + sb.Append(positions[i].ToString()); + sb.Append(" "); + sb.Append(colors[i].ToString()); + sb.Append(" - "); + } + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta new file mode 100644 index 0000000..78581ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/MeshData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 36780d2b32e74616a2d854f1c8c2c242 +timeCreated: 1672437581 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs new file mode 100644 index 0000000..ee5d394 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs @@ -0,0 +1,29 @@ +using System.Text; + +namespace Febucci.UI.Core.Parsing +{ + /// + /// Base class to parse/process a rich text tag + /// + public abstract class TagParserBase + { + //--- SYMBOLS --- + public char startSymbol; + public char endSymbol; + public char closingSymbol; //TODO remove closing symbol to all, add it only to regions + + public TagParserBase() { } + public TagParserBase(char startSymbol, char closingSymbol, char endSymbol) + { + this.startSymbol = startSymbol; + this.closingSymbol = closingSymbol; + this.endSymbol = endSymbol; + } + + //--- METHODS --- + public abstract bool TryProcessingTag(string textInsideBrackets, int tagLength, ref int realTextIndex, StringBuilder finalTextBuilder, int internalOrder); + + public void Initialize() => OnInitialize(); + protected virtual void OnInitialize(){ } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta new file mode 100644 index 0000000..eddf9ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/TagParserBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 55c7a4ae649c8407f8d95bf3403945ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs new file mode 100644 index 0000000..1decfd5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs @@ -0,0 +1,16 @@ +namespace Febucci.UI.Core +{ + public struct WordInfo + { + public readonly int firstCharacterIndex; + public readonly int lastCharacterIndex; + public readonly string text; + + public WordInfo(int firstCharacterIndex, int lastCharacterIndex, string text) + { + this.firstCharacterIndex = firstCharacterIndex; + this.lastCharacterIndex = lastCharacterIndex; + this.text = text; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta new file mode 100644 index 0000000..bfc3eec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Parsing/_Core/WordInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ada8bd43a5c046838f7be64d1e3f7e3d +timeCreated: 1679507564 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta new file mode 100644 index 0000000..5b32420 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c62ca3b12006dd046abe6a66e7f5c690 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta new file mode 100644 index 0000000..7239506 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35d5f4998a2cc4d709e95a90ff304e6e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta new file mode 100644 index 0000000..92e515d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0af2dade929034a0ead991e371617b6c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs new file mode 100644 index 0000000..7dfbfcf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "Speed Action", menuName = "Text Animator/Actions/Speed", order = 1)] + [TagInfo("speed")] + public sealed class SpeedAction : ActionScriptableBase + { + /// + /// Speed used in case the action does not have the first parameter + /// + [UnityEngine.Tooltip("Speed used in case the action does not have the first parameter")] + public float defaultSpeed = 2; + + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + float speed = defaultSpeed; + if(action.parameters.Length > 0) + { + FormatUtils.TryGetFloat(action.parameters[0], defaultSpeed, out speed); + } + + typingInfo.speed = speed; + yield break; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta new file mode 100644 index 0000000..6b544ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/SpeedAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 24451f867ad2a6146baf57f938a44d18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs new file mode 100644 index 0000000..3c6b330 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs @@ -0,0 +1,18 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using UnityEngine; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [CreateAssetMenu(fileName = "WaitAnyInput Action", menuName = "Text Animator/Actions/Wait Any Input", order = 1)] + [TagInfo("waitinput")] + public sealed class WaitAnyInputAction : ActionScriptableBase + { + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + while(!Input.anyKeyDown) + yield return null; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta new file mode 100644 index 0000000..d4e1adb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitAnyInputAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aed6905e7c644c14a804ef32a5216aa3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs new file mode 100644 index 0000000..194c23a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs @@ -0,0 +1,33 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "WaitFor Action", menuName = "Text Animator/Actions/Wait For", order = 1)] + [TagInfo("waitfor")] + public sealed class WaitForAction : ActionScriptableBase + { + /// + /// Time used in case the action does not have the first parameter + /// + [UnityEngine.Tooltip("Time used in case the action does not have the first parameter")] + public float defaultTime = 1; + + public override System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo) + { + float targetTime = defaultTime; + if(action.parameters.Length > 0) + { + FormatUtils.TryGetFloat(action.parameters[0], defaultTime, out targetTime); + } + + float t = 0; + while(t<=targetTime) + { + t += typewriter.TextAnimator.time.deltaTime; + yield return null; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta new file mode 100644 index 0000000..65a8542 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/Built-in/WaitForAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7806fdd5903ae4a1b8ddb77cde0d5832 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta new file mode 100644 index 0000000..b093b3b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c3dbde1f78df466e95f8020923a8696 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs new file mode 100644 index 0000000..6298304 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs @@ -0,0 +1,18 @@ +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; + +namespace Febucci.UI.Actions +{ + [System.Serializable] + public abstract class ActionScriptableBase : UnityEngine.ScriptableObject, ITagProvider + { + [UnityEngine.SerializeField] string tagID; + public string TagID + { + get => tagID; + set => tagID = value; + } + + public abstract System.Collections.IEnumerator DoAction(ActionMarker action, TypewriterCore typewriter, TypingInfo typingInfo); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta new file mode 100644 index 0000000..7906dec --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Actions/_Core/ActionScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b39050096895d4d758c32f76c7391954 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta new file mode 100644 index 0000000..3bf910c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 452cdf0b0bd2b53428c1a3398784e999 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta new file mode 100644 index 0000000..3b25923 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7351ce21b48094cd69f7fbc6531652bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta new file mode 100644 index 0000000..bb33e4e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a9665765cbb54293a006234c8f34c0d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs new file mode 100644 index 0000000..b05b2e4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs @@ -0,0 +1,65 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Diagonal Expand Appearance", menuName = "Text Animator/Animations/Appearances/Diagonal Expand")] + [EffectInfo("diagexp", EffectCategory.Appearances)] + public sealed class DiagonalExpandAppearance : AppearanceScriptableBase + { + public bool diagonalFromBttmLeft; + + int targetA; + int targetB; + + //--Temp variables-- + Vector3 middlePos; + float pct; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + diagonalFromBttmLeft = true; + UpdateOrientation(); + } + + void UpdateOrientation() + { + if (diagonalFromBttmLeft) //expands bottom left and top right + { + targetA = 0; + targetB = 2; + } + else //expands bottom right and top left + { + targetA = 1; + targetB = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + middlePos = character.current.positions.GetMiddlePos(); + pct = Tween.EaseInOut(character.passedTime / duration); + + character.current.positions[targetA] = Vector3.LerpUnclamped(middlePos, character.current.positions[targetA], pct); + //top right copies from bottom right + character.current.positions[targetB] = Vector3.LerpUnclamped(middlePos, character.current.positions[targetB], pct); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "bot": + diagonalFromBttmLeft = (int)modifier.value == 1; + UpdateOrientation(); + break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta new file mode 100644 index 0000000..c1ce5fa --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/DiagonalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7303246fad8e2a049aebd6c0c71d2985 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs new file mode 100644 index 0000000..33af797 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Fade Appearance", menuName = "Text Animator/Animations/Appearances/Fade")] + [EffectInfo("fade", EffectCategory.Appearances)] + public sealed class FadeAppearance : AppearanceScriptableBase + { + Color32 temp; + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + //from transparent to real color + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], temp, + Tween.EaseInOut(1 - (character.passedTime / duration))); + } + + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta new file mode 100644 index 0000000..c0c700c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/FadeAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d26528e73e36f64dab95b69625232a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs new file mode 100644 index 0000000..5afc6b4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs @@ -0,0 +1,99 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Horizontal Expand Appearance", menuName = "Text Animator/Animations/Appearances/Horizontal Expand")] + [EffectInfo("horiexp", EffectCategory.Appearances)] + public sealed class HorizontalExpandAppearance : AppearanceScriptableBase + { + //expand type + public enum ExpType + { + Left, //from left to right + Middle, //expands from the middle to te extents + Right //from right to left + } + + + public ExpType type = ExpType.Left; + + //--Temp variables-- + Vector2 startTop; + Vector2 startBot; + float pct; + + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + type = ExpType.Left; + } + + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + pct = Tween.EaseInOut(character.passedTime / duration); + + switch (type) + { + default: + case ExpType.Left: + //top left and bot left + startTop = character.current.positions[1]; + startBot = character.current.positions[0]; + + character.current.positions[2] = Vector3.LerpUnclamped(startTop, character.current.positions[2], pct); + character.current.positions[3] = Vector3.LerpUnclamped(startBot, character.current.positions[3], pct); + break; + + case ExpType.Right: + //top right and bot right + startTop = character.current.positions[2]; + startBot = character.current.positions[3]; + + character.current.positions[1] = Vector3.LerpUnclamped(startTop, character.current.positions[1], pct); + character.current.positions[0] = Vector3.LerpUnclamped(startBot, character.current.positions[0], pct); + break; + + case ExpType.Middle: + //Middle positions + startTop = (character.current.positions[1] + character.current.positions[2]) / 2; + startBot = (character.current.positions[0] + character.current.positions[3]) / 2; + + //top vertices + character.current.positions[1] = Vector3.LerpUnclamped(startTop, character.current.positions[1], pct); + character.current.positions[2] = Vector3.LerpUnclamped(startTop, character.current.positions[2], pct); + + //bottom vertices + character.current.positions[0] = Vector3.LerpUnclamped(startBot, character.current.positions[0], pct); + character.current.positions[3] = Vector3.LerpUnclamped(startBot, character.current.positions[3], pct); + + break; + } + + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "x": + switch (modifier.value) + { + case -1: type = ExpType.Left; break; + case 0: type = ExpType.Middle; break; + case 1: type = ExpType.Right; break; + default: Debug.LogError($"Text Animator: you set an '{modifier.name}' modifier with value '{modifier.value}' for the HorizontalExpandAppearance effect, but it can only be '-1', '0', or '1'"); break; + } + break; + default: + base.SetModifier(modifier); + break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta new file mode 100644 index 0000000..050a7d5 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/HorizontalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dbde6098d9bea441b3ac872e52073ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs new file mode 100644 index 0000000..44b8179 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs @@ -0,0 +1,37 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Offset Appearance", menuName = "Text Animator/Animations/Appearances/Offset")] + [EffectInfo("offset", EffectCategory.Appearances)] + public sealed class OffsetAppearance : AppearanceScriptableBase + { + public float baseAmount = 10; + float amount; + public Vector2 baseDirection = Vector2.one; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amount = baseAmount; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar(baseDirection * amount * character.uniformIntensity * Tween.EaseIn(1 - character.passedTime / duration)); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amount = baseAmount * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta new file mode 100644 index 0000000..7d729cb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/OffsetAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 146552007a93ecc42b0d63f26788e6cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs new file mode 100644 index 0000000..8aa8b48 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs @@ -0,0 +1,58 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "RandomDir Appearance", menuName = "Text Animator/Animations/Appearances/Random Direction")] + [EffectInfo("rdir", EffectCategory.Appearances)] + public sealed class RandomDirectionAppearance : AppearanceScriptableBase + { + public float baseAmount = 10; + float amount; + Vector3[] directions; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amount = baseAmount; + } + + protected override void OnInitialize() + { + base.OnInitialize(); + + directions = new Vector3[20]; + + //Calculates a random direction for each character (which won't change) + for(int i = 0; i < directions.Length; i++) + { + directions[i] = TextUtilities.fakeRandoms[Random.Range(0, TextUtilities.fakeRandomsCount - 1)] * Mathf.Sign(Mathf.Sin(i)); + } + } + + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + int index = character.index % directions.Length; + + //Moves all towards a direction + character.current.positions.MoveChar( + directions[index] + * amount + * character.uniformIntensity + * Tween.EaseIn(1 - character.passedTime / duration)); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amount = baseAmount * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta new file mode 100644 index 0000000..621750e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RandomDirectionAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a65a9b7775dded41a0295e6f75be25d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs new file mode 100644 index 0000000..6afda92 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs @@ -0,0 +1,43 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Rotating Appearance", menuName = "Text Animator/Animations/Appearances/Rotating")] + [EffectInfo("rot", EffectCategory.Appearances)] + [DefaultValue(nameof(baseDuration), .7f)] + public sealed class RotatingAppearance : AppearanceScriptableBase + { + public float baseTargetAngle = 50; + float targetAngle; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + targetAngle = baseTargetAngle; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar( + Mathf.Lerp( + targetAngle, + 0, + Tween.EaseInOut(character.passedTime / duration) + ) + ); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": targetAngle = baseTargetAngle * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta new file mode 100644 index 0000000..e291d19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/RotatingAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 465a2951870a6954d8205f9c58a546de +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs new file mode 100644 index 0000000..193c4ea --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs @@ -0,0 +1,37 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Size Appearance", menuName = "Text Animator/Animations/Appearances/Size")] + [EffectInfo("size", EffectCategory.Appearances)] + public sealed class SizeAppearance : AppearanceScriptableBase + { + float amplitude; + public float baseAmplitude = 2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + amplitude = baseAmplitude * -1 + 1; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.LerpUnclamped( + character.current.positions.GetMiddlePos(), + Tween.EaseIn(1 - (character.passedTime / duration)) * amplitude + ); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + default: base.SetModifier(modifier); break; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta new file mode 100644 index 0000000..1c7a00e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/SizeAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ff5882c38f1b6c4682c7f207f0c98db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs new file mode 100644 index 0000000..b4b7649 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs @@ -0,0 +1,69 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Vertical Expand Appearance", menuName = "Text Animator/Animations/Appearances/Vertical Expand")] + [EffectInfo("vertexp", EffectCategory.Appearances)] + public sealed class VerticalExpandAppearance : AppearanceScriptableBase + { + public bool startsFromBottom = true; + int startA, targetA; + int startB, targetB; + + //--Temp variables-- + float pct; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + SetOrientation(startsFromBottom); + } + + void SetOrientation(bool fromBottom) + { + if (fromBottom) //From bottom to top + { + + //top left copies bottom left + startA = 0; + targetA = 1; + + //top right copies bottom right + startB = 3; + targetB = 2; + } + else //from top to bottom + { + + //bottom left copies top left + startA = 1; + targetA = 0; + + //bottom right copies top right + startB = 2; + targetB = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + pct = Tween.EaseInOut(character.passedTime / duration); + + character.current.positions[targetA] = Vector3.LerpUnclamped(character.current.positions[startA], character.current.positions[targetA], pct); + character.current.positions[targetB] = Vector3.LerpUnclamped(character.current.positions[startB], character.current.positions[targetB], pct); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "bot": SetOrientation((int)modifier.value == 1); break; + default: base.SetModifier(modifier); break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta new file mode 100644 index 0000000..7bb2dd7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/VerticalExpandAppearance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 351d9d9e5c9ea7946842aee1160f7731 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta new file mode 100644 index 0000000..5d1b0bc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9164d28933c0b4352b5b48dcbb7c8240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs new file mode 100644 index 0000000..2139179 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs @@ -0,0 +1,31 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + [System.Serializable] + public abstract class AppearanceScriptableBase : AnimationScriptableBase + { + public float baseDuration = .5f; + protected float duration; + + public override void ResetContext(TAnimCore animator) + { + duration = baseDuration; + } + + public override float GetMaxDuration() => duration; //TODO improve this, a bit hacky + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "d": duration = baseDuration * modifier.value; break; + } + } + + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => character.passedTime <= duration; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta new file mode 100644 index 0000000..6b565e8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/_Core/AppearanceScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb71b61f2fec745acaf81b5bf98f19f2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta new file mode 100644 index 0000000..459a67a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ca263a61b56e4699ac2efe4d837032e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta new file mode 100644 index 0000000..bc6ef19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 58afd08ab8fee49849a0174b6e5bb64b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs new file mode 100644 index 0000000..d4bcffb --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs @@ -0,0 +1,41 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Bounce", menuName = "Text Animator/Animations/Behaviors/Bounce")] + [EffectInfo("bounce", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 13.19f)] + [DefaultValue(nameof(baseFrequency), 1f)] + [DefaultValue(nameof(baseWaveSize), .2f)] + public sealed class BounceBehavior : BehaviorScriptableSine + { + //Calculates the tween percentage + float BounceTween(float t) + { + const float stillTime = .2f; + const float easeIn = .2f; + const float bounce = 1 - stillTime - easeIn; + + if (t <= easeIn) + return Tween.EaseInOut(t / easeIn); + t -= easeIn; + + if (t <= bounce) + return 1 - Tween.BounceOut(t / bounce); + + return 0; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar( + Vector3.up * character.uniformIntensity * + BounceTween((Mathf.Repeat(animator.time.timeSinceStart * frequency - waveSize * character.index, 1))) * amplitude + ); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta new file mode 100644 index 0000000..89042cf --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/BounceBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a333962955c4a08498d132d86d9ce19e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs new file mode 100644 index 0000000..e986d2b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs @@ -0,0 +1,47 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Dangle", fileName = "Dangle Behavior")] + [EffectInfo("dangle", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 7.87f)] + [DefaultValue(nameof(baseFrequency), 3.37f)] + [DefaultValue(nameof(baseWaveSize), .306f)] + public sealed class DangleBehavior : BehaviorScriptableSine + { + public bool anchorBottom; + float sin; + + int targetIndex1; + int targetIndex2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + + //bottom + if (anchorBottom) + { + targetIndex1 = 1; + targetIndex2 = 2; + } + else + { + targetIndex1 = 0; + targetIndex2 = 3; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + + sin = Mathf.Sin(frequency * animator.time.timeSinceStart + character.index * waveSize) * amplitude * character.uniformIntensity; + + //moves one side (top or bottom) torwards one direction + character.current.positions[targetIndex1] += Vector3.right * sin; + character.current.positions[targetIndex2] += Vector3.right * sin; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta new file mode 100644 index 0000000..ee4a202 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/DangleBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 01a91f0b9c670b242ae5c34286409cd9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs new file mode 100644 index 0000000..133bb73 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs @@ -0,0 +1,69 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Fade Behavior", menuName = "Text Animator/Animations/Behaviors/Fade")] + [EffectInfo("fade", EffectCategory.Behaviors)] + public sealed class FadeBehavior : BehaviorScriptableBase + { + Color32 temp; + public float baseSpeed = .5f; + public float baseDelay = 1f; + float delay; + float timeToShow; + + public override void ResetContext(TAnimCore animator) + { + delay = baseDelay; + SetTimeToShow(baseSpeed); + } + + //given speed (per second), sets the time needed to show + void SetTimeToShow(float speed) => timeToShow = 1 / speed; //TODO check for zero + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": + SetTimeToShow(baseSpeed * modifier.value); + break; + case "d": delay = baseDelay * modifier.value; break; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + if (character.passedTime <= delay) //not passed enough time yet + return; + + float charPct = (character.passedTime - delay) / timeToShow; + + if (charPct > 1) charPct = 1; + + //Lerps + if (charPct < 1 && charPct >= 0) + { + for (var i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], temp, Tween.EaseInOut(charPct)); + } + } + else //Keeps them hidden + { + for (var i = 0; i < TextUtilities.verticesPerChar; i++) + { + temp = character.current.colors[i]; + temp.a = 0; + + character.current.colors[i] = temp; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta new file mode 100644 index 0000000..00dbe14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/FadeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1f1dde3a46b6e748885a8d202c32044 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs new file mode 100644 index 0000000..dde29c4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs @@ -0,0 +1,46 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Pendulum Behavior", menuName = "Text Animator/Animations/Behaviors/Pendulum")] + [EffectInfo("pend", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 24.7f)] + [DefaultValue(nameof(baseFrequency), 3.1f)] + [DefaultValue(nameof(baseWaveSize), .2f)] + public sealed class PendulumBehavior : BehaviorScriptableSine + { + public bool anchorBottom; + + int targetVertex1; + int targetVertex2; + + public override void ResetContext(TAnimCore animator) + { + base.ResetContext(animator); + + if (anchorBottom) + { + //anchored at the bottom + targetVertex1 = 0; + targetVertex2 = 3; + } + else + { + //anchored at the top + targetVertex1 = 1; + targetVertex2 = 2; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar( + Mathf.Sin(-animator.time.timeSinceStart * frequency + waveSize * character.index) * amplitude, + (character.current.positions[targetVertex1] + character.current.positions[targetVertex2]) / 2 //bottom center as their rotation pivot + ); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta new file mode 100644 index 0000000..b83f707 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/PendulumBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5005fc4984831834d826c8a9e3d42443 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs new file mode 100644 index 0000000..93ab11b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs @@ -0,0 +1,46 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Rainbow", fileName = "Rainbow Behavior")] + [EffectInfo("rainb", EffectCategory.Behaviors)] + public sealed class RainbowBehavior : BehaviorScriptableBase + { + public float baseFrequency = 0.5f; + public float baseWaveSize = 0.08f; + + + float frequency; + float waveSize; + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + //frequency + case "f": frequency = baseFrequency * modifier.value; break; + //wave size + case "s": waveSize = baseWaveSize * modifier.value; break; + } + } + + public override void ResetContext(TAnimCore animator) + { + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + Color32 temp; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + //shifts hue + temp = Color.HSVToRGB(Mathf.PingPong(animator.time.timeSinceStart * frequency + character.index * waveSize, 1), 1, 1); + temp.a = character.current.colors[i].a; //preserves original alpha + character.current.colors[i] = temp; + } + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta new file mode 100644 index 0000000..f53d337 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RainbowBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5400420051c0a9341be4aece65080148 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs new file mode 100644 index 0000000..321eaf8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Rotation", fileName = "Rotation Behavior")] + [EffectInfo("rot", EffectCategory.Behaviors)] + public sealed class RotationBehavior : BehaviorScriptableBase + { + + public float baseRotSpeed = 180; + public float baseDiffBetweenChars = 10; + + float angleSpeed; + float angleDiffBetweenChars; + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + //frequency + case "f": angleSpeed = baseRotSpeed * modifier.value; break; + //angle diff + case "w": angleDiffBetweenChars = baseDiffBetweenChars * modifier.value; break; + } + } + + public override void ResetContext(TAnimCore animator) + { + angleSpeed = baseRotSpeed; + angleDiffBetweenChars = baseDiffBetweenChars; + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar(-animator.time.timeSinceStart * angleSpeed + + angleDiffBetweenChars * character.index); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta new file mode 100644 index 0000000..450c69d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/RotationBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c179eec3e2795104eb216e340b8d8513 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs new file mode 100644 index 0000000..d9e9b47 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs @@ -0,0 +1,79 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Shake", fileName = "Shake Behavior")] + [EffectInfo("shake", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 1.13f)] + [DefaultValue(nameof(baseDelay), .1f)] + [DefaultValue(nameof(baseWaveSize), .45f)] + public sealed class ShakeBehavior : BehaviorScriptableBase + { + //---BASE VALUES--- + public float baseAmplitude = .085f; + public float baseDelay = .04f; + public float baseWaveSize = .2f; + + float amplitude; + float delay; + float waveSize; + + //--- ANIMATION --- + + void ClampValues() + { + delay = Mathf.Clamp(delay, 0.002f, 500); + } + + protected override void OnInitialize() + { + base.OnInitialize(); + + randIndex = Random.Range(0, TextUtilities.fakeRandomsCount); + } + + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude; + delay = baseDelay; + waveSize = baseWaveSize; + + ClampValues(); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + case "d": delay = baseDelay * modifier.value; break; + case "w": waveSize = baseWaveSize * modifier.value; break; + } + + ClampValues(); + } + + int randIndex; + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = animator.time.timeSinceStart; + timePassed += character.index * waveSize; + + randIndex = Mathf.RoundToInt(timePassed / delay) % (TextUtilities.fakeRandomsCount); + if(randIndex<0) randIndex *= -1; //always positive + + character.current.positions.MoveChar + ( + TextUtilities.fakeRandoms[randIndex] * amplitude * character.uniformIntensity + ); + } + + void OnValidate() + { + ClampValues(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta new file mode 100644 index 0000000..edb2527 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/ShakeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 144066a43449f48469b89b2e2c9ab37d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs new file mode 100644 index 0000000..39e3e33 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Size", fileName = "Size Behavior")] + [EffectInfo("incr", EffectCategory.Behaviors)] + public sealed class SizeBehavior : BehaviorScriptableBase + { + public float baseAmplitude = 1.5f; + public float baseFrequency = 4; + public float baseWaveSize = 0.2f; + + float amplitude; + float frequency; + float waveSize; + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude * -1 + 1; + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch(modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value * -1 + 1; break; + case "f": frequency = baseFrequency * modifier.value; break; + case "w": waveSize = baseWaveSize * modifier.value; break; + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.LerpUnclamped( + character.current.positions.GetMiddlePos(), + (Mathf.Cos(animator.time.timeSinceStart* frequency + character.index * waveSize) + 1) / 2f * amplitude); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta new file mode 100644 index 0000000..31ae479 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SizeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6da0c21b80efda84188912ce510ee1ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs new file mode 100644 index 0000000..76cc4ae --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs @@ -0,0 +1,29 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Slide Behavior", menuName = "Text Animator/Animations/Behaviors/Slide")] + [EffectInfo("slide", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 5)] + [DefaultValue(nameof(baseFrequency), 3)] + [DefaultValue(nameof(baseWaveSize), 0)] + public sealed class SlideBehavior : BehaviorScriptableSine + { + float sin; + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + sin = Mathf.Sin(frequency * animator.time.timeSinceStart + + character.index * waveSize) * amplitude * character.uniformIntensity; + + //bottom, torwards one direction + character.current.positions[0] += Vector3.right * sin; + character.current.positions[3] += Vector3.right * sin; + //top, torwards the opposite dir + character.current.positions[1] += Vector3.right * -sin; + character.current.positions[2] += Vector3.right * -sin; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta new file mode 100644 index 0000000..d1e645b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SlideBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a740b03d4c3f2d84f9cfc7b3a6f8ea80 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs new file mode 100644 index 0000000..600fc74 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs @@ -0,0 +1,19 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Swing", fileName = "Swing Behavior")] + [EffectInfo("swing", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 22.74f)] + [DefaultValue(nameof(baseFrequency), 3.65f)] + [DefaultValue(nameof(baseWaveSize), .171f)] + public sealed class SwingBehavior : BehaviorScriptableSine + { + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.RotateChar(Mathf.Cos(animator.time.timeSinceStart * frequency + character.index * waveSize) * amplitude); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta new file mode 100644 index 0000000..c32b8a7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/SwingBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63b7822b5552d3748b1acc2a07066822 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs new file mode 100644 index 0000000..858ea38 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs @@ -0,0 +1,22 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Wave", fileName = "Wave Behavior")] + [EffectInfo("wave", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 7.27f)] + [DefaultValue(nameof(baseFrequency), 4f)] + [DefaultValue(nameof(baseWaveSize), .4f)] + public sealed class WaveBehavior : BehaviorScriptableSine + { + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + character.current.positions.MoveChar( + Vector3.up * Mathf.Sin(animator.time.timeSinceStart * frequency + character.index * waveSize) + * amplitude * character.uniformIntensity); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta new file mode 100644 index 0000000..cc67ed1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WaveBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99de7ce7cdaed2d42b0bd233e69e67db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs new file mode 100644 index 0000000..1067c78 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs @@ -0,0 +1,42 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(menuName = "Text Animator/Animations/Behaviors/Wiggle", fileName = "Wiggle Behavior")] + [EffectInfo("wiggle", EffectCategory.Behaviors)] + [DefaultValue(nameof(baseAmplitude), 4.74f)] + [DefaultValue(nameof(baseFrequency), 7.82f)] + [DefaultValue(nameof(baseWaveSize), .551f)] + public sealed class WiggleBehavior : BehaviorScriptableSine + { + const int maxDirections = 23; + Vector3[] directions; + int indexCache; + + protected override void OnInitialize() + { + base.OnInitialize(); + + directions = new Vector3[maxDirections]; + + //Calculates a random direction for each character (which won't change) + for(int i = 0; i < maxDirections; i++) + { + directions[i] = TextUtilities.fakeRandoms[Random.Range(0, TextUtilities.fakeRandomsCount - 1)] * Mathf.Sign(Mathf.Sin(i)); + } + } + + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + indexCache = character.index % maxDirections; + + character.current.positions.MoveChar( + directions[indexCache] + * Mathf.Sin(animator.time.timeSinceStart * frequency + character.index * waveSize) + * amplitude + * character.uniformIntensity); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta new file mode 100644 index 0000000..4a81650 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/Built-in/WiggleBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c98870d7ebce9a4fa6c4a16e9701755 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta new file mode 100644 index 0000000..17ccdac --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c76974580a2e4940a22bd3504b213d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs new file mode 100644 index 0000000..d23907e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs @@ -0,0 +1,14 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + public abstract class BehaviorScriptableBase : AnimationScriptableBase + { + public override float GetMaxDuration() => -1; //infinite + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta new file mode 100644 index 0000000..80b75c4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d77bbe0b705d24c8caed399bf26d7b97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs new file mode 100644 index 0000000..edb14f4 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs @@ -0,0 +1,38 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + public abstract class BehaviorScriptableSine : BehaviorScriptableBase + { + //--- BASE VALUES --- + public float baseAmplitude = 1; + public float baseFrequency = 1; + [UnityEngine.Range(0,1)] public float baseWaveSize = .2f; + + //--- EFFECTS INFO --- + protected float amplitude; + protected float frequency; + protected float waveSize; + + + public override void ResetContext(TAnimCore animator) + { + amplitude = baseAmplitude; + frequency = baseFrequency; + waveSize = baseWaveSize; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch(modifier.name) + { + case "a": amplitude = baseAmplitude * modifier.value; break; + case "f": frequency = baseFrequency * modifier.value; break; + //TODO if wavesize is 0, then this never changes. Maybe + //set it directly instead of multiplying? + case "w": waveSize = baseWaveSize * modifier.value; break; + } + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta new file mode 100644 index 0000000..df89640 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Behaviors/_Core/BehaviorScriptableSine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8288d52cadf6b453591b461027037a85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta new file mode 100644 index 0000000..551ad1a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44af3aa44863aa44f926c79c825adb59 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs new file mode 100644 index 0000000..19293d7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs @@ -0,0 +1,84 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Applies multiples animations, allowing user to use one tag for all of them + /// + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Composite Animation", menuName = "Text Animator/Animations/Special/Composite")] + [EffectInfo("", EffectCategory.All)] + public sealed class CompositeAnimation : AnimationScriptableBase + { + public AnimationScriptableBase[] animations = new AnimationScriptableBase[0]; + + protected override void OnInitialize() + { + base.OnInitialize(); + + ValidateArray(); + + foreach (var anim in animations) + { + anim.InitializeOnce(); + } + } + + public override void ResetContext(TAnimCore animator) + { + foreach (var anim in animations) + { + anim.ResetContext(animator); + } + } + + public override void SetModifier(ModifierInfo modifier) + { + base.SetModifier(modifier); + foreach (var anim in animations) + { + anim.SetModifier(modifier); + } + } + + public override void ApplyEffectTo(ref CharacterData character, TAnimCore animator) + { + foreach (var anim in animations) + { + if(anim.CanApplyEffectTo(character, animator)) + anim.ApplyEffectTo(ref character, animator); + } + } + + //Prevents double check + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + public override float GetMaxDuration() + { + //Calculates max duration between animations + float maxDuration = -1; + foreach (var anim in animations) + { + maxDuration = Mathf.Max(maxDuration, anim.GetMaxDuration()); + } + + return maxDuration; + } + + void ValidateArray() + { + //prevents recursion + var validated = new System.Collections.Generic.List(); + + for (int i = 0; i < animations.Length; i++) + { + if(animations[i]!=this) validated.Add(animations[i]); + } + + animations = validated.ToArray(); + } + + void OnValidate() => ValidateArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta new file mode 100644 index 0000000..504dc77 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1030e778d6c8678498b5860c46980fb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs new file mode 100644 index 0000000..ccd6770 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs @@ -0,0 +1,98 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Applies multiples animations, allowing user to use one tag for all of them + /// + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Composite With Emission", menuName = "Text Animator/Animations/Special/Composite With Emission")] + [EffectInfo("", EffectCategory.All)] + public sealed class CompositeWithEmission : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + public AnimationScriptableBase[] animations = new AnimationScriptableBase[0]; + + protected override void OnInitialize() + { + base.OnInitialize(); + + ValidateArray(); + + foreach (var anim in animations) + { + anim.InitializeOnce(); + } + + prev = new MeshData(); + prev.colors = new Color32[TextUtilities.verticesPerChar]; + prev.positions = new Vector3[TextUtilities.verticesPerChar]; + } + + public override void ResetContext(TAnimCore animator) + { + foreach (var anim in animations) + { + anim.ResetContext(animator); + } + } + + public override void SetModifier(ModifierInfo modifier) + { + base.SetModifier(modifier); + foreach (var anim in animations) + { + anim.SetModifier(modifier); + } + } + + MeshData prev; + public override void ApplyEffectTo(ref CharacterData character, TAnimCore animator) + { + float timePassed = timeMode.GetTime(animator.time.timeSinceStart, character.passedTime, character.index); + if(timePassed<0) return; + + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + prev.positions[i] = character.current.positions[i]; + prev.colors[i] = character.current.colors[i]; + } + + float weight = emissionCurve.Evaluate(timePassed); + foreach (var anim in animations) + { + if(anim.CanApplyEffectTo(character, animator)) + anim.ApplyEffectTo(ref character, animator); + } + + for (int i = 0; i < TextUtilities.verticesPerChar; i++) + { + character.current.positions[i] = Vector3.LerpUnclamped(prev.positions[i], character.current.positions[i], weight); + character.current.colors[i] = Color32.LerpUnclamped(prev.colors[i], character.current.colors[i], weight); + } + } + + //Prevents double check + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + + void ValidateArray() + { + //prevents recursion + var validated = new System.Collections.Generic.List(); + + for (int i = 0; i < animations.Length; i++) + { + if(animations[i]!=this) validated.Add(animations[i]); + } + + animations = validated.ToArray(); + } + + void OnValidate() => ValidateArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta new file mode 100644 index 0000000..6852386 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/CompositeWithEmission.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c6129e0ca01d4768b7b56e188a0001d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta new file mode 100644 index 0000000..d8ac5fe --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e775bae152dd345599f58d6360352d31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta new file mode 100644 index 0000000..7dbe211 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 634e4c6f22807e7449881726b1bd52ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs new file mode 100644 index 0000000..9df2768 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs @@ -0,0 +1,72 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Uniform Curve Animation", menuName = "Text Animator/Animations/Special/Uniform Curve")] + [EffectInfo("", EffectCategory.All)] + public sealed class UniformCurveAnimation : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + public AnimationData animationData = new AnimationData(); + + //--- Modifiers --- + float weightMult; + float timeSpeed; + + bool hasTransformEffects; + + + public override void ResetContext(TAnimCore animator) + { + weightMult = 1; + timeSpeed = 1; + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": //frequency, increases the time speed + timeSpeed = modifier.value; + break; + + case "a": //increase the amplitude + weightMult = modifier.value; + break; + } + } + + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = timeMode.GetTime(animator.time.timeSinceStart * timeSpeed, character.passedTime * timeSpeed, character.index); + if (timePassed < 0) + return; + + float weight = weightMult * emissionCurve.Evaluate(timePassed); + + if(animationData.TryCalculatingMatrix(character, timePassed, weight, out var matrix, out var offset)) + { + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + character.current.positions[i] = matrix.MultiplyPoint3x4(character.current.positions[i] - offset) + offset; + } + } + + if(animationData.TryCalculatingColor(character, timePassed, weight, out var color)) + { + character.current.colors.LerpUnclamped(color, Mathf.Clamp01(weight)); + } + + } + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta new file mode 100644 index 0000000..af9eee7 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/UniformCurveAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f29c16c9fe849e442b4f1bab0c32e28a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs new file mode 100644 index 0000000..fe82367 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs @@ -0,0 +1,112 @@ +using Febucci.UI.Core; +using Febucci.UI.Effects; +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + [UnityEngine.Scripting.Preserve] + [CreateAssetMenu(fileName = "Vertex Curve Animation", menuName = "Text Animator/Animations/Special/Vertex Curve Animation")] + [EffectInfo("", EffectCategory.All)] + public sealed class VertexCurveAnimation : AnimationScriptableBase + { + public TimeMode timeMode = new TimeMode(true); + [EmissionCurveProperty] public EmissionCurve emissionCurve = new EmissionCurve(); + + [SerializeField] AnimationData[] animationPerVertexData = new AnimationData[TextUtilities.verticesPerChar]; + public AnimationData[] VertexData + { + get => animationPerVertexData; + set + { + animationPerVertexData = value; + ClampVertexDataArray(); + } + } + + //--- Modifiers --- + float timeSpeed; + float weightMult; + + //--- Management --- + Matrix4x4 matrix; + Vector3 offset; + Vector3 movement; + Vector2 scale; + Quaternion rot; + Color32 color; + + public override void ResetContext(TAnimCore animator) + { + weightMult = 1; + timeSpeed = 1; + ClampVertexDataArray(); + } + + public override void SetModifier(ModifierInfo modifier) + { + switch (modifier.name) + { + case "f": //frequency, increases the time speed + timeSpeed = modifier.value; + break; + + case "a": //increase the amplitude + weightMult = modifier.value; + break; + } + } + + float timePassed; + public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator) + { + timePassed = timeMode.GetTime(animator.time.timeSinceStart * timeSpeed, character.passedTime * timeSpeed, character.index); + if(timePassed<0) + return; + + float weight = weightMult * emissionCurve.Evaluate(timePassed); + + for (byte i = 0; i < TextUtilities.verticesPerChar; i++) + { + if(animationPerVertexData[i].TryCalculatingMatrix(character, timePassed, weight, out matrix, out offset)) + { + character.current.positions[i] = matrix.MultiplyPoint3x4(character.current.positions[i] - offset) + offset; + } + + if(animationPerVertexData[i].TryCalculatingColor(character, timePassed, weight, out color)) + { + character.current.colors[i] = Color32.LerpUnclamped(character.current.colors[i], color, Mathf.Clamp01(weight)); + } + } + } + + public override float GetMaxDuration() => emissionCurve.GetMaxDuration(); + public override bool CanApplyEffectTo(CharacterData character, TAnimCore animator) => true; + + void ClampVertexDataArray() + { + for (int i = 0; i < animationPerVertexData.Length; i++) + { + if (animationPerVertexData[i] == null) + animationPerVertexData[i] = new AnimationData(); + } + + if (animationPerVertexData.Length != TextUtilities.verticesPerChar) + { + Debug.LogError("Vertex data array must have four vertices. Clamping/Resizing to four."); + + var newArray = new AnimationData[TextUtilities.verticesPerChar]; + for (int i = 0; i < newArray.Length; i++) + { + if (i < animationPerVertexData.Length) + newArray[i] = animationPerVertexData[i]; + else + newArray[i] = new AnimationData(); + } + animationPerVertexData = newArray; + } + } + + void OnValidate() => ClampVertexDataArray(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta new file mode 100644 index 0000000..80b130b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/Built-in/VertexCurveAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 29c51188496414c2893fff43f194d40a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta new file mode 100644 index 0000000..d9cd875 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9447a4edcc4c042219276d5c0bad1da9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs new file mode 100644 index 0000000..ea50d70 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs @@ -0,0 +1,87 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + [System.Serializable] + public class AnimationData + { + //--- Curves --- + //Movement + [FloatCurveProperty] public FloatCurve movementX = new FloatCurve(1, 0, 0); + [FloatCurveProperty] public FloatCurve movementY = new FloatCurve(1, 0, 0); + [FloatCurveProperty] public FloatCurve movementZ = new FloatCurve(1, 0, 0); + + //Scale + [FloatCurveProperty] public FloatCurve scaleX = new FloatCurve(2, 0, 1); + [FloatCurveProperty] public FloatCurve scaleY = new FloatCurve(2, 0, 1); + + //Rotation + [FloatCurveProperty] public FloatCurve rotX = new FloatCurve(45, 0, 0); + [FloatCurveProperty] public FloatCurve rotY = new FloatCurve(45, 0, 0); + [FloatCurveProperty] public FloatCurve rotZ = new FloatCurve(45, 0, 0); + + //Color + [ColorCurveProperty] public ColorCurve colorCurve = new ColorCurve(0); + + Vector3 movement; + Vector2 scale; + Quaternion rot; + + public bool TryCalculatingMatrix(Core.CharacterData character, + float timePassed, + float weight, + out Matrix4x4 matrix, + out Vector3 offset) + { + //Saves a bunch of performance in case user wants only color or movement + //TODO cache + matrix = new Matrix4x4(); + + if (!(movementX.enabled || movementY.enabled || movementZ.enabled + || rotX.enabled || rotY.enabled || rotZ.enabled + || scaleX.enabled || scaleY.enabled)) + { + offset = Vector2.zero; + return false; + } + + offset = (character.current.positions[0] + character.current.positions[2]) / 2f; + + //weighted rotation + rot = Quaternion.Euler( + Mathf.LerpUnclamped(0, rotX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, rotY.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, rotZ.Evaluate(timePassed, character.index), weight)); + + //weighted movement + movement = new Vector3( + Mathf.LerpUnclamped(0, movementX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, movementY.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(0, movementZ.Evaluate(timePassed, character.index), weight)); + + //weighted scale + scale = new Vector2( + Mathf.LerpUnclamped(1, scaleX.Evaluate(timePassed, character.index), weight), + Mathf.LerpUnclamped(1, scaleY.Evaluate(timePassed, character.index), weight)); + + matrix.SetTRS( + movement, + rot, + scale); + + return true; + } + + public bool TryCalculatingColor(Core.CharacterData character, float timePassed, float weight, out Color32 color) + { + if(!colorCurve.enabled) + { + color = Color.white; + return false; + } + + color = colorCurve.Evaluate(timePassed, character.index); + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta new file mode 100644 index 0000000..f696898 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/AnimationData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b417e2a805ff4c638d914f06efa1659 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs new file mode 100644 index 0000000..ab948dd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs @@ -0,0 +1,47 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + public class ColorCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] + public struct ColorCurve + { + public bool enabled; + + public Gradient colorOverTime; + public float waveSize; + public float duration; + + public ColorCurve(float waveSize) + { + this.enabled = false; + this.waveSize = waveSize; + this.duration = 1; + this.colorOverTime = new Gradient(); + colorOverTime.SetKeys( + new GradientColorKey[] + { + new GradientColorKey(Color.white, 0), + new GradientColorKey(Color.cyan, 0.5f), + new GradientColorKey(Color.white, 1) + }, + + new GradientAlphaKey[] + { + new GradientAlphaKey(1, 0), + new GradientAlphaKey(1, 1) + } + ); + } + + public Color32 Evaluate(float time, int charIndex) + { + time = Mathf.Repeat(time + charIndex * waveSize, duration); + return colorOverTime.Evaluate(time); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta new file mode 100644 index 0000000..5927395 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/ColorCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 54279f81e5b424013885578744e46a04 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs new file mode 100644 index 0000000..fc14538 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + public class EmissionCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] + public class EmissionCurve + { + public int cycles; + public float duration; + public float GetMaxDuration() => cycles > 0 ? duration * cycles : -1; + [SerializeField] public AnimationCurve weightOverTime; + public EmissionCurve() + { + cycles = -1; + duration = 1; + weightOverTime = new AnimationCurve( + new[] + { + new Keyframe(0, 1), + new Keyframe(1, 1) + }); + } + + public EmissionCurve(params Keyframe[] keyframes) + { + cycles = -1; + duration = 1; + weightOverTime = new AnimationCurve(keyframes); + } + + public float Evaluate(float timePassed) + { + if (cycles > 0 && timePassed > duration * cycles) return 0; + + return weightOverTime.Evaluate(timePassed % duration); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta new file mode 100644 index 0000000..0e3aebe --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/EmissionCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a1f62454fdf64f1fa75746c09b89a39 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs new file mode 100644 index 0000000..3c8814e --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs @@ -0,0 +1,39 @@ +using UnityEngine; +using UnityEngine.Serialization; + +namespace Febucci.UI.Effects +{ + public class FloatCurveProperty : PropertyAttribute + { + + } + + [System.Serializable] //TODO test + public struct FloatCurve + { + public bool enabled; + + readonly float defaultAmplitude; + public AnimationCurve weightOverTime; + public float amplitude; + public float waveSize; + + public FloatCurve(float amplitude, float waveSize, float defaultAmplitude) + { + this.defaultAmplitude = defaultAmplitude; + this.enabled = false; + this.amplitude = amplitude; + this.weightOverTime = new AnimationCurve(new Keyframe(0, 0), new Keyframe(.5f, .5f), new Keyframe(1, 0)); + this.weightOverTime.preWrapMode = WrapMode.Loop; + this.weightOverTime.postWrapMode = WrapMode.Loop; + this.waveSize = 0; + } + + public float Evaluate(float passedTime, int charIndex) + { + if(!enabled) return defaultAmplitude; + + return Mathf.LerpUnclamped(defaultAmplitude, amplitude, weightOverTime.Evaluate(passedTime + waveSize * charIndex)); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta new file mode 100644 index 0000000..b22e5db --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/FloatCurve.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 534fa2c94985d4c0f9e3f08be5643d93 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs new file mode 100644 index 0000000..ac8f73a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs @@ -0,0 +1,29 @@ +namespace Febucci.UI.Effects +{ + [System.Serializable] + public struct TimeMode + { + public float startDelay; + public bool useUniformTime; + public float waveSize; + public float timeSpeed; + + public TimeMode(bool useUniformTime) + { + this.useUniformTime = useUniformTime; + waveSize = 0; + timeSpeed = 1; + startDelay = 0; + tempTime = 0; + } + + float tempTime; + public float GetTime(float animatorTime, float charTime, int charIndex) + { + tempTime = ((useUniformTime ? animatorTime : charTime) - startDelay) * timeSpeed - waveSize * charIndex; + if (tempTime < startDelay) + return -1; + return tempTime; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta new file mode 100644 index 0000000..d21f849 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Special/Curves/_Core/TimeMode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7da2fc6307c647549bfdba8d42c00652 +timeCreated: 1680257522 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta new file mode 100644 index 0000000..34e886d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da150bd21a2db4b87ac5eed209c5ae29 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs new file mode 100644 index 0000000..1104dbd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs @@ -0,0 +1,54 @@ +using Febucci.UI.Core; +using UnityEngine; + +namespace Febucci.UI.Effects +{ + /// + /// Base class for animating letters in Text Animator + /// + public abstract class AnimationScriptableBase : ScriptableObject, ITagProvider + { + [SerializeField] string tagID; + public string TagID + { + get => tagID; + set => tagID = value; //TODO if playing, discard rebuild if already initialized + } + + //--- INITIALIZATION --- + bool initialized = false; + public void InitializeOnce() + { + if(initialized) return; + + initialized = true; + + OnInitialize(); + } + + protected virtual void OnInitialize(){ } + + void OnEnable() + { + //resets for enter playmode settings + initialized = false; + } + + //--- ABSTRACT / VIRTUAL METHODS ---+ + + /// + /// Resets the effect context (base variables) for every region, before applying modifiers (if any) with + /// + public abstract void ResetContext(TAnimCore animator); + + /// + /// Changes an effect' base variable based on the passed parameter. + /// + /// + public virtual void SetModifier(ModifierInfo modifier) { } + public abstract float GetMaxDuration(); + public abstract bool CanApplyEffectTo(CharacterData character, TAnimCore animator); + public abstract void ApplyEffectTo(ref CharacterData character, TAnimCore animator); + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta new file mode 100644 index 0000000..19bc48a --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationScriptableBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdd8e5ebf6899a84f89605d743590fdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs new file mode 100644 index 0000000..b19fd63 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs @@ -0,0 +1,14 @@ +using Febucci.UI.Core; + +namespace Febucci.UI.Effects +{ + /// + /// Contains animations that will be recognized and used by Text Animator + /// + [System.Serializable] + [UnityEngine.CreateAssetMenu(fileName = "Animations Database", menuName = "Text Animator/Animations/Create Animations Database", order = 100)] + public class AnimationsDatabase : Database + { + + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta new file mode 100644 index 0000000..9870f19 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/AnimationsDatabase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 103e863f5c0347be8a512f431aaf5ec1 +timeCreated: 1677521214 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs new file mode 100644 index 0000000..e7109f9 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs @@ -0,0 +1,17 @@ +using System; + +namespace Febucci.UI.Core +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] + public class DefaultValueAttribute : Attribute + { + public readonly string variableName; + public readonly float variableValue; + + public DefaultValueAttribute(string variableName, float variableValue) + { + this.variableName = variableName; + this.variableValue = variableValue; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta new file mode 100644 index 0000000..40defca --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/DefaultValueAttribute.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1aa92d7ec7964d30b8976caee1babfe7 +timeCreated: 1678706826 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs new file mode 100644 index 0000000..c641318 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs @@ -0,0 +1,34 @@ +using System; + +namespace Febucci.UI.Core +{ + [Flags] + public enum EffectCategory + { + None = 0, + Behaviors = 1, + Appearances = 2, + All = Behaviors | Appearances + } + + [AttributeUsage(AttributeTargets.Class)] + public class TagInfoAttribute : Attribute + { + public readonly string tagID; + public TagInfoAttribute(string tagID) + { + this.tagID = tagID; + } + } + + [AttributeUsage(AttributeTargets.Class)] + public class EffectInfoAttribute : TagInfoAttribute + { + public readonly EffectCategory category; + + public EffectInfoAttribute(string tagID, EffectCategory category) : base(tagID) + { + this.category = category; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta new file mode 100644 index 0000000..8d82730 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/_Core/EffectInfoAttribute.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d39438ca5b9e4692916f5929b4c3ff1d +timeCreated: 1678384125 \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta new file mode 100644 index 0000000..f75844b --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b5322a2db28c4d3893673cabc2b05db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs new file mode 100644 index 0000000..7b202a1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs @@ -0,0 +1,105 @@ +using Febucci.UI.Actions; +using Febucci.UI.Core; +using Febucci.UI.Core.Parsing; +using Febucci.UI.Effects; +using UnityEngine; + +namespace Febucci.UI +{ + /// + /// Contains global settings for Text Animator, like effects enabled status and default databases. + /// + [System.Serializable] + [CreateAssetMenu(fileName = "Text Animator Settings", menuName = "Text Animator/Settings", order = 100)] + public sealed class TextAnimatorSettings : ScriptableObject + { + public const string expectedName = "TextAnimatorSettings"; + static TextAnimatorSettings instance; + + /// + /// The current instance of the settings. If it's null, it will be loaded from the resources. + /// (Make sure to have one "TextAnimatorSettings" file in the Resources folder.) + /// + public static TextAnimatorSettings Instance + { + get + { + if (instance) return instance; + + LoadSettings(); + return instance; + } + } + + /// + /// Manually loads the settings ScriptableObject in case it wasn't loaded yet. + /// + public static void LoadSettings() + { + if(instance) return; + instance = Resources.Load(expectedName); + } + + /// + /// Manually unloads the settings ScriptableObject instance. + /// + public static void UnloadSettings() + { + if(!instance) return; + + Resources.UnloadAsset(instance); + instance = null; + } + + /// + /// Sets all the effects (both appearances/disappearances and behaviors) status. + /// + /// + public static void SetAllEffectsActive(bool enabled) + { + SetAppearancesActive(enabled); + SetBehaviorsActive(enabled); + } + + /// + /// Sets all appearances effects status. + /// + /// + public static void SetAppearancesActive(bool enabled) + { + if (Instance) Instance.appearances.enabled = enabled; + } + + /// + /// Sets all behaviors effects status. + /// + /// + public static void SetBehaviorsActive(bool enabled) + { + if (Instance) Instance.behaviors.enabled = enabled; + } + + [System.Serializable] + public struct Category where T : ScriptableObject + { + public T defaultDatabase; + + public bool enabled; + public char openingSymbol; + public char closingSymbol; + + public Category(char openingSymbol, char closingSymbol) + { + defaultDatabase = null; + enabled = true; + this.openingSymbol = openingSymbol; + this.closingSymbol = closingSymbol; + } + } + + [Header("Default info")] + public Category behaviors = new Category('<', '>'); + public Category appearances = new Category('{', '}'); + public Category actions = new Category('<', '>'); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta new file mode 100644 index 0000000..e937fc6 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Settings/TextAnimatorSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9743a50feedea474dbef99517d3e30eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta new file mode 100644 index 0000000..5863d14 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0ccd8b0aa52fed49bcb7994d0e16485 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs new file mode 100644 index 0000000..a0ac156 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; + +namespace Febucci.UI.Core +{ + /// + /// Helper class. Contains methods to parse attributes/values from strings. + /// + public static class FormatUtils + { + /// + /// Tries to parse a rich text tag parameter. + /// + /// + /// Mostly used in combination with custom typewriter actions. (Manual: Writing Custom actions C#) + /// + /// list of all the attributesi in the rich text tag + /// the parameter's index in the list + /// default value, assigned if the parsing is not successful + /// result from the parsing + /// true if successful + public static bool TryGetFloat(List attributes, int index, float defValue, out float result) + { + if (index >= attributes.Count || index < 0) + { + result = defValue; + return false; + } + + return TryGetFloat(attributes[index], defValue, out result); + } + + //TODO Docs + public static bool TryGetFloat(string attribute, float defValue, out float result) + { + if (ParseFloat(attribute, out result)) + return true; + + result = defValue; + return false; + } + + /// + /// Tries parsing a float given a string, independently of the system's culture + /// + /// + /// + /// + public static bool ParseFloat(string value, out float result) + { + return float.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out result); + } + } + +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta new file mode 100644 index 0000000..a4e8332 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/FormatUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fa97b1b4f8a3bfa4b82ca06b835b4bb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs new file mode 100644 index 0000000..6c2a6fd --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs @@ -0,0 +1,216 @@ +using UnityEngine; + +namespace Febucci.UI.Core +{ + /// + /// Helper class. Contains methods (including extensions) that modify your letters positions and colors. + /// + public static class TextUtilities + { + #region Consts + + /// + /// Represents the number of vertices per character/letter. + /// + /// + /// P.S. bars/underlines have a different vertices number, but are not animated by TextAnimator. + /// + public const int verticesPerChar = 4; + + #endregion + + #region Vector Utilities + + public const int fakeRandomsCount = 25; //18° angle difference + internal static Vector3[] fakeRandoms; + public static Vector3[] FakeRandoms => fakeRandoms; + + static bool initialized = false; + internal static void Initialize() + { + if (initialized) + return; + + initialized = true; + + //Creates fake randoms from a list of directions (with an incremental angle of 360/fakeRandomsCount between each) + //and then sorts them randomly, avoiding repetitions (which could have occurred using Random.insideUnitCircle) + System.Collections.Generic.List randomDirections = new System.Collections.Generic.List(); + + float angle; + for (float i = 0; i < 360; i += 360 / fakeRandomsCount) + { + angle = i * Mathf.Deg2Rad; + randomDirections.Add(new Vector3(Mathf.Sin(angle), Mathf.Cos(angle)).normalized); + } + + fakeRandoms = new Vector3[fakeRandomsCount]; + int randomIndex; + for (int i = 0; i < fakeRandoms.Length; i++) + { + randomIndex = Random.Range(0, randomDirections.Count); + fakeRandoms[i] = randomDirections[randomIndex]; + randomDirections.RemoveAt(randomIndex); + } + } + + /// + /// Rotates a point around a 2D center by X degrees + /// + /// point to rotate + /// rotation's center + /// rotation degrees + /// + /// + /// letterVertex.RotateAround(letterMiddlePoint, angle); + /// + public static Vector3 RotateAround(this Vector3 vec, Vector2 center, float rotDegrees) + { + rotDegrees *= Mathf.Deg2Rad; + + float tempX = vec.x - center.x; + float tempY = vec.y - center.y; + + float rotatedX = tempX * Mathf.Cos(rotDegrees) - tempY * Mathf.Sin(rotDegrees); + float rotatedY = tempX * Mathf.Sin(rotDegrees) + tempY * Mathf.Cos(rotDegrees); + + vec.x = rotatedX + center.x; + vec.y = rotatedY + center.y; + + return vec; + } + + #endregion + + /// + /// Moves a char towards a direction. Equivalent to adding a vector to all the vertices. + /// + /// + /// + /// + public static void MoveChar(this Vector3[] vec, Vector3 dir) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] += dir; + } + } + + /// + /// Sets all the vertices of character to the given position. + /// + /// + /// + /// + public static void SetChar(this Vector3[] vec, Vector3 pos) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = pos; + } + } + + /// + /// Lerps all the character's vertices (without checking if pct is between 0 and 1) + /// + /// + /// + /// + /// + public static void LerpUnclamped(this Vector3[] vec, Vector3 target, float pct) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = Vector3.LerpUnclamped(vec[j], target, pct); + } + } + + /// + /// Returns the middle position of the given array + /// + /// + /// + public static Vector3 GetMiddlePos(this Vector3[] vec) + { + return (vec[0] + vec[2]) / 2f; //bot left and top right + + //'Normal way', for arrays with any size (not happening, since Bars aren't animated) + /* + Vector3 middlePos = Vector3.zero; + for (byte j = 0; j < vec.Length; j++) + { + middlePos += vec[j]; + } + + return (middlePos / vec.Length); + */ + } + + + /// + /// Rotates all the vertices towards an angle, with their center as the rotation pivot + /// + /// + /// + /// + public static void RotateChar(this Vector3[] vec, float angle) + { + Vector3 middlePos = vec.GetMiddlePos(); + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = vec[j].RotateAround(middlePos, angle); + } + } + + public static void RotateChar(this Vector3[] vec, float angle, Vector3 pivot) + { + for (byte j = 0; j < vec.Length; j++) + { + vec[j] = vec[j].RotateAround(pivot, angle); + } + } + + /// + /// Sets the color of all the vertices of the character. + /// + /// + /// + /// + public static void SetColor(this Color32[] col, Color32 target) + { + for (byte j = 0; j < col.Length; j++) + { + col[j] = target; + } + } + + /// + /// Lerps all the colors of the characters towards a given target + /// + /// + /// + /// + /// + public static void LerpUnclamped(this Color32[] col, Color32 target, float pct) + { + for (byte j = 0; j < col.Length; j++) + { + col[j] = Color32.LerpUnclamped(col[j], target, pct); + } + } + + + /// + /// Calculates the animation curve duration + /// + /// + /// + public static float CalculateCurveDuration(this AnimationCurve curve) + { + if (curve.keys.Length > 0) + return curve.keys[curve.length - 1].time; + + return 0; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta new file mode 100644 index 0000000..26fec25 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/TextUtilities.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 792ffbd6b25610f48800fce737481b10 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs new file mode 100644 index 0000000..f461a83 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs @@ -0,0 +1,90 @@ +using UnityEngine; + +namespace Febucci.UI.Effects +{ + //TODO Docs + + /// + /// Helper class used to interpolate effects. + /// + public static class Tween + { + public static float EaseIn(float t) + { + return t * t; + } + + public static float Flip(float x) + { + return 1 - x; + } + + public static float Square(float t) + { + return t * t; + } + + public static float EaseOut(float t) + { + return Flip(Square(Flip(t))); + } + + public static float EaseInOut(float t) + { + return Mathf.Lerp(EaseIn(t), EaseOut(t), t); + } + + #region BounceOut + public static float BounceOut(float t) + { + /* + License of the original method/algorithm, modified later for C#. + + ------------------------Start------------------------ + The MIT License + + Copyright (c) 2010-2012 Tween.js authors. + + Easing equations Copyright (c) 2001 Robert Penner http:/robertpenner.com/ easing/ + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + ------------------------End------------------------ + */ + + if (t < (1f / 2.75f)) + { + return 7.5625f * t * t; + } + else if (t < (2f / 2.75f)) + { + return 7.5625f * (t -= (1.5f / 2.75f)) * t + 0.75f; + } + else if (t < (2.5f / 2.75f)) + { + return 7.5625f * (t -= (2.25f / 2.75f)) * t + 0.9375f; + } + else + { + return 7.5625f * (t -= (2.625f / 2.75f)) * t + 0.984375f; + } + } + #endregion + } +} diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta new file mode 100644 index 0000000..93d140d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Utilities/Tween.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2edcfb3709f1187429d9fda2e36df38e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset index 9dc9cd8..b6ee06b 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset @@ -48,8 +48,8 @@ Material: - _Stencil: 0 - _StencilComp: 8 - _StencilOp: 0 - - _StencilReadMask: 255 - - _StencilWriteMask: 255 + - _StencilReadMask: 1 + - _StencilWriteMask: 0 - _TextureHeight: 1024 - _TextureWidth: 1024 - _UnderlayDilate: 0
+ /// Called once an event has been shown by the typewriter.
+ /// See the
Events Manual for more info. + ///

&%oCfaIFvYOkhDy9OikSik-`{)qE4*quQUo(3supjCwKD zaoh%*?IfJXseyqBKQTUbz*L_yJBYZ@#e-B+`3+8_;Yot3Me|DT+2@f)B)qCk_~T)) z%gYb0?YLibt53g9y->3--rW^s_^lQPSwdW)#Xb}3CwlI&i784}Q@9Jc%P9BsaU zWT+(Fmk$HSfsH}2wm5Yi_c4QHAWD!9+Un225}Kr=BWz|GCB4W_C!LX)lj@9=-E|6e!%`vUwq{~Lt=4Z{D{#s9af dKq&G1eGo*Qws4*Q9SZPLlv9(fkT(1D{{a6Djne=C literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Sprites/Example_sprites.png.meta b/Assets/Plugins/Febucci/Text Animator/Example/Sprites/Example_sprites.png.meta new file mode 100644 index 0000000..829e01d --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Sprites/Example_sprites.png.meta @@ -0,0 +1,402 @@ +fileFormatVersion: 2 +guid: 4dffe6eab57ca4e4ba2f967307bd1c29 +TextureImporter: + internalIDToNameTable: + - first: + 213: 3351748369286481944 + second: character_sprites_0 + - first: + 213: 567328745045655870 + second: character_sprites_1 + - first: + 213: 2750705142841656183 + second: character_sprites_2 + - first: + 213: -7053939661997144990 + second: character_sprites_3 + - first: + 213: 1892523670701107293 + second: character_sprites_4 + - first: + 213: 405182146505222058 + second: character_sprites_5 + - first: + 213: 2785564300681498144 + second: character_sprites_6 + - first: + 213: 6645427384175290001 + second: character_sprites_7 + - first: + 213: 834852548192020694 + second: crate_0 + - first: + 213: -7061757903698255618 + second: foliage_1 + - first: + 213: 9166712023175037457 + second: foliage_2 + externalObjects: {} + serializedVersion: 12 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + 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: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: character_sprites_0 + rect: + serializedVersion: 2 + x: 54 + y: 321 + width: 178 + height: 233 + alignment: 9 + pivot: {x: 0.45761597, y: 0.06519315} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 818c0df226dc38e20800000000000000 + internalID: 3351748369286481944 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_1 + rect: + serializedVersion: 2 + x: 247 + y: 321 + width: 182 + height: 235 + alignment: 9 + pivot: {x: 0.51184386, y: 0.04596246} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: e31805fdc7e8fd700800000000000000 + internalID: 567328745045655870 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_2 + rect: + serializedVersion: 2 + x: 458 + y: 319 + width: 197 + height: 233 + alignment: 9 + pivot: {x: 0.5000006, y: 0.055941995} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 773cae8e0c77c2620800000000000000 + internalID: 2750705142841656183 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_3 + rect: + serializedVersion: 2 + x: 679 + y: 317 + width: 191 + height: 231 + alignment: 9 + pivot: {x: 0.505643, y: 0.06142858} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 2640f93304f5b1e90800000000000000 + internalID: -7053939661997144990 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_4 + rect: + serializedVersion: 2 + x: 57 + y: 62 + width: 165 + height: 217 + alignment: 9 + pivot: {x: 0.49346823, y: 0.06790024} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d5868216048934a10800000000000000 + internalID: 1892523670701107293 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_5 + rect: + serializedVersion: 2 + x: 250 + y: 59 + width: 178 + height: 217 + alignment: 9 + pivot: {x: 0.49394536, y: 0.07286704} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: aa726c7f30f7f9500800000000000000 + internalID: 405182146505222058 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_6 + rect: + serializedVersion: 2 + x: 466 + y: 58 + width: 192 + height: 217 + alignment: 9 + pivot: {x: 0.48316002, y: 0.06293368} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 02e412119ff48a620800000000000000 + internalID: 2785564300681498144 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: character_sprites_7 + rect: + serializedVersion: 2 + x: 687 + y: 57 + width: 184 + height: 218 + alignment: 9 + pivot: {x: 0.47071308, y: 0.05999434} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 196eb663ffc493c50800000000000000 + internalID: 6645427384175290001 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: crate_0 + rect: + serializedVersion: 2 + x: 930 + y: 340 + width: 128 + height: 130 + alignment: 9 + pivot: {x: 0.50298166, y: 0.06253005} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 6d8a0d628fdf59b00800000000000000 + internalID: 834852548192020694 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: foliage_1 + rect: + serializedVersion: 2 + x: 933 + y: 247 + width: 43 + height: 42 + alignment: 9 + pivot: {x: 0.5266284, y: 0.16375333} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: ef02244f9989ffd90800000000000000 + internalID: -7061757903698255618 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: foliage_2 + rect: + serializedVersion: 2 + x: 992 + y: 247 + width: 74 + height: 65 + alignment: 9 + pivot: {x: 0.54126304, y: 0.08308223} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 11286ab8404b63f70800000000000000 + internalID: 9166712023175037457 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: + character_sprites_0: 3351748369286481944 + character_sprites_1: 567328745045655870 + character_sprites_2: 2750705142841656183 + character_sprites_3: -7053939661997144990 + character_sprites_4: 1892523670701107293 + character_sprites_5: 405182146505222058 + character_sprites_6: 2785564300681498144 + character_sprites_7: 6645427384175290001 + crate_0: 834852548192020694 + foliage_1: -7061757903698255618 + foliage_2: 9166712023175037457 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png b/Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png new file mode 100644 index 0000000000000000000000000000000000000000..157fdaffde86acc1151158d2434376b3b21607fe GIT binary patch literal 7929 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 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png.meta b/Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png.meta new file mode 100644 index 0000000..e4a19dc --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Example/Sprites/example_dialoguebox_body.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 0ee0b44b8c03546a392c57dc59d85589 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + vTOnly: 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: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 166, y: 211, z: 133, w: 137} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 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 + - serializedVersion: 3 + buildTarget: Standalone + 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: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Extra.meta b/Assets/Plugins/Febucci/Text Animator/Extra.meta new file mode 100644 index 0000000..e932c67 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Extra.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9589a74fa45a59448bb1a6a9aa8a597f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta new file mode 100644 index 0000000..4801b37 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 560a88da2bbc70140bed167f0ba7fe37 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations.meta b/Assets/Plugins/Febucci/Text Animator/Integrations.meta new file mode 100644 index 0000000..8bc02b1 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b68fd61c2b78d79478cbaac617d6bc42 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt b/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt new file mode 100644 index 0000000..dda5499 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt @@ -0,0 +1,12 @@ +Hi there! +Text Animator is already integrated with: + +-"Dialogue System for Unity" +-"Yarn Spinner" +-The packages you find in this folder, like "PlayMaker". +& More! + +Please read the documentation to discover all supported assets, how to integrate them etc. +-In case the plugin that you're using is not already supported, you can read how to support it in the documentation. + +Have a lovely day! \ No newline at end of file diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt.meta b/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt.meta new file mode 100644 index 0000000..d2980ef --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/Integrations.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6b5bd674898d304684e21cc62c5a15a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta new file mode 100644 index 0000000..77d64a8 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb01be13d6e88ca488dda82150319bfc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta new file mode 100644 index 0000000..05e5900 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 117dcc671050f5247bd8743b91ecaab7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf b/Assets/Plugins/Febucci/Text Animator/Quick Start [Offline].pdf new file mode 100644 index 0000000000000000000000000000000000000000..2e7d268f40469757b6202f5372d91978456238e4 GIT binary patch literal 86783 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