From 4261009c33805ab05ccfce27659b6945b22eaac9 Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Sat, 15 Mar 2025 11:44:30 +0100 Subject: [PATCH] Scriptable bullet emitter --- Resources/Debug/DebugLevels.tres | 12 ++-- Resources/Weapons/EnemyWeapon.tres | 6 +- Scenes/Maps/PlayerFSMTest.tscn | 56 ++++++++++++++-- Scripts/Actors/Boss.cs | 3 +- Scripts/Actors/ScriptableBulletsEmitter.cs | 64 +++++++++++++++++++ .../Actors/ScriptableBulletsEmitter.cs.uid | 1 + Scripts/AttackPatterns/IScriptHost.cs | 9 +++ Scripts/AttackPatterns/MovementPattern.cs | 17 +++-- Scripts/AttackPatterns/PatternTest.cs | 8 +-- Scripts/AttackPatterns/SpiralPattern.cs | 64 ++++++++++--------- Scripts/AttackPatterns/TargetedPattern.cs | 12 ++-- Scripts/Resources/AttackPattern.cs | 4 +- Scripts/Resources/BossPhase.cs | 2 +- Scripts/Resources/BulletScript.cs | 41 ++++++++++++ Scripts/Resources/BulletScript.cs.uid | 1 + Scripts/Resources/PatternGroup.cs | 8 +-- Scripts/Resources/SimpleMovementPattern.cs | 17 +++-- 17 files changed, 251 insertions(+), 74 deletions(-) create mode 100644 Scripts/Actors/ScriptableBulletsEmitter.cs create mode 100644 Scripts/Actors/ScriptableBulletsEmitter.cs.uid create mode 100644 Scripts/AttackPatterns/IScriptHost.cs create mode 100644 Scripts/Resources/BulletScript.cs create mode 100644 Scripts/Resources/BulletScript.cs.uid diff --git a/Resources/Debug/DebugLevels.tres b/Resources/Debug/DebugLevels.tres index 39a72ac8..8b91e794 100644 --- a/Resources/Debug/DebugLevels.tres +++ b/Resources/Debug/DebugLevels.tres @@ -19,7 +19,7 @@ _name = "Intro" [sub_resource type="Resource" id="Resource_cfhv5"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] [sub_resource type="Resource" id="Resource_0k62o"] script = ExtResource("2_tnajf") @@ -31,7 +31,7 @@ StartData = SubResource("Resource_cfhv5") [sub_resource type="Resource" id="Resource_tpb7s"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] [sub_resource type="Resource" id="Resource_edoov"] script = ExtResource("2_tnajf") @@ -43,7 +43,7 @@ StartData = SubResource("Resource_tpb7s") [sub_resource type="Resource" id="Resource_1sw5g"] script = ExtResource("1_ov731") EggIndex = 255 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] [sub_resource type="Resource" id="Resource_47bot"] script = ExtResource("2_tnajf") @@ -73,7 +73,7 @@ _name = "Rebel Base" [sub_resource type="Resource" id="Resource_maxpt"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] [sub_resource type="Resource" id="Resource_pein5"] script = ExtResource("2_tnajf") @@ -128,7 +128,7 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m" [sub_resource type="Resource" id="Resource_7sue8"] script = ExtResource("1_ov731") EggIndex = 255 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] metadata/_custom_type_script = "uid://mja0rk7n2kln" [sub_resource type="Resource" id="Resource_ognca"] @@ -142,7 +142,7 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m" [sub_resource type="Resource" id="Resource_olpjo"] script = ExtResource("1_ov731") EggIndex = 0 -StartingEquipment = Array[ExtResource("2_bkci5")]([]) +StartingEquipment = [] metadata/_custom_type_script = "uid://mja0rk7n2kln" [sub_resource type="Resource" id="Resource_nbnej"] diff --git a/Resources/Weapons/EnemyWeapon.tres b/Resources/Weapons/EnemyWeapon.tres index 458ee828..f4e75c25 100644 --- a/Resources/Weapons/EnemyWeapon.tres +++ b/Resources/Weapons/EnemyWeapon.tres @@ -5,7 +5,7 @@ [resource] script = ExtResource("2_8ycgt") -Name = "Enemy Weapon" +Name = null BulletData = ExtResource("1_eps1c") RateOfFire = 0.3 BulletCapacity = 4 @@ -15,6 +15,6 @@ InfiniteAmmo = true BulletsPerShot = 1 SpreadAngle = 0.0 RandomSpread = 0.0 -ItemKey = "EnemyWeapon" -AmmoKey = "" +ItemKey = null +AmmoKey = null _rotationOffset = 0.0 diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index d5781d67..b70baf80 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=59 format=4 uid="uid://dqyfnby0t7gu1"] +[gd_scene load_steps=68 format=4 uid="uid://dqyfnby0t7gu1"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_c3v4x"] [ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="3_6314l"] @@ -49,6 +49,12 @@ [ext_resource type="Script" uid="uid://dl50bcl8dx3k8" path="res://Scripts/Components/FSM/TestModule.cs" id="36_4rfvg"] [ext_resource type="Resource" uid="uid://ncukdupc7hbm" path="res://Resources/Bullets/Explosion.tres" id="36_m2siw"] [ext_resource type="PackedScene" uid="uid://dcbcyp1qogcl0" path="res://Scenes/Props/BigTankHorizontal.tscn" id="36_tj8x8"] +[ext_resource type="Texture2D" uid="uid://ck8e4ngk8wy0m" path="res://Sprites/Actors/Floor_Emitter.png" id="38_kc3i0"] +[ext_resource type="Script" uid="uid://c1gu44a1kkmt1" path="res://Scripts/Actors/ScriptableBulletsEmitter.cs" id="38_m2f1m"] +[ext_resource type="Script" uid="uid://bngko08ho85p6" path="res://Scripts/Resources/BulletScript.cs" id="39_83jc5"] +[ext_resource type="Resource" uid="uid://dqnvesdj0dk3v" path="res://Resources/Bullets/simple_enemy_bullet.tres" id="39_b0wyy"] +[ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="40_o56je"] +[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="43_b8ffn"] [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_u1i8n") @@ -76,6 +82,27 @@ _data = { } point_count = 2 +[sub_resource type="Resource" id="Resource_4mkc6"] +script = ExtResource("40_o56je") +BulletResource = ExtResource("39_b0wyy") +bulletCount = 16 +rotationSpeed = 0.0 +_rotationOffset = 0.0 +duration = 5.0 +burstInterval = 0.5 +spread = 360.0 +_timeModifiers = null +_targetPlayer = false +WaitForCompletion = true +metadata/_custom_type_script = "uid://c0ndqalsc4jve" + +[sub_resource type="Resource" id="Resource_g5r8k"] +script = ExtResource("39_83jc5") +Patterns = Array[Object]([SubResource("Resource_4mkc6")]) +metadata/_custom_type_script = "uid://bngko08ho85p6" + +[sub_resource type="CircleShape2D" id="CircleShape2D_b0wyy"] + [sub_resource type="Resource" id="Resource_pgobb"] script = ExtResource("29_3ll5g") RelativeTargetPosition = Vector2(0, -96) @@ -114,7 +141,7 @@ _solidLayers = [NodePath("../Solid"), NodePath("../Props")] metadata/_edit_lock_ = true [node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] -tile_map_data = PackedByteArray("AAACAA0AAAAAAAgAAAADAA0AAAABAAcAAAAEAA0AAAABAAcAAAAFAA0AAAABAAcAAAAGAA0AAAABAAcAAAAHAA0AAAABAAcAAAAIAA0AAAABAAcAAAAJAA0AAAABAAcAAAAKAA0AAAAEAAwAAAALAA0AAAAFAAsAAAAMAA0AAAABAAUAAAAMAA4AAAAAAAYAAAAMAA8AAAAAAAYAAAAMABAAAAAAAAYAAAAMABEAAAAAAAcAAAAMABYAAAAAAAUAAAAMABcAAAAAAAYAAAAMABgAAAAAAAYAAAAMABkAAAABAAkAAAALABkAAAABAAUAAAAKABkAAAABAAUAAAAJABkAAAABAAUAAAAIABkAAAABAAUAAAAHABkAAAABAAUAAAAGABkAAAABAAUAAAAFABkAAAABAAUAAAAEABkAAAABAAUAAAADABkAAAABAAUAAAACABkAAAAAAAkAAAACABgAAAACAAYAAAACABYAAAACAAYAAAACABcAAAACAAYAAAACABUAAAACAAYAAAACABQAAAACAAYAAAACABIAAAACAAYAAAACABMAAAACAAYAAAACABEAAAACAAYAAAACABAAAAACAAYAAAACAA8AAAACAAYAAAACAA4AAAACAAYAAAADAA4AAAANAAAAAAADAA8AAAANAAEAAAAEAA4AAAANAAAAAAAEAA8AAAANAAEAAAAFAA4AAAANAAAAAAAFAA8AAAANAAEAAAAGAA4AAAANAAAAAAAGAA8AAAANAAEAAAAHAA4AAAANAAAAAAAHAA8AAAANAAEAAAAIAA4AAAANAAAAAAAIAA8AAAANAAEAAAAJAA4AAAANAAAAAAAJAA8AAAANAAEAAAAKAA4AAAANAAAAAAAKAA8AAAANAAEAAAALAA4AAAANAAAAAAALAA8AAAANAAEAAAANABEAAAABAAcAAAAOABEAAAABAAcAAAAPABEAAAABAAcAAAAQABEAAAABAAcAAAANABYAAAAEAAsAAAARABEAAAACAAcAAAARABAAAAACAAYAAAARAA8AAAACAAYAAAARAA4AAAACAAYAAAARAA0AAAACAAUAAAAUABYAAAABAAQAAAAVABUAAAAAAAYAAAAVABYAAAAFAAwAAAAVABIAAAAAAAYAAAAVABEAAAAAAAUAAAAVAA4AAAAAAAcAAAAVAA0AAAAAAAUAAAAVABQAAAAAAAYAAAAVABMAAAAAAAYAAAAMABIAAAAMAAAAAAAMABMAAAAMAAEAAAANABIAAAALAAIAAAANABMAAAALAAMAAAAOABIAAAAMAAAAAAAOABMAAAAMAAEAAAAPABIAAAAMAAAAAAAPABMAAAAMAAEAAAAQABIAAAALAAIAAAAQABMAAAALAAMAAAARABIAAAAMAAAAAAARABMAAAAMAAEAAAAaABYAAAABAAcAAAAZABYAAAABAAcAAAAYABYAAAABAAcAAAAXABYAAAABAAcAAAAWABYAAAABAAcAAAANABsAAAACAAYAAAANABoAAAACAAYAAAANABkAAAACAAYAAAANABgAAAACAAYAAAANABcAAAACAAYAAAAMABsAAAACAAgAAAAMABoAAAACAAgAAAANACIAAAACAAYAAAANACEAAAACAAYAAAANACAAAAACAAYAAAANAB8AAAACAAYAAAANAB4AAAACAAYAAAANAB0AAAACAAYAAAANABwAAAACAAYAAAAMACIAAAACAAgAAAAMACEAAAACAAgAAAAMACAAAAACAAgAAAAMAB8AAAACAAgAAAAMAB4AAAACAAgAAAAMAB0AAAACAAgAAAAMABwAAAACAAgAAAALACIAAAACAAgAAAALACEAAAACAAgAAAALACAAAAACAAgAAAALAB8AAAACAAgAAAALAB4AAAACAAgAAAALAB0AAAACAAgAAAALABwAAAACAAgAAAALABsAAAACAAgAAAAKACIAAAACAAgAAAAKACEAAAACAAgAAAAKACAAAAACAAgAAAAKAB8AAAACAAgAAAAKAB4AAAACAAgAAAAKAB0AAAACAAgAAAAKABwAAAACAAgAAAAKABsAAAACAAgAAAAJACIAAAACAAgAAAAJACEAAAACAAgAAAAJACAAAAACAAgAAAAJAB8AAAACAAgAAAAJAB4AAAACAAgAAAAJAB0AAAACAAgAAAAJABwAAAACAAgAAAAJABsAAAACAAgAAAAIACIAAAACAAgAAAAIACEAAAACAAgAAAAIACAAAAACAAgAAAAIAB8AAAACAAgAAAAIAB4AAAACAAgAAAAIAB0AAAACAAgAAAAIABwAAAACAAgAAAAIABsAAAACAAgAAAAHACIAAAACAAgAAAAHACEAAAACAAgAAAAHACAAAAACAAgAAAAHAB8AAAACAAgAAAAHAB4AAAACAAgAAAAHAB0AAAACAAgAAAAHABwAAAACAAgAAAAHABsAAAACAAgAAAAGACIAAAACAAgAAAAGACEAAAACAAgAAAAGACAAAAACAAgAAAAGAB8AAAACAAgAAAAGAB4AAAACAAgAAAAGAB0AAAACAAgAAAAGABwAAAACAAgAAAAGABsAAAACAAgAAAAFACIAAAACAAgAAAAFACEAAAACAAgAAAAFACAAAAACAAgAAAAFAB8AAAACAAgAAAAFAB4AAAACAAgAAAAFAB0AAAACAAgAAAAFABwAAAACAAgAAAAFABsAAAACAAgAAAAEACIAAAACAAgAAAAEACEAAAACAAgAAAAEACAAAAACAAgAAAAEAB8AAAACAAgAAAAEAB4AAAACAAgAAAAEAB0AAAACAAgAAAAEABwAAAACAAgAAAAEABsAAAACAAgAAAADACIAAAACAAgAAAADACEAAAACAAgAAAADACAAAAACAAgAAAADAB8AAAACAAgAAAADAB4AAAACAAgAAAADAB0AAAACAAgAAAADABwAAAACAAgAAAADABsAAAACAAgAAAACACIAAAACAAgAAAACACEAAAACAAgAAAACACAAAAACAAgAAAACAB8AAAACAAgAAAACAB4AAAACAAgAAAACAB0AAAACAAgAAAACABwAAAACAAgAAAACABsAAAACAAgAAAABACIAAAACAAgAAAABACEAAAACAAgAAAABACAAAAACAAgAAAABAB8AAAACAAgAAAABAB4AAAACAAgAAAABAB0AAAACAAgAAAABABwAAAACAAgAAAABABsAAAACAAgAAAALABoAAAACAAgAAAAKABoAAAACAAgAAAAJABoAAAACAAgAAAAIABoAAAACAAgAAAAHABoAAAACAAgAAAAGABoAAAACAAgAAAAFABoAAAACAAgAAAAEABoAAAACAAgAAAADABoAAAACAAgAAAACABoAAAACAAgAAAABABoAAAACAAgAAAABABkAAAACAAgAAAAAACEAAAACAAgAAAAAACAAAAACAAgAAAAAAB8AAAACAAgAAAAAAB4AAAACAAgAAAAAAB0AAAACAAgAAAAAABwAAAACAAgAAAAAABsAAAACAAgAAAAAABoAAAACAAgAAAAAABkAAAACAAgAAAABABgAAAACAAgAAAABABcAAAACAAgAAAABABYAAAACAAgAAAABABUAAAACAAgAAAABABQAAAACAAgAAAABABMAAAACAAgAAAABABIAAAACAAgAAAABABEAAAACAAgAAAABABAAAAACAAgAAAABAA8AAAACAAgAAAABAA4AAAACAAgAAAABAA0AAAACAAgAAAABAAwAAAACAAgAAAABAAsAAAACAAgAAAABAAoAAAACAAgAAAABAAkAAAACAAgAAAABAAgAAAACAAgAAAABAAcAAAACAAgAAAAAACIAAAACAAgAAAAAABgAAAACAAgAAAAAABcAAAACAAgAAAAAABYAAAACAAgAAAAAABUAAAACAAgAAAAAABQAAAACAAgAAAAAABMAAAACAAgAAAAAABIAAAACAAgAAAAAABEAAAACAAgAAAAAABAAAAACAAgAAAAAAA8AAAACAAgAAAAAAA4AAAACAAgAAAAAAA0AAAACAAgAAAAAAAwAAAACAAgAAAAAAAsAAAACAAgAAAAAAAoAAAACAAgAAAAAAAkAAAACAAgAAAAAAAgAAAACAAgAAAAAAAcAAAACAAgAAAD//yIAAAACAAgAAAD//yEAAAACAAgAAAD//yAAAAACAAgAAAD//x8AAAACAAgAAAD//x4AAAACAAgAAAD//x0AAAACAAgAAAD//xwAAAACAAgAAAD//xsAAAACAAgAAAD//xoAAAACAAgAAAD//xkAAAACAAgAAAD//xgAAAACAAgAAAD//xcAAAACAAgAAAD//xYAAAACAAgAAAD//xUAAAACAAgAAAD//xQAAAACAAgAAAD//xMAAAACAAgAAAD//xIAAAACAAgAAAD//xEAAAACAAgAAAD//xAAAAACAAgAAAD//w8AAAACAAgAAAD//w4AAAACAAgAAAD//w0AAAACAAgAAAD//wwAAAACAAgAAAD//wsAAAACAAgAAAD//woAAAACAAgAAAD//wkAAAACAAgAAAD//wgAAAACAAgAAAD//wcAAAACAAgAAAD+/yIAAAACAAgAAAD+/yEAAAACAAgAAAD+/yAAAAACAAgAAAD+/x8AAAACAAgAAAD+/x4AAAACAAgAAAD+/x0AAAACAAgAAAD+/xwAAAACAAgAAAD+/xsAAAACAAgAAAD+/xoAAAACAAgAAAD+/xkAAAACAAgAAAD+/xgAAAACAAgAAAD+/xcAAAACAAgAAAD+/xYAAAACAAgAAAD+/xUAAAACAAgAAAD+/xQAAAACAAgAAAD+/xMAAAACAAgAAAD+/xIAAAACAAgAAAD+/xEAAAACAAgAAAD+/xAAAAACAAgAAAD+/w8AAAACAAgAAAD+/w4AAAACAAgAAAD+/w0AAAACAAgAAAD+/wwAAAACAAgAAAD+/wsAAAACAAgAAAD+/woAAAACAAgAAAD+/wkAAAACAAgAAAD+/wgAAAACAAgAAAD+/wcAAAACAAgAAAD9/yIAAAACAAgAAAD9/yEAAAACAAgAAAD9/yAAAAACAAgAAAD9/x8AAAACAAgAAAD9/x4AAAACAAgAAAD9/x0AAAACAAgAAAD9/xwAAAACAAgAAAD9/xsAAAACAAgAAAD9/xoAAAACAAgAAAD9/xkAAAACAAgAAAD9/xgAAAACAAgAAAD9/xcAAAACAAgAAAD9/xYAAAACAAgAAAD9/xUAAAACAAgAAAD9/xQAAAACAAgAAAD9/xMAAAACAAgAAAD9/xIAAAACAAgAAAD9/xEAAAACAAgAAAD9/xAAAAACAAgAAAD9/w8AAAACAAgAAAD9/w4AAAACAAgAAAD9/w0AAAACAAgAAAD9/wwAAAACAAgAAAD9/wsAAAACAAgAAAD9/woAAAACAAgAAAD9/wkAAAACAAgAAAD9/wgAAAACAAgAAAD9/wcAAAACAAgAAAD8/yIAAAACAAgAAAD8/yEAAAACAAgAAAD8/yAAAAACAAgAAAD8/x8AAAACAAgAAAD8/x4AAAACAAgAAAD8/x0AAAACAAgAAAD8/xwAAAACAAgAAAD8/xsAAAACAAgAAAD8/xoAAAACAAgAAAD8/xkAAAACAAgAAAD8/xgAAAACAAgAAAD8/xcAAAACAAgAAAD8/xYAAAACAAgAAAD8/xUAAAACAAgAAAD8/xQAAAACAAgAAAD8/xMAAAACAAgAAAD8/xIAAAACAAgAAAD8/xEAAAACAAgAAAD8/xAAAAACAAgAAAD8/w8AAAACAAgAAAD8/w4AAAACAAgAAAD8/w0AAAACAAgAAAD8/wwAAAACAAgAAAD8/wsAAAACAAgAAAD8/woAAAACAAgAAAD8/wkAAAACAAgAAAD8/wgAAAACAAgAAAD8/wcAAAACAAgAAAD7/yIAAAACAAgAAAD7/yEAAAACAAgAAAD7/yAAAAACAAgAAAD7/x8AAAACAAgAAAD7/x4AAAACAAgAAAD7/x0AAAACAAgAAAD7/xwAAAACAAgAAAD7/xsAAAACAAgAAAD7/xoAAAACAAgAAAD7/xkAAAACAAgAAAD7/xgAAAACAAgAAAD7/xcAAAACAAgAAAD7/xYAAAACAAgAAAD7/xUAAAACAAgAAAD7/xQAAAACAAgAAAD7/xMAAAACAAgAAAD7/xIAAAACAAgAAAD7/xEAAAACAAgAAAD7/xAAAAACAAgAAAD7/w8AAAACAAgAAAD7/w4AAAACAAgAAAD7/w0AAAACAAgAAAD7/wwAAAACAAgAAAD7/wsAAAACAAgAAAD7/woAAAACAAgAAAD7/wkAAAACAAgAAAD7/wgAAAACAAgAAAD7/wcAAAACAAgAAAD6/yIAAAACAAgAAAD6/yEAAAACAAgAAAD6/yAAAAACAAgAAAD6/x8AAAACAAgAAAD6/x4AAAACAAgAAAD6/x0AAAACAAgAAAD6/xwAAAACAAgAAAD6/xsAAAACAAgAAAD6/xoAAAACAAgAAAD6/xkAAAACAAgAAAD6/xgAAAACAAgAAAD6/xcAAAACAAgAAAD6/xYAAAACAAgAAAD6/xUAAAACAAgAAAD6/xQAAAACAAgAAAD6/xMAAAACAAgAAAD6/xIAAAACAAgAAAD6/xEAAAACAAgAAAD6/xAAAAACAAgAAAD6/w8AAAACAAgAAAD6/w4AAAACAAgAAAD6/w0AAAACAAgAAAD6/wwAAAACAAgAAAD6/wsAAAACAAgAAAD6/woAAAACAAgAAAD6/wkAAAACAAgAAAD6/wgAAAACAAgAAAD6/wcAAAACAAgAAAD5/yIAAAACAAgAAAD5/yEAAAACAAgAAAD5/yAAAAACAAgAAAD5/x8AAAACAAgAAAD5/x4AAAACAAgAAAD5/x0AAAACAAgAAAD5/xwAAAACAAgAAAD5/xsAAAACAAgAAAD5/xoAAAACAAgAAAD5/xkAAAACAAgAAAD5/xgAAAACAAgAAAD5/xcAAAACAAgAAAD5/xYAAAACAAgAAAD5/xUAAAACAAgAAAD5/xQAAAACAAgAAAD5/xMAAAACAAgAAAD5/xIAAAACAAgAAAD5/xEAAAACAAgAAAD5/xAAAAACAAgAAAD5/w8AAAACAAgAAAD5/w4AAAACAAgAAAD5/w0AAAACAAgAAAD5/wwAAAACAAgAAAD5/wsAAAACAAgAAAD5/woAAAACAAgAAAD5/wkAAAACAAgAAAD5/wgAAAACAAgAAAD5/wcAAAACAAgAAAAQAA0AAAABAAUAAAAPAA0AAAABAAUAAAAOAA0AAAABAAUAAAANAA0AAAABAAUAAAAKAAwAAAACAAUAAAAJAAwAAAAAAAkAAAAJAAsAAAACAAUAAAAIAAwAAAACAAgAAAAIAAsAAAABAAUAAAAHAAwAAAACAAgAAAAHAAsAAAAAAAkAAAAHAAoAAAACAAYAAAAHAAkAAAACAAYAAAAHAAgAAAACAAYAAAAHAAcAAAACAAYAAAAHAAYAAAACAAYAAAAHAAUAAAACAAYAAAAHAAQAAAACAAYAAAAHAAMAAAACAAUAAAAGAAwAAAACAAgAAAAGAAsAAAACAAgAAAAGAAoAAAACAAgAAAAGAAkAAAACAAgAAAAGAAgAAAACAAgAAAAGAAcAAAACAAgAAAAGAAYAAAACAAgAAAAGAAUAAAACAAgAAAAGAAQAAAACAAgAAAAGAAMAAAAAAAkAAAAFAAwAAAACAAgAAAAFAAsAAAACAAgAAAAFAAoAAAACAAgAAAAFAAkAAAACAAgAAAAFAAgAAAACAAgAAAAFAAcAAAACAAgAAAAFAAYAAAACAAgAAAAFAAUAAAACAAgAAAAFAAQAAAACAAgAAAAFAAMAAAACAAgAAAAEAAwAAAACAAgAAAAEAAsAAAACAAgAAAAEAAoAAAACAAgAAAAEAAkAAAACAAgAAAAEAAgAAAACAAgAAAAEAAcAAAACAAgAAAAEAAYAAAACAAgAAAAEAAUAAAACAAgAAAAEAAQAAAACAAgAAAAEAAMAAAACAAgAAAADAAwAAAACAAgAAAADAAsAAAACAAgAAAADAAoAAAACAAgAAAADAAkAAAACAAgAAAADAAgAAAACAAgAAAADAAcAAAACAAgAAAADAAYAAAACAAgAAAADAAUAAAACAAgAAAADAAQAAAACAAgAAAADAAMAAAACAAgAAAACAAwAAAACAAgAAAACAAsAAAACAAgAAAACAAoAAAACAAgAAAACAAkAAAACAAgAAAACAAgAAAACAAgAAAACAAcAAAACAAgAAAACAAYAAAACAAgAAAACAAUAAAACAAgAAAACAAQAAAACAAgAAAACAAMAAAACAAgAAAAQABAAAAACAAgAAAAQAA8AAAACAAgAAAAQAA4AAAACAAgAAAAPABAAAAACAAgAAAAPAA8AAAACAAgAAAAPAA4AAAACAAgAAAAOABAAAAACAAgAAAAOAA8AAAACAAgAAAAOAA4AAAACAAgAAAANABAAAAACAAgAAAANAA8AAAACAAgAAAANAA4AAAACAAgAAAAhABsAAAACAAgAAAAhABoAAAACAAgAAAAhABkAAAACAAgAAAAhABgAAAACAAgAAAAhABcAAAACAAgAAAAhABYAAAACAAgAAAAhABUAAAACAAgAAAAhABQAAAACAAgAAAAhABMAAAACAAgAAAAhABIAAAACAAgAAAAhABEAAAACAAgAAAAhABAAAAACAAgAAAAhAA8AAAACAAgAAAAhAA4AAAACAAgAAAAhAA0AAAABAAUAAAAgABsAAAACAAgAAAAgABoAAAACAAgAAAAgABkAAAACAAgAAAAgABgAAAACAAgAAAAgABcAAAACAAgAAAAgABYAAAACAAgAAAAgABUAAAACAAgAAAAgABQAAAACAAgAAAAgABMAAAACAAgAAAAgABIAAAACAAgAAAAgABEAAAACAAgAAAAgABAAAAACAAgAAAAgAA8AAAACAAgAAAAgAA4AAAACAAgAAAAgAA0AAAABAAUAAAAfABsAAAAAAAYAAAAfABoAAAAAAAYAAAAfABkAAAAAAAYAAAAfABgAAAAAAAYAAAAfABcAAAAAAAYAAAAfABYAAAABAAgAAAAfABUAAAACAAgAAAAfABQAAAACAAgAAAAfABMAAAACAAgAAAAfABIAAAACAAgAAAAfABEAAAABAAkAAAAfABAAAAAAAAYAAAAfAA8AAAAAAAYAAAAfAA4AAAABAAgAAAAfAA0AAAABAAUAAAAeABYAAAABAAcAAAAeABUAAAACAAgAAAAeABQAAAACAAgAAAAeABMAAAACAAgAAAAeABIAAAACAAgAAAAeABEAAAABAAUAAAAeAA4AAAABAAcAAAAeAA0AAAABAAUAAAAdABYAAAABAAcAAAAdABUAAAACAAgAAAAdABQAAAACAAgAAAAdABMAAAACAAgAAAAdABIAAAACAAgAAAAdABEAAAABAAUAAAAdAA4AAAABAAcAAAAdAA0AAAABAAUAAAAcABYAAAABAAcAAAAcABUAAAACAAgAAAAcABQAAAACAAgAAAAcABMAAAACAAgAAAAcABIAAAACAAgAAAAcABEAAAABAAUAAAAcAA4AAAABAAcAAAAcAA0AAAABAAUAAAAbABYAAAABAAcAAAAbABUAAAACAAgAAAAbABQAAAACAAgAAAAbABMAAAACAAgAAAAbABIAAAACAAgAAAAbABEAAAABAAUAAAAbAA4AAAABAAcAAAAbAA0AAAABAAUAAAAaABUAAAACAAgAAAAaABQAAAACAAgAAAAaABMAAAACAAgAAAAaABIAAAACAAgAAAAaABEAAAABAAUAAAAaAA4AAAABAAcAAAAaAA0AAAABAAUAAAAZABUAAAACAAgAAAAZABQAAAACAAgAAAAZABMAAAACAAgAAAAZABIAAAACAAgAAAAZABEAAAABAAUAAAAZAA4AAAABAAcAAAAZAA0AAAABAAUAAAAYABUAAAACAAgAAAAYABQAAAACAAgAAAAYABMAAAACAAgAAAAYABIAAAACAAgAAAAYABEAAAABAAUAAAAYAA4AAAABAAcAAAAYAA0AAAABAAUAAAAXABUAAAACAAgAAAAXABQAAAACAAgAAAAXABMAAAACAAgAAAAXABIAAAACAAgAAAAXABEAAAABAAUAAAAXAA4AAAABAAcAAAAXAA0AAAABAAUAAAAWABUAAAACAAgAAAAWABQAAAACAAgAAAAWABMAAAACAAgAAAAWABIAAAACAAgAAAAWABEAAAABAAUAAAAWAA4AAAABAAcAAAAWAA0AAAABAAUAAAABAAYAAAACAAgAAAABAAUAAAACAAgAAAABAAQAAAACAAgAAAABAAMAAAACAAgAAAAAAAYAAAACAAgAAAAAAAUAAAACAAgAAAAAAAQAAAACAAgAAAAAAAMAAAACAAgAAAD//wYAAAACAAgAAAD//wUAAAACAAgAAAD//wQAAAACAAgAAAD//wMAAAACAAgAAAD+/wYAAAACAAgAAAD+/wUAAAACAAgAAAD+/wQAAAACAAgAAAD+/wMAAAACAAgAAAD9/wYAAAACAAgAAAD9/wUAAAACAAgAAAD9/wQAAAACAAgAAAD9/wMAAAACAAgAAAD8/wYAAAACAAgAAAD8/wUAAAACAAgAAAD8/wQAAAACAAgAAAD8/wMAAAACAAgAAAD7/wYAAAACAAgAAAD7/wUAAAACAAgAAAD7/wQAAAACAAgAAAD7/wMAAAACAAgAAAD6/wYAAAACAAgAAAD6/wUAAAACAAgAAAD6/wQAAAACAAgAAAD6/wMAAAACAAgAAAD5/wYAAAACAAgAAAD5/wUAAAACAAgAAAD5/wQAAAACAAgAAAD5/wMAAAACAAgAAAD4/wsAAAACAAgAAAD4/woAAAACAAgAAAD4/wkAAAACAAgAAAD4/wgAAAACAAgAAAD4/wcAAAACAAgAAAD4/wYAAAACAAgAAAD4/wUAAAACAAgAAAD4/wQAAAACAAgAAAD4/wMAAAACAAgAAAD3/wsAAAACAAgAAAD3/woAAAACAAgAAAD3/wkAAAACAAgAAAD3/wgAAAACAAgAAAD3/wcAAAACAAgAAAD3/wYAAAACAAgAAAD3/wUAAAACAAgAAAD3/wQAAAACAAgAAAD3/wMAAAACAAgAAAD2/wsAAAACAAgAAAD2/woAAAACAAgAAAD2/wkAAAACAAgAAAD2/wgAAAACAAgAAAD2/wcAAAACAAgAAAD2/wYAAAACAAgAAAD2/wUAAAACAAgAAAD2/wQAAAACAAgAAAD2/wMAAAACAAgAAAD1/wsAAAACAAgAAAD1/woAAAACAAgAAAD1/wkAAAACAAgAAAD1/wgAAAACAAgAAAD1/wcAAAACAAgAAAD1/wYAAAACAAgAAAD1/wUAAAACAAgAAAD1/wQAAAACAAgAAAD1/wMAAAACAAgAAAAGAAIAAAACAAYAAAAGAAEAAAACAAYAAAAGAAAAAAACAAYAAAAGAP//AAACAAUAAAAFAAIAAAACAAgAAAAFAAEAAAACAAgAAAAFAAAAAAACAAgAAAAFAP//AAABAAUAAAAEAAIAAAACAAgAAAAEAAEAAAACAAgAAAAEAAAAAAACAAgAAAAEAP//AAABAAUAAAADAAIAAAACAAgAAAADAAEAAAACAAgAAAADAAAAAAACAAgAAAADAP//AAABAAUAAAACAAIAAAACAAgAAAACAAEAAAACAAgAAAACAAAAAAACAAgAAAACAP//AAABAAUAAAABAAIAAAACAAgAAAABAAEAAAACAAgAAAABAAAAAAACAAgAAAABAP//AAABAAUAAAAAAAIAAAACAAgAAAAAAAEAAAACAAgAAAAAAAAAAAACAAgAAAAAAP//AAABAAUAAAD//wIAAAACAAgAAAD//wEAAAACAAgAAAD//wAAAAACAAgAAAD/////AAABAAUAAAD+/wIAAAACAAgAAAD+/wEAAAACAAgAAAD+/wAAAAACAAgAAAD+////AAABAAUAAAD9/wIAAAACAAgAAAD9/wEAAAACAAgAAAD9/wAAAAACAAgAAAD9////AAABAAUAAAD8/wIAAAACAAgAAAD8/wEAAAACAAgAAAD8/wAAAAACAAgAAAD8////AAABAAUAAAD7/wIAAAACAAgAAAD7/wEAAAACAAgAAAD7/wAAAAACAAgAAAD7////AAABAAUAAAD6/wIAAAACAAgAAAD6/wEAAAACAAgAAAD6/wAAAAACAAgAAAD6////AAABAAUAAAD5/wIAAAACAAgAAAD5/wEAAAACAAgAAAD5/wAAAAACAAgAAAD5////AAABAAUAAAD4/wIAAAACAAgAAAD4/wEAAAACAAgAAAD4/wAAAAACAAgAAAD4////AAABAAUAAAD3/wIAAAACAAgAAAD3/wEAAAACAAgAAAD3/wAAAAACAAgAAAD3////AAABAAUAAAD2/wIAAAACAAgAAAD2/wEAAAACAAgAAAD2/wAAAAACAAgAAAD2////AAABAAUAAAD1/wIAAAACAAgAAAD1/wEAAAACAAgAAAD1/wAAAAACAAgAAAD1////AAABAAUAAAD0/wgAAAACAAgAAAD0/wcAAAABAAkAAAD0/wYAAAAAAAYAAAD0/wUAAAAAAAYAAAD0/wQAAAAAAAYAAAD0/wMAAAAAAAYAAAD0/wIAAAAAAAYAAAD0/wEAAAAAAAYAAAD0/wAAAAAAAAYAAAD0////AAAAAAUAAAD9/yMAAAACAAgAAAD8/yMAAAACAAgAAAD7/yMAAAACAAgAAAD6/yMAAAACAAgAAAD5/yMAAAACAAgAAAD4/yMAAAACAAgAAAD4/yIAAAACAAgAAAD4/yEAAAACAAgAAAD4/yAAAAACAAgAAAD4/x8AAAACAAgAAAD4/x4AAAACAAgAAAD4/x0AAAACAAgAAAD4/xwAAAACAAgAAAD4/xsAAAACAAgAAAD4/xoAAAACAAgAAAD4/xkAAAACAAgAAAD4/xgAAAACAAgAAAD4/xcAAAACAAgAAAD4/xYAAAACAAgAAAD4/xUAAAACAAgAAAD4/xQAAAACAAgAAAD4/xMAAAACAAgAAAD4/xIAAAACAAgAAAD4/xEAAAACAAgAAAD4/xAAAAACAAgAAAD4/w8AAAACAAgAAAD4/w4AAAACAAgAAAD4/w0AAAACAAgAAAD4/wwAAAACAAgAAAD3/yMAAAABAAgAAAD3/yIAAAACAAgAAAD3/yEAAAACAAgAAAD3/yAAAAACAAgAAAD3/x8AAAACAAgAAAD3/x4AAAACAAgAAAD3/x0AAAACAAgAAAD3/xwAAAACAAgAAAD3/xsAAAACAAgAAAD3/xoAAAACAAgAAAD3/xkAAAACAAgAAAD3/xgAAAACAAgAAAD3/xcAAAACAAgAAAD3/xYAAAACAAgAAAD3/xUAAAACAAgAAAD3/xQAAAACAAgAAAD3/xMAAAACAAgAAAD3/xIAAAACAAgAAAD3/xEAAAACAAgAAAD3/xAAAAACAAgAAAD3/w8AAAACAAgAAAD3/w4AAAACAAgAAAD3/w0AAAACAAgAAAD3/wwAAAACAAgAAAD2/yMAAAABAAcAAAD2/yIAAAACAAgAAAD2/yEAAAACAAgAAAD2/yAAAAACAAgAAAD2/x8AAAACAAgAAAD2/x4AAAACAAgAAAD2/x0AAAACAAgAAAD2/xwAAAACAAgAAAD2/xsAAAACAAgAAAD2/xoAAAACAAgAAAD2/xkAAAACAAgAAAD2/xgAAAACAAgAAAD2/xcAAAACAAgAAAD2/xYAAAACAAgAAAD2/xUAAAACAAgAAAD2/xQAAAACAAgAAAD2/xMAAAACAAgAAAD2/xIAAAACAAgAAAD2/xEAAAACAAgAAAD2/xAAAAACAAgAAAD2/w8AAAACAAgAAAD2/w4AAAACAAgAAAD2/w0AAAACAAgAAAD2/wwAAAACAAgAAAD1/yMAAAABAAcAAAD1/yIAAAACAAgAAAD1/yEAAAACAAgAAAD1/yAAAAACAAgAAAD1/x8AAAACAAgAAAD1/x4AAAACAAgAAAD1/x0AAAACAAgAAAD1/xwAAAACAAgAAAD1/xsAAAACAAgAAAD1/xoAAAACAAgAAAD1/xkAAAACAAgAAAD1/xgAAAACAAgAAAD1/xcAAAACAAgAAAD1/xYAAAACAAgAAAD1/xUAAAACAAgAAAD1/xQAAAACAAgAAAD1/xMAAAACAAgAAAD1/xIAAAACAAgAAAD1/xEAAAACAAgAAAD1/xAAAAACAAgAAAD1/w8AAAACAAgAAAD1/w4AAAACAAgAAAD1/w0AAAACAAgAAAD1/wwAAAACAAgAAAD0/yMAAAABAAcAAAD0/yIAAAACAAgAAAD0/yEAAAACAAgAAAD0/yAAAAACAAgAAAD0/x8AAAACAAgAAAD0/x4AAAACAAgAAAD0/x0AAAACAAgAAAD0/xwAAAACAAgAAAD0/xsAAAACAAgAAAD0/xoAAAACAAgAAAD0/xkAAAACAAgAAAD0/xgAAAACAAgAAAD0/xcAAAACAAgAAAD0/xYAAAACAAgAAAD0/xUAAAACAAgAAAD0/xQAAAACAAgAAAD0/xMAAAACAAgAAAD0/xIAAAACAAgAAAD0/xEAAAACAAgAAAD0/xAAAAACAAgAAAD0/w8AAAACAAgAAAD0/w4AAAACAAgAAAD0/w0AAAACAAgAAAD0/wwAAAACAAgAAAD0/wsAAAACAAgAAAD0/woAAAACAAgAAAD0/wkAAAACAAgAAADz/yMAAAAAAAcAAADz/yIAAAAAAAYAAADz/yEAAAAAAAYAAADz/yAAAAAAAAYAAADz/x8AAAAAAAYAAADz/x4AAAAAAAYAAADz/x0AAAAAAAYAAADz/xwAAAAAAAYAAADz/xsAAAAAAAYAAADz/xoAAAAAAAYAAADz/xkAAAAAAAYAAADz/xgAAAAAAAYAAADz/xcAAAAAAAYAAADz/xYAAAAAAAYAAADz/xUAAAAAAAYAAADz/xQAAAAAAAYAAADz/xMAAAAAAAYAAADz/xIAAAAAAAYAAADz/xEAAAAAAAYAAADz/xAAAAAAAAYAAADz/w8AAAAAAAYAAADz/w4AAAAAAAYAAADz/w0AAAAAAAYAAADz/wwAAAAAAAYAAADz/wsAAAAAAAYAAADz/woAAAAAAAYAAADz/wkAAAAAAAYAAADz/wgAAAAAAAYAAADz/wcAAAAAAAUAAAAdACkAAAACAAcAAAAdACgAAAAAAAgAAAAdACcAAAACAAgAAAAdACYAAAACAAgAAAAdACUAAAACAAgAAAAdACQAAAABAAUAAAAcACkAAAABAAcAAAAcACgAAAACAAgAAAAcACcAAAACAAgAAAAcACYAAAACAAgAAAAcACUAAAACAAgAAAAcACQAAAABAAUAAAAbACkAAAABAAcAAAAbACgAAAACAAgAAAAbACcAAAACAAgAAAAbACYAAAACAAgAAAAbACUAAAACAAgAAAAbACQAAAABAAUAAAAaACkAAAABAAcAAAAaACgAAAACAAgAAAAaACcAAAACAAgAAAAaACYAAAACAAgAAAAaACUAAAACAAgAAAAaACQAAAABAAUAAAAZACkAAAABAAcAAAAZACgAAAACAAgAAAAZACcAAAACAAgAAAAZACYAAAACAAgAAAAZACUAAAACAAgAAAAZACQAAAABAAUAAAAYACkAAAABAAcAAAAYACgAAAACAAgAAAAYACcAAAACAAgAAAAYACYAAAACAAgAAAAYACUAAAACAAgAAAAYACQAAAABAAUAAAAXACkAAAABAAcAAAAXACgAAAACAAgAAAAXACcAAAACAAgAAAAXACYAAAACAAgAAAAXACUAAAACAAgAAAAXACQAAAABAAUAAAAWACkAAAABAAcAAAAWACgAAAACAAgAAAAWACcAAAACAAgAAAAWACYAAAACAAgAAAAWACUAAAACAAgAAAAWACQAAAABAAUAAAAVACkAAAABAAcAAAAVACgAAAACAAgAAAAVACcAAAACAAgAAAAVACYAAAACAAgAAAAVACUAAAACAAgAAAAVACQAAAABAAUAAAAUACkAAAABAAcAAAAUACgAAAACAAgAAAAUACcAAAACAAgAAAAUACYAAAACAAgAAAAUACUAAAACAAgAAAAUACQAAAABAAUAAAATACkAAAABAAcAAAATACgAAAACAAgAAAATACcAAAACAAgAAAATACYAAAACAAgAAAATACUAAAACAAgAAAATACQAAAABAAUAAAASACkAAAABAAcAAAASACgAAAACAAgAAAASACcAAAACAAgAAAASACYAAAACAAgAAAASACUAAAACAAgAAAASACQAAAABAAUAAAARACkAAAABAAcAAAARACgAAAACAAgAAAARACcAAAACAAgAAAARACYAAAACAAgAAAARACUAAAACAAgAAAARACQAAAABAAUAAAAQACkAAAABAAcAAAAQACgAAAACAAgAAAAQACcAAAACAAgAAAAQACYAAAACAAgAAAAQACUAAAACAAgAAAAQACQAAAABAAUAAAAPACkAAAABAAcAAAAPACgAAAACAAgAAAAPACcAAAACAAgAAAAPACYAAAACAAgAAAAPACUAAAACAAgAAAAPACQAAAABAAUAAAAOACkAAAABAAcAAAAOACgAAAACAAgAAAAOACcAAAACAAgAAAAOACYAAAACAAgAAAAOACUAAAACAAgAAAAOACQAAAABAAUAAAANACkAAAABAAcAAAANACgAAAACAAgAAAANACcAAAACAAgAAAANACYAAAACAAgAAAANACUAAAACAAgAAAANACQAAAAAAAkAAAANACMAAAACAAYAAAAMACkAAAABAAcAAAAMACgAAAACAAgAAAAMACcAAAACAAgAAAAMACYAAAACAAgAAAAMACUAAAACAAgAAAAMACQAAAACAAgAAAAMACMAAAACAAgAAAALACkAAAABAAcAAAALACgAAAACAAgAAAALACcAAAACAAgAAAALACYAAAACAAgAAAALACUAAAACAAgAAAALACQAAAACAAgAAAALACMAAAACAAgAAAAKACkAAAABAAcAAAAKACgAAAACAAgAAAAKACcAAAACAAgAAAAKACYAAAACAAgAAAAKACUAAAACAAgAAAAKACQAAAACAAgAAAAKACMAAAACAAgAAAAJACkAAAABAAcAAAAJACgAAAACAAgAAAAJACcAAAACAAgAAAAJACYAAAACAAgAAAAJACUAAAACAAgAAAAJACQAAAACAAgAAAAJACMAAAACAAgAAAAIACkAAAABAAcAAAAIACgAAAACAAgAAAAIACcAAAACAAgAAAAIACYAAAACAAgAAAAIACUAAAACAAgAAAAIACQAAAACAAgAAAAIACMAAAACAAgAAAAHACkAAAABAAcAAAAHACgAAAACAAgAAAAHACcAAAACAAgAAAAHACYAAAACAAgAAAAHACUAAAACAAgAAAAHACQAAAACAAgAAAAHACMAAAACAAgAAAAGACkAAAABAAcAAAAGACgAAAACAAgAAAAGACcAAAACAAgAAAAGACYAAAACAAgAAAAGACUAAAACAAgAAAAGACQAAAACAAgAAAAGACMAAAACAAgAAAAFACkAAAABAAcAAAAFACgAAAACAAgAAAAFACcAAAACAAgAAAAFACYAAAACAAgAAAAFACUAAAACAAgAAAAFACQAAAACAAgAAAAFACMAAAACAAgAAAAEACkAAAABAAcAAAAEACgAAAACAAgAAAAEACcAAAACAAgAAAAEACYAAAACAAgAAAAEACUAAAACAAgAAAAEACQAAAACAAgAAAAEACMAAAACAAgAAAADACkAAAABAAcAAAADACgAAAACAAgAAAADACcAAAACAAgAAAADACYAAAACAAgAAAADACUAAAACAAgAAAADACQAAAACAAgAAAADACMAAAACAAgAAAACACkAAAABAAcAAAACACgAAAACAAgAAAACACcAAAACAAgAAAACACYAAAACAAgAAAACACUAAAACAAgAAAACACQAAAACAAgAAAACACMAAAACAAgAAAABACkAAAABAAcAAAABACgAAAACAAgAAAABACcAAAACAAgAAAABACYAAAACAAgAAAABACUAAAACAAgAAAABACQAAAACAAgAAAABACMAAAACAAgAAAAAACkAAAABAAcAAAAAACgAAAACAAgAAAAAACcAAAACAAgAAAAAACYAAAACAAgAAAAAACUAAAACAAgAAAAAACQAAAACAAgAAAAAACMAAAACAAgAAAD//ykAAAABAAcAAAD//ygAAAACAAgAAAD//ycAAAACAAgAAAD//yYAAAACAAgAAAD//yUAAAACAAgAAAD//yQAAAACAAgAAAD//yMAAAACAAgAAAD+/ykAAAABAAcAAAD+/ygAAAACAAgAAAD+/ycAAAACAAgAAAD+/yYAAAACAAgAAAD+/yUAAAACAAgAAAD+/yQAAAACAAgAAAD+/yMAAAACAAgAAAD9/ykAAAABAAcAAAD9/ygAAAACAAgAAAD9/ycAAAACAAgAAAD9/yYAAAACAAgAAAD9/yUAAAACAAgAAAD9/yQAAAACAAgAAAD8/ykAAAABAAcAAAD8/ygAAAACAAgAAAD8/ycAAAACAAgAAAD8/yYAAAACAAgAAAD8/yUAAAACAAgAAAD8/yQAAAACAAgAAAD7/ykAAAABAAcAAAD7/ygAAAACAAgAAAD7/ycAAAACAAgAAAD7/yYAAAACAAgAAAD7/yUAAAACAAgAAAD7/yQAAAACAAgAAAD6/ykAAAABAAcAAAD6/ygAAAACAAgAAAD6/ycAAAACAAgAAAD6/yYAAAACAAgAAAD6/yUAAAACAAgAAAD6/yQAAAACAAgAAAD5/ykAAAABAAcAAAD5/ygAAAACAAgAAAD5/ycAAAACAAgAAAD5/yYAAAACAAgAAAD5/yUAAAACAAgAAAD5/yQAAAACAAgAAAD4/ykAAAABAAcAAAD4/ygAAAACAAgAAAD4/ycAAAACAAgAAAD4/yYAAAACAAgAAAD4/yUAAAACAAgAAAD4/yQAAAACAAgAAAD3/ykAAAAAAAcAAAD3/ygAAAAAAAYAAAD3/ycAAAAAAAYAAAD3/yYAAAAAAAYAAAD3/yUAAAAAAAYAAAD3/yQAAAAAAAYAAAAnACgAAAACAAcAAAAnACcAAAACAAYAAAAnACYAAAACAAYAAAAnACUAAAACAAYAAAAnACQAAAACAAYAAAAnACMAAAACAAYAAAAnACIAAAACAAYAAAAnACEAAAACAAYAAAAnACAAAAACAAYAAAAnAB8AAAACAAYAAAAnAB4AAAACAAYAAAAnAB0AAAACAAYAAAAnABwAAAACAAYAAAAnABsAAAACAAYAAAAnABoAAAACAAYAAAAnABkAAAACAAYAAAAnABgAAAACAAYAAAAnABcAAAAAAAgAAAAnABYAAAACAAgAAAAnABUAAAACAAgAAAAmACgAAAABAAcAAAAmACcAAAACAAgAAAAmACYAAAACAAgAAAAmACUAAAACAAgAAAAmACQAAAACAAgAAAAmACMAAAACAAgAAAAmACIAAAACAAgAAAAmACEAAAACAAgAAAAmACAAAAACAAgAAAAmAB8AAAACAAgAAAAmAB4AAAACAAgAAAAmAB0AAAACAAgAAAAmABwAAAACAAgAAAAmABsAAAACAAgAAAAmABoAAAACAAgAAAAmABkAAAACAAgAAAAmABgAAAACAAgAAAAmABcAAAACAAgAAAAmABYAAAACAAgAAAAmABUAAAACAAgAAAAlACgAAAABAAcAAAAlACcAAAACAAgAAAAlACYAAAACAAgAAAAlACUAAAACAAgAAAAlACQAAAACAAgAAAAlACMAAAACAAgAAAAlACIAAAACAAgAAAAlACEAAAACAAgAAAAlACAAAAACAAgAAAAlAB8AAAACAAgAAAAlAB4AAAACAAgAAAAlAB0AAAACAAgAAAAlABwAAAACAAgAAAAlABsAAAACAAgAAAAlABoAAAACAAgAAAAlABkAAAACAAgAAAAlABgAAAACAAgAAAAlABcAAAACAAgAAAAlABYAAAACAAgAAAAlABUAAAACAAgAAAAkACgAAAABAAcAAAAkACcAAAACAAgAAAAkACYAAAACAAgAAAAkACUAAAACAAgAAAAkACQAAAACAAgAAAAkACMAAAACAAgAAAAkACIAAAACAAgAAAAkACEAAAACAAgAAAAkACAAAAACAAgAAAAkAB8AAAACAAgAAAAkAB4AAAACAAgAAAAkAB0AAAACAAgAAAAkABwAAAACAAgAAAAkABsAAAACAAgAAAAkABoAAAACAAgAAAAkABkAAAACAAgAAAAkABgAAAACAAgAAAAkABcAAAACAAgAAAAkABYAAAACAAgAAAAkABUAAAACAAgAAAAjACgAAAABAAcAAAAjACcAAAACAAgAAAAjACYAAAACAAgAAAAjACUAAAACAAgAAAAjACQAAAACAAgAAAAjACMAAAACAAgAAAAjACIAAAACAAgAAAAjACEAAAACAAgAAAAjACAAAAACAAgAAAAjAB8AAAACAAgAAAAjAB4AAAACAAgAAAAjAB0AAAACAAgAAAAjABwAAAACAAgAAAAjABsAAAACAAgAAAAjABoAAAACAAgAAAAjABkAAAACAAgAAAAjABgAAAACAAgAAAAjABcAAAACAAgAAAAjABYAAAACAAgAAAAjABUAAAACAAgAAAAiACgAAAABAAcAAAAiACcAAAACAAgAAAAiACYAAAACAAgAAAAiACUAAAACAAgAAAAiACQAAAACAAgAAAAiACMAAAACAAgAAAAiACIAAAACAAgAAAAiACEAAAACAAgAAAAiACAAAAACAAgAAAAiAB8AAAACAAgAAAAiAB4AAAACAAgAAAAiAB0AAAACAAgAAAAiABwAAAACAAgAAAAiABsAAAACAAgAAAAiABoAAAACAAgAAAAiABkAAAACAAgAAAAiABgAAAACAAgAAAAiABcAAAACAAgAAAAiABYAAAACAAgAAAAiABUAAAACAAgAAAAhACgAAAABAAcAAAAhACcAAAACAAgAAAAhACYAAAACAAgAAAAhACUAAAACAAgAAAAhACQAAAACAAgAAAAhACMAAAACAAgAAAAhACIAAAACAAgAAAAhACEAAAACAAgAAAAhACAAAAACAAgAAAAhAB8AAAACAAgAAAAhAB4AAAACAAgAAAAhAB0AAAACAAgAAAAhABwAAAACAAgAAAAgACgAAAABAAcAAAAgACcAAAACAAgAAAAgACYAAAACAAgAAAAgACUAAAACAAgAAAAgACQAAAACAAgAAAAgACMAAAACAAgAAAAgACIAAAACAAgAAAAgACEAAAACAAgAAAAgACAAAAACAAgAAAAgAB8AAAACAAgAAAAgAB4AAAACAAgAAAAgAB0AAAACAAgAAAAgABwAAAACAAgAAAAfACgAAAABAAcAAAAfACcAAAACAAgAAAAfACYAAAACAAgAAAAfACUAAAACAAgAAAAfACQAAAABAAkAAAAfACMAAAAAAAYAAAAfACIAAAAAAAYAAAAfACEAAAAAAAYAAAAfACAAAAAAAAYAAAAfAB8AAAAAAAYAAAAfAB4AAAAAAAYAAAAfAB0AAAAAAAYAAAAfABwAAAAAAAYAAAAeACgAAAABAAcAAAAeACcAAAACAAgAAAAeACYAAAACAAgAAAAeACUAAAACAAgAAAAeACQAAAABAAUAAAArABcAAAACAAcAAAArABYAAAACAAYAAAArABUAAAACAAYAAAArABQAAAACAAYAAAArABMAAAACAAYAAAArABIAAAACAAYAAAArABEAAAACAAYAAAArABAAAAACAAYAAAArAA8AAAACAAYAAAArAA4AAAACAAYAAAArAA0AAAACAAYAAAArAAwAAAACAAYAAAArAAsAAAACAAYAAAArAAoAAAACAAYAAAArAAkAAAACAAYAAAArAAgAAAACAAYAAAArAAcAAAACAAYAAAArAAYAAAACAAYAAAArAAUAAAACAAYAAAArAAQAAAACAAUAAAAqABcAAAABAAcAAAAqABYAAAACAAgAAAAqABUAAAACAAgAAAAqABQAAAACAAgAAAAqABMAAAACAAgAAAAqABIAAAACAAgAAAAqABEAAAACAAgAAAAqABAAAAACAAgAAAAqAA8AAAACAAgAAAAqAA4AAAACAAgAAAAqAA0AAAACAAgAAAAqAAwAAAACAAgAAAAqAAsAAAACAAgAAAAqAAoAAAACAAgAAAAqAAkAAAACAAgAAAAqAAgAAAACAAgAAAAqAAcAAAACAAgAAAAqAAYAAAACAAgAAAAqAAUAAAACAAgAAAAqAAQAAAABAAUAAAApABcAAAABAAcAAAApABYAAAACAAgAAAApABUAAAACAAgAAAApABQAAAACAAgAAAApABMAAAACAAgAAAApABIAAAACAAgAAAApABEAAAACAAgAAAApABAAAAACAAgAAAApAA8AAAACAAgAAAApAA4AAAACAAgAAAApAA0AAAACAAgAAAApAAwAAAACAAgAAAApAAsAAAACAAgAAAApAAoAAAACAAgAAAApAAkAAAACAAgAAAApAAgAAAACAAgAAAApAAcAAAACAAgAAAApAAYAAAACAAgAAAApAAUAAAACAAgAAAApAAQAAAABAAUAAAAoABcAAAABAAcAAAAoABYAAAACAAgAAAAoABUAAAACAAgAAAAoABQAAAACAAgAAAAoABMAAAACAAgAAAAoABIAAAACAAgAAAAoABEAAAACAAgAAAAoABAAAAACAAgAAAAoAA8AAAACAAgAAAAoAA4AAAACAAgAAAAoAA0AAAACAAgAAAAoAAwAAAACAAgAAAAoAAsAAAACAAgAAAAoAAoAAAACAAgAAAAoAAkAAAACAAgAAAAoAAgAAAACAAgAAAAoAAcAAAACAAgAAAAoAAYAAAACAAgAAAAoAAUAAAACAAgAAAAoAAQAAAABAAUAAAAnABQAAAACAAgAAAAnABMAAAACAAgAAAAnABIAAAACAAgAAAAnABEAAAACAAgAAAAnABAAAAACAAgAAAAnAA8AAAACAAgAAAAnAA4AAAACAAgAAAAnAA0AAAACAAgAAAAnAAwAAAACAAgAAAAnAAsAAAACAAgAAAAnAAoAAAACAAgAAAAnAAkAAAACAAgAAAAnAAgAAAACAAgAAAAnAAcAAAACAAgAAAAnAAYAAAACAAgAAAAnAAUAAAACAAgAAAAnAAQAAAABAAUAAAAmABQAAAACAAgAAAAmABMAAAACAAgAAAAmABIAAAACAAgAAAAmABEAAAACAAgAAAAmABAAAAACAAgAAAAmAA8AAAACAAgAAAAmAA4AAAACAAgAAAAmAA0AAAACAAgAAAAmAAwAAAACAAgAAAAmAAsAAAACAAgAAAAmAAoAAAACAAgAAAAmAAkAAAACAAgAAAAmAAgAAAACAAgAAAAmAAcAAAACAAgAAAAmAAYAAAACAAgAAAAmAAUAAAACAAgAAAAmAAQAAAABAAUAAAAlABQAAAACAAgAAAAlABMAAAACAAgAAAAlABIAAAACAAgAAAAlABEAAAACAAgAAAAlABAAAAACAAgAAAAlAA8AAAACAAgAAAAlAA4AAAACAAgAAAAlAA0AAAACAAgAAAAlAAwAAAACAAgAAAAlAAsAAAACAAgAAAAlAAoAAAACAAgAAAAlAAkAAAACAAgAAAAlAAgAAAACAAgAAAAlAAcAAAACAAgAAAAlAAYAAAACAAgAAAAlAAUAAAACAAgAAAAlAAQAAAABAAUAAAAkABQAAAACAAgAAAAkABMAAAACAAgAAAAkABIAAAACAAgAAAAkABEAAAACAAgAAAAkABAAAAACAAgAAAAkAA8AAAACAAgAAAAkAA4AAAACAAgAAAAkAA0AAAACAAgAAAAkAAwAAAACAAgAAAAkAAsAAAACAAgAAAAkAAoAAAACAAgAAAAkAAkAAAACAAgAAAAkAAgAAAACAAgAAAAkAAcAAAACAAgAAAAkAAYAAAACAAgAAAAkAAUAAAACAAgAAAAkAAQAAAABAAUAAAAjABQAAAACAAgAAAAjABMAAAACAAgAAAAjABIAAAACAAgAAAAjABEAAAACAAgAAAAjABAAAAACAAgAAAAjAA8AAAACAAgAAAAjAA4AAAACAAgAAAAjAA0AAAACAAgAAAAjAAwAAAACAAgAAAAjAAsAAAACAAgAAAAjAAoAAAACAAgAAAAjAAkAAAACAAgAAAAjAAgAAAACAAgAAAAjAAcAAAACAAgAAAAjAAYAAAACAAgAAAAjAAUAAAACAAgAAAAjAAQAAAABAAUAAAAiABQAAAACAAgAAAAiABMAAAACAAgAAAAiABIAAAACAAgAAAAiABEAAAACAAgAAAAiABAAAAACAAgAAAAiAA8AAAACAAgAAAAiAA4AAAACAAgAAAAiAA0AAAABAAkAAAAiAAwAAAAAAAYAAAAiAAsAAAAAAAYAAAAiAAoAAAAAAAYAAAAiAAkAAAAAAAYAAAAiAAgAAAAAAAYAAAAiAAcAAAAAAAYAAAAiAAYAAAAAAAYAAAAiAAUAAAABAAgAAAAiAAQAAAABAAUAAAAhAAUAAAABAAcAAAAhAAQAAAABAAUAAAAgAAUAAAABAAcAAAAgAAQAAAABAAUAAAAfAAUAAAAAAAcAAAAfAAQAAAAAAAUAAAAVAA8AAAAMAAIAAAAWAA8AAAAMAAIAAAAXAA8AAAAMAAIAAAAYAA8AAAAMAAIAAAAZAA8AAAAMAAIAAAAaAA8AAAAMAAIAAAAbAA8AAAAMAAIAAAAcAA8AAAAMAAIAAAAdAA8AAAAMAAIAAAAeAA8AAAAMAAIAAAAPABYAAAADAAQAAAAOABYAAAABAAQAAAATABYAAAABAAQAAAASABYAAAACAAQAAAAUABsAAAACAAcAAAAUABoAAAACAAUAAAATABsAAAAAAAcAAAATABoAAAAAAAUAAAAbABsAAAADAAQAAAAaABsAAAACAAQAAAARACEAAAADAAQAAAAQACEAAAACAAQAAAAaACIAAAACAAcAAAAaACEAAAACAAUAAAAZACIAAAAAAAcAAAAZACEAAAAAAAUAAAATABwAAAAKAAgAAAATAB0AAAAKAAkAAAAUABwAAAAKAAgAAAAUAB0AAAAKAAkAAAAaABwAAAAKAAgAAAAaAB0AAAAKAAkAAAAbABwAAAAKAAgAAAAbAB0AAAAKAAkAAAAQACIAAAAKAAgAAAAQACMAAAAKAAkAAAARACIAAAAKAAgAAAARACMAAAAKAAkAAAAaACMAAAAKAAgAAAAZACMAAAAKAAgAAAAVABcAAAAKAAgAAAAVABgAAAAKAAkAAAASABcAAAAKAAgAAAASABgAAAAKAAkAAAATABcAAAAKAAgAAAATABgAAAAKAAkAAAAUABcAAAAKAAgAAAAUABgAAAAKAAkAAAAWABcAAAAKAAgAAAAWABgAAAAKAAkAAAAXABcAAAAKAAgAAAAXABgAAAAKAAkAAAAYABcAAAAKAAgAAAAYABgAAAAKAAkAAAAZABcAAAAKAAgAAAAZABgAAAAKAAkAAAAaABcAAAAKAAgAAAAaABgAAAAKAAkAAAAbABcAAAAKAAgAAAAbABgAAAAKAAkAAAAcABcAAAAKAAgAAAAcABgAAAAKAAkAAAAdABcAAAAKAAgAAAAdABgAAAAKAAkAAAAeABcAAAAKAAgAAAAeABgAAAAKAAkAAAAOABcAAAAKAAgAAAAOABgAAAAKAAkAAAAPABcAAAAKAAgAAAAPABgAAAAKAAkAAAAVAAUAAAAJAAcAAAAWAAUAAAAJAAcAAAAXAAUAAAAJAAcAAAAYAAUAAAAJAAcAAAAZAAUAAAAJAAcAAAAaAAUAAAAJAAcAAAANAAgAAAAJAAkAAAANAAkAAAAJAAkAAAAOAAgAAAAJAAkAAAAOAAkAAAAJAAkAAAARAAgAAAAJAAkAAAARAAkAAAAJAAkAAAAPAAcAAAAHAA8AAAAPAAYAAAAHAA8AAAAPAAUAAAAHAA8AAAAQAAUAAAAHAA8AAAAQAAYAAAAHAA8AAAAQAAcAAAAHAA8AAAARAAcAAAAJAAkAAAARAAYAAAAJAAkAAAARAAUAAAAJAAgAAAAOAAcAAAAJAAkAAAANAAcAAAAJAAkAAAAOAAYAAAAJAAkAAAANAAYAAAAJAAkAAAANAAUAAAAJAAgAAAAOAAUAAAAJAAgAAAATAAQAAAAHAAsAAAATAAMAAAAIAAwAAAATAAIAAAAIAAwAAAATAAEAAAAIAAwAAAATAAAAAAAIAAwAAAATAP//AAAIAAsAAAASAP//AAAHAAsAAAARAP//AAAHAAsAAAAQAP//AAAHAAsAAAAPAP//AAAHAAsAAAAOAP//AAAHAAsAAAANAP//AAAGAAsAAAANAAAAAAAGAAwAAAANAAEAAAAGAAwAAAANAAIAAAAGAAwAAAANAAMAAAAGAAwAAAANAAQAAAAHAAsAAAAOAAQAAAAHAAsAAAARAAQAAAAHAAsAAAAPAAMAAAAHAA8AAQAPAAQAAAAHAA8AAQAQAAMAAAAHAA8AAQAQAAQAAAAHAA8AAQA=") +tile_map_data = PackedByteArray("AAACAA0AAAAAAAgAAAADAA0AAAABAAcAAAAEAA0AAAABAAcAAAAFAA0AAAABAAcAAAAGAA0AAAABAAcAAAAHAA0AAAABAAcAAAAIAA0AAAABAAcAAAAJAA0AAAABAAcAAAAKAA0AAAAEAAwAAAALAA0AAAAFAAsAAAAMAA0AAAABAAUAAAAMAA4AAAAAAAYAAAAMAA8AAAAAAAYAAAAMABAAAAAAAAYAAAAMABEAAAAAAAcAAAAMABYAAAAAAAUAAAAMABcAAAAAAAYAAAAMABgAAAAAAAYAAAAMABkAAAABAAkAAAALABkAAAABAAUAAAAKABkAAAABAAUAAAAJABkAAAABAAUAAAAIABkAAAABAAUAAAAHABkAAAABAAUAAAAGABkAAAABAAUAAAAFABkAAAABAAUAAAAEABkAAAABAAUAAAADABkAAAABAAUAAAACABkAAAAAAAkAAAACABgAAAACAAYAAAACABYAAAACAAYAAAACABcAAAACAAYAAAACABUAAAACAAYAAAACABQAAAACAAYAAAACABIAAAACAAYAAAACABMAAAACAAYAAAACABEAAAACAAYAAAACABAAAAACAAYAAAACAA8AAAACAAYAAAACAA4AAAACAAYAAAADAA4AAAANAAAAAAADAA8AAAANAAEAAAAEAA4AAAANAAAAAAAEAA8AAAANAAEAAAAFAA4AAAANAAAAAAAFAA8AAAANAAEAAAAGAA4AAAANAAAAAAAGAA8AAAANAAEAAAAHAA4AAAANAAAAAAAHAA8AAAANAAEAAAAIAA4AAAANAAAAAAAIAA8AAAANAAEAAAAJAA4AAAANAAAAAAAJAA8AAAANAAEAAAAKAA4AAAANAAAAAAAKAA8AAAANAAEAAAALAA4AAAANAAAAAAALAA8AAAANAAEAAAANABEAAAABAAcAAAAOABEAAAABAAcAAAAPABEAAAABAAcAAAAQABEAAAABAAcAAAANABYAAAAEAAsAAAARABEAAAACAAcAAAARABAAAAACAAYAAAARAA8AAAACAAYAAAARAA4AAAACAAYAAAARAA0AAAACAAUAAAAUABYAAAABAAQAAAAVABUAAAAAAAYAAAAVABYAAAAFAAwAAAAVABIAAAAAAAYAAAAVABEAAAAAAAUAAAAVAA4AAAAAAAcAAAAVAA0AAAAAAAUAAAAVABQAAAAAAAYAAAAVABMAAAAAAAYAAAAMABIAAAAMAAAAAAAMABMAAAAMAAEAAAANABIAAAALAAIAAAANABMAAAALAAMAAAAOABIAAAAMAAAAAAAOABMAAAAMAAEAAAAPABIAAAAMAAAAAAAPABMAAAAMAAEAAAAQABIAAAALAAIAAAAQABMAAAALAAMAAAARABIAAAAMAAAAAAARABMAAAAMAAEAAAAaABYAAAABAAcAAAAZABYAAAABAAcAAAAYABYAAAABAAcAAAAXABYAAAABAAcAAAAWABYAAAABAAcAAAANABsAAAACAAYAAAANABoAAAACAAYAAAANABkAAAACAAYAAAANABgAAAACAAYAAAANABcAAAACAAYAAAAMABsAAAACAAgAAAAMABoAAAACAAgAAAANACIAAAACAAYAAAANACEAAAACAAYAAAANACAAAAACAAYAAAANAB8AAAACAAYAAAANAB4AAAACAAYAAAANAB0AAAACAAYAAAANABwAAAACAAYAAAAMACIAAAACAAgAAAAMACEAAAACAAgAAAAMACAAAAACAAgAAAAMAB8AAAACAAgAAAAMAB4AAAACAAgAAAAMAB0AAAACAAgAAAAMABwAAAACAAgAAAALACIAAAACAAgAAAALACEAAAACAAgAAAALACAAAAACAAgAAAALAB8AAAACAAgAAAALAB4AAAACAAgAAAALAB0AAAACAAgAAAALABwAAAACAAgAAAALABsAAAACAAgAAAAKACIAAAACAAgAAAAKACEAAAACAAgAAAAKACAAAAACAAgAAAAKAB8AAAACAAgAAAAKAB4AAAACAAgAAAAKAB0AAAACAAgAAAAKABwAAAACAAgAAAAKABsAAAACAAgAAAAJACIAAAACAAgAAAAJACEAAAACAAgAAAAJACAAAAACAAgAAAAJAB8AAAACAAgAAAAJAB4AAAACAAgAAAAJAB0AAAACAAgAAAAJABwAAAACAAgAAAAJABsAAAACAAgAAAAIACIAAAACAAgAAAAIACEAAAACAAgAAAAIACAAAAACAAgAAAAIAB8AAAACAAgAAAAIAB4AAAACAAgAAAAIAB0AAAACAAgAAAAIABwAAAACAAgAAAAIABsAAAACAAgAAAAHACIAAAACAAgAAAAHACEAAAACAAgAAAAHACAAAAACAAgAAAAHAB8AAAACAAgAAAAHAB4AAAACAAgAAAAHAB0AAAACAAgAAAAHABwAAAACAAgAAAAHABsAAAACAAgAAAAGACIAAAACAAgAAAAGACEAAAACAAgAAAAGACAAAAACAAgAAAAGAB8AAAACAAgAAAAGAB4AAAACAAgAAAAGAB0AAAACAAgAAAAGABwAAAACAAgAAAAGABsAAAACAAgAAAAFACIAAAACAAgAAAAFACEAAAACAAgAAAAFACAAAAACAAgAAAAFAB8AAAACAAgAAAAFAB4AAAACAAgAAAAFAB0AAAACAAgAAAAFABwAAAACAAgAAAAFABsAAAACAAgAAAAEACIAAAACAAgAAAAEACEAAAACAAgAAAAEACAAAAACAAgAAAAEAB8AAAACAAgAAAAEAB4AAAACAAgAAAAEAB0AAAACAAgAAAAEABwAAAACAAgAAAAEABsAAAACAAgAAAADACIAAAACAAgAAAADACEAAAACAAgAAAADACAAAAACAAgAAAADAB8AAAACAAgAAAADAB4AAAACAAgAAAADAB0AAAACAAgAAAADABwAAAACAAgAAAADABsAAAACAAgAAAACACIAAAACAAgAAAACACEAAAACAAgAAAACACAAAAACAAgAAAACAB8AAAACAAgAAAACAB4AAAACAAgAAAACAB0AAAACAAgAAAACABwAAAACAAgAAAACABsAAAACAAgAAAABACIAAAACAAgAAAABACEAAAACAAgAAAABACAAAAACAAgAAAABAB8AAAACAAgAAAABAB4AAAACAAgAAAABAB0AAAACAAgAAAABABwAAAACAAgAAAABABsAAAACAAgAAAALABoAAAACAAgAAAAKABoAAAACAAgAAAAJABoAAAACAAgAAAAIABoAAAACAAgAAAAHABoAAAACAAgAAAAGABoAAAACAAgAAAAFABoAAAACAAgAAAAEABoAAAACAAgAAAADABoAAAACAAgAAAACABoAAAACAAgAAAABABoAAAACAAgAAAABABkAAAACAAgAAAAAACEAAAACAAgAAAAAACAAAAACAAgAAAAAAB8AAAACAAgAAAAAAB4AAAACAAgAAAAAAB0AAAACAAgAAAAAABwAAAACAAgAAAAAABsAAAACAAgAAAAAABoAAAACAAgAAAAAABkAAAACAAgAAAABABgAAAACAAgAAAABABcAAAACAAgAAAABABYAAAACAAgAAAABABUAAAACAAgAAAABABQAAAACAAgAAAABABMAAAACAAgAAAABABIAAAACAAgAAAABABEAAAACAAgAAAABABAAAAACAAgAAAABAA8AAAACAAgAAAABAA4AAAACAAgAAAABAA0AAAACAAgAAAABAAwAAAACAAgAAAABAAsAAAACAAgAAAABAAoAAAACAAgAAAABAAkAAAACAAgAAAABAAgAAAACAAgAAAABAAcAAAACAAgAAAAAACIAAAACAAgAAAAAABgAAAACAAgAAAAAABcAAAACAAgAAAAAABYAAAACAAgAAAAAABUAAAACAAgAAAAAABQAAAACAAgAAAAAABMAAAACAAgAAAAAABIAAAACAAgAAAAAABEAAAACAAgAAAAAABAAAAACAAgAAAAAAA8AAAACAAgAAAAAAA4AAAACAAgAAAAAAA0AAAACAAgAAAAAAAwAAAACAAgAAAAAAAsAAAACAAgAAAAAAAoAAAACAAgAAAAAAAkAAAACAAgAAAAAAAgAAAACAAgAAAAAAAcAAAACAAgAAAD//yIAAAACAAgAAAD//yEAAAACAAgAAAD//yAAAAACAAgAAAD//x8AAAACAAgAAAD//x4AAAACAAgAAAD//x0AAAACAAgAAAD//xwAAAACAAgAAAD//xsAAAACAAgAAAD//xoAAAACAAgAAAD//xkAAAACAAgAAAD//xgAAAACAAgAAAD//xcAAAACAAgAAAD//xYAAAACAAgAAAD//xUAAAACAAgAAAD//xQAAAACAAgAAAD//xMAAAACAAgAAAD//xIAAAACAAgAAAD//xEAAAACAAgAAAD//xAAAAACAAgAAAD//w8AAAACAAgAAAD//w4AAAACAAgAAAD//w0AAAACAAgAAAD//wwAAAACAAgAAAD//wsAAAACAAgAAAD//woAAAACAAgAAAD//wkAAAACAAgAAAD//wgAAAACAAgAAAD//wcAAAACAAgAAAD+/yIAAAACAAgAAAD+/yEAAAACAAgAAAD+/yAAAAACAAgAAAD+/x8AAAACAAgAAAD+/x4AAAACAAgAAAD+/x0AAAACAAgAAAD+/xwAAAACAAgAAAD+/xsAAAACAAgAAAD+/xoAAAACAAgAAAD+/xkAAAACAAgAAAD+/xgAAAACAAgAAAD+/xcAAAACAAgAAAD+/xYAAAACAAgAAAD+/xUAAAACAAgAAAD+/xQAAAACAAgAAAD+/xMAAAACAAgAAAD+/xIAAAACAAgAAAD+/xEAAAACAAgAAAD+/xAAAAACAAgAAAD+/w8AAAACAAgAAAD+/w4AAAACAAgAAAD+/w0AAAACAAgAAAD+/wwAAAACAAgAAAD+/wsAAAACAAgAAAD+/woAAAACAAgAAAD+/wkAAAACAAgAAAD+/wgAAAACAAgAAAD+/wcAAAACAAgAAAD9/yIAAAACAAgAAAD9/yEAAAACAAgAAAD9/yAAAAACAAgAAAD9/x8AAAACAAgAAAD9/x4AAAACAAgAAAD9/x0AAAACAAgAAAD9/xwAAAACAAgAAAD9/xsAAAACAAgAAAD9/xoAAAACAAgAAAD9/xkAAAACAAgAAAD9/xgAAAACAAgAAAD9/xcAAAACAAgAAAD9/xYAAAACAAgAAAD9/xUAAAACAAgAAAD9/xQAAAACAAgAAAD9/xMAAAACAAgAAAD9/xIAAAACAAgAAAD9/xEAAAACAAgAAAD9/xAAAAACAAgAAAD9/w8AAAACAAgAAAD9/w4AAAACAAgAAAD9/w0AAAACAAgAAAD9/wwAAAACAAgAAAD9/wsAAAACAAgAAAD9/woAAAACAAgAAAD9/wkAAAACAAgAAAD9/wgAAAACAAgAAAD9/wcAAAACAAgAAAD8/yIAAAACAAgAAAD8/yEAAAACAAgAAAD8/yAAAAACAAgAAAD8/x8AAAACAAgAAAD8/x4AAAACAAgAAAD8/x0AAAACAAgAAAD8/xwAAAACAAgAAAD8/xsAAAACAAgAAAD8/xoAAAACAAgAAAD8/xkAAAACAAgAAAD8/xgAAAACAAgAAAD8/xcAAAACAAgAAAD8/xYAAAACAAgAAAD8/xUAAAACAAgAAAD8/xQAAAACAAgAAAD8/xMAAAACAAgAAAD8/xIAAAACAAgAAAD8/xEAAAACAAgAAAD8/xAAAAACAAgAAAD8/w8AAAACAAgAAAD8/w4AAAACAAgAAAD8/w0AAAACAAgAAAD8/wwAAAACAAgAAAD8/wsAAAACAAgAAAD8/woAAAACAAgAAAD8/wkAAAACAAgAAAD8/wgAAAACAAgAAAD8/wcAAAACAAgAAAD7/yIAAAACAAgAAAD7/yEAAAACAAgAAAD7/yAAAAACAAgAAAD7/x8AAAACAAgAAAD7/x4AAAACAAgAAAD7/x0AAAACAAgAAAD7/xwAAAACAAgAAAD7/xsAAAACAAgAAAD7/xoAAAACAAgAAAD7/xkAAAACAAgAAAD7/xgAAAACAAgAAAD7/xcAAAACAAgAAAD7/xYAAAACAAgAAAD7/xUAAAACAAgAAAD7/xQAAAACAAgAAAD7/xMAAAACAAgAAAD7/xIAAAACAAgAAAD7/xEAAAACAAgAAAD7/xAAAAACAAgAAAD7/w8AAAACAAgAAAD7/w4AAAACAAgAAAD7/w0AAAACAAgAAAD7/wwAAAACAAgAAAD7/wsAAAACAAgAAAD7/woAAAACAAgAAAD7/wkAAAACAAgAAAD7/wgAAAACAAgAAAD7/wcAAAACAAgAAAD6/yIAAAACAAgAAAD6/yEAAAACAAgAAAD6/yAAAAACAAgAAAD6/x8AAAACAAgAAAD6/x4AAAACAAgAAAD6/x0AAAACAAgAAAD6/xwAAAACAAgAAAD6/xsAAAACAAgAAAD6/xoAAAACAAgAAAD6/xkAAAACAAgAAAD6/xgAAAACAAgAAAD6/xcAAAACAAgAAAD6/xYAAAACAAgAAAD6/xUAAAACAAgAAAD6/xQAAAACAAgAAAD6/xMAAAACAAgAAAD6/xIAAAACAAgAAAD6/xEAAAACAAgAAAD6/xAAAAACAAgAAAD6/w8AAAACAAgAAAD6/w4AAAACAAgAAAD6/w0AAAACAAgAAAD6/wwAAAACAAgAAAD6/wsAAAACAAgAAAD6/woAAAACAAgAAAD6/wkAAAACAAgAAAD6/wgAAAACAAgAAAD6/wcAAAACAAgAAAD5/yIAAAACAAgAAAD5/yEAAAACAAgAAAD5/yAAAAACAAgAAAD5/x8AAAACAAgAAAD5/x4AAAACAAgAAAD5/x0AAAACAAgAAAD5/xwAAAACAAgAAAD5/xsAAAACAAgAAAD5/xoAAAACAAgAAAD5/xkAAAACAAgAAAD5/xgAAAACAAgAAAD5/xcAAAACAAgAAAD5/xYAAAACAAgAAAD5/xUAAAACAAgAAAD5/xQAAAACAAgAAAD5/xMAAAACAAgAAAD5/xIAAAACAAgAAAD5/xEAAAACAAgAAAD5/xAAAAACAAgAAAD5/w8AAAACAAgAAAD5/w4AAAACAAgAAAD5/w0AAAACAAgAAAD5/wwAAAACAAgAAAD5/wsAAAACAAgAAAD5/woAAAACAAgAAAD5/wkAAAACAAgAAAD5/wgAAAACAAgAAAD5/wcAAAACAAgAAAAQAA0AAAABAAUAAAAPAA0AAAABAAUAAAAOAA0AAAABAAUAAAANAA0AAAABAAUAAAAKAAwAAAACAAUAAAAJAAwAAAAAAAkAAAAJAAsAAAACAAUAAAAIAAwAAAACAAgAAAAIAAsAAAABAAUAAAAHAAwAAAACAAgAAAAHAAsAAAAAAAkAAAAHAAoAAAACAAYAAAAHAAkAAAACAAYAAAAHAAgAAAACAAYAAAAHAAcAAAACAAYAAAAHAAYAAAACAAYAAAAHAAUAAAACAAYAAAAHAAQAAAACAAYAAAAHAAMAAAACAAUAAAAGAAwAAAACAAgAAAAGAAsAAAACAAgAAAAGAAoAAAACAAgAAAAGAAkAAAACAAgAAAAGAAgAAAACAAgAAAAGAAcAAAACAAgAAAAGAAYAAAACAAgAAAAGAAUAAAACAAgAAAAGAAQAAAACAAgAAAAGAAMAAAAAAAkAAAAFAAwAAAACAAgAAAAFAAsAAAACAAgAAAAFAAoAAAACAAgAAAAFAAkAAAACAAgAAAAFAAgAAAACAAgAAAAFAAcAAAACAAgAAAAFAAYAAAACAAgAAAAFAAUAAAACAAgAAAAFAAQAAAACAAgAAAAFAAMAAAACAAgAAAAEAAwAAAACAAgAAAAEAAsAAAACAAgAAAAEAAoAAAACAAgAAAAEAAkAAAACAAgAAAAEAAgAAAACAAgAAAAEAAcAAAACAAgAAAAEAAYAAAACAAgAAAAEAAUAAAACAAgAAAAEAAQAAAACAAgAAAAEAAMAAAACAAgAAAADAAwAAAACAAgAAAADAAsAAAACAAgAAAADAAoAAAACAAgAAAADAAkAAAACAAgAAAADAAgAAAACAAgAAAADAAcAAAACAAgAAAADAAYAAAACAAgAAAADAAUAAAACAAgAAAADAAQAAAACAAgAAAADAAMAAAACAAgAAAACAAwAAAACAAgAAAACAAsAAAACAAgAAAACAAoAAAACAAgAAAACAAkAAAACAAgAAAACAAgAAAACAAgAAAACAAcAAAACAAgAAAACAAYAAAACAAgAAAACAAUAAAACAAgAAAACAAQAAAACAAgAAAACAAMAAAACAAgAAAAQABAAAAACAAgAAAAQAA8AAAACAAgAAAAQAA4AAAACAAgAAAAPABAAAAACAAgAAAAPAA8AAAACAAgAAAAPAA4AAAACAAgAAAAOABAAAAACAAgAAAAOAA8AAAACAAgAAAAOAA4AAAACAAgAAAANABAAAAACAAgAAAANAA8AAAACAAgAAAANAA4AAAACAAgAAAAhABsAAAACAAgAAAAhABoAAAACAAgAAAAhABkAAAACAAgAAAAhABgAAAACAAgAAAAhABcAAAACAAgAAAAhABYAAAACAAgAAAAhABUAAAACAAgAAAAhABQAAAACAAgAAAAhABMAAAACAAgAAAAhABIAAAACAAgAAAAhABEAAAACAAgAAAAhABAAAAACAAgAAAAhAA8AAAACAAgAAAAhAA4AAAACAAgAAAAhAA0AAAABAAUAAAAgABsAAAACAAgAAAAgABoAAAACAAgAAAAgABkAAAACAAgAAAAgABgAAAACAAgAAAAgABcAAAACAAgAAAAgABYAAAACAAgAAAAgABUAAAACAAgAAAAgABQAAAACAAgAAAAgABMAAAACAAgAAAAgABIAAAACAAgAAAAgABEAAAACAAgAAAAgABAAAAACAAgAAAAgAA8AAAACAAgAAAAgAA4AAAACAAgAAAAgAA0AAAABAAUAAAAfABsAAAAAAAYAAAAfABoAAAAAAAYAAAAfABkAAAAAAAYAAAAfABgAAAAAAAYAAAAfABcAAAAAAAYAAAAfABYAAAABAAgAAAAfABUAAAACAAgAAAAfABQAAAACAAgAAAAfABMAAAACAAgAAAAfABIAAAACAAgAAAAfABEAAAABAAkAAAAfABAAAAAAAAYAAAAfAA8AAAAAAAYAAAAfAA4AAAABAAgAAAAfAA0AAAABAAUAAAAeABYAAAABAAcAAAAeABUAAAACAAgAAAAeABQAAAACAAgAAAAeABMAAAACAAgAAAAeABIAAAACAAgAAAAeABEAAAABAAUAAAAeAA4AAAABAAcAAAAeAA0AAAABAAUAAAAdABYAAAABAAcAAAAdABUAAAACAAgAAAAdABQAAAACAAgAAAAdABMAAAACAAgAAAAdABIAAAACAAgAAAAdABEAAAABAAUAAAAdAA4AAAABAAcAAAAdAA0AAAABAAUAAAAcABYAAAABAAcAAAAcABUAAAACAAgAAAAcABQAAAACAAgAAAAcABMAAAACAAgAAAAcABIAAAACAAgAAAAcABEAAAABAAUAAAAcAA4AAAABAAcAAAAcAA0AAAABAAUAAAAbABYAAAABAAcAAAAbABUAAAACAAgAAAAbABQAAAACAAgAAAAbABMAAAACAAgAAAAbABIAAAACAAgAAAAbABEAAAABAAUAAAAbAA4AAAABAAcAAAAbAA0AAAABAAUAAAAaABUAAAACAAgAAAAaABQAAAACAAgAAAAaABMAAAACAAgAAAAaABIAAAACAAgAAAAaABEAAAABAAUAAAAaAA4AAAABAAcAAAAaAA0AAAABAAUAAAAZABUAAAACAAgAAAAZABQAAAACAAgAAAAZABMAAAACAAgAAAAZABIAAAACAAgAAAAZABEAAAABAAUAAAAZAA4AAAABAAcAAAAZAA0AAAABAAUAAAAYABUAAAACAAgAAAAYABQAAAACAAgAAAAYABMAAAACAAgAAAAYABIAAAACAAgAAAAYABEAAAABAAUAAAAYAA4AAAABAAcAAAAYAA0AAAABAAUAAAAXABUAAAACAAgAAAAXABQAAAACAAgAAAAXABMAAAACAAgAAAAXABIAAAACAAgAAAAXABEAAAABAAUAAAAXAA4AAAABAAcAAAAXAA0AAAABAAUAAAAWABUAAAACAAgAAAAWABQAAAACAAgAAAAWABMAAAACAAgAAAAWABIAAAACAAgAAAAWABEAAAABAAUAAAAWAA4AAAABAAcAAAAWAA0AAAABAAUAAAABAAYAAAACAAgAAAABAAUAAAACAAgAAAABAAQAAAACAAgAAAABAAMAAAACAAgAAAAAAAYAAAACAAgAAAAAAAUAAAACAAgAAAAAAAQAAAACAAgAAAAAAAMAAAACAAgAAAD//wYAAAACAAgAAAD//wUAAAACAAgAAAD//wQAAAACAAgAAAD//wMAAAACAAgAAAD+/wYAAAACAAgAAAD+/wUAAAACAAgAAAD+/wQAAAACAAgAAAD+/wMAAAACAAgAAAD9/wYAAAACAAgAAAD9/wUAAAACAAgAAAD9/wQAAAACAAgAAAD9/wMAAAACAAgAAAD8/wYAAAACAAgAAAD8/wUAAAACAAgAAAD8/wQAAAACAAgAAAD8/wMAAAACAAgAAAD7/wYAAAACAAgAAAD7/wUAAAACAAgAAAD7/wQAAAACAAgAAAD7/wMAAAACAAgAAAD6/wYAAAACAAgAAAD6/wUAAAACAAgAAAD6/wQAAAACAAgAAAD6/wMAAAACAAgAAAD5/wYAAAACAAgAAAD5/wUAAAACAAgAAAD5/wQAAAACAAgAAAD5/wMAAAACAAgAAAD4/wsAAAACAAgAAAD4/woAAAACAAgAAAD4/wkAAAACAAgAAAD4/wgAAAACAAgAAAD4/wcAAAACAAgAAAD4/wYAAAACAAgAAAD4/wUAAAACAAgAAAD4/wQAAAACAAgAAAD4/wMAAAACAAgAAAD3/wsAAAACAAgAAAD3/woAAAACAAgAAAD3/wkAAAACAAgAAAD3/wgAAAACAAgAAAD3/wcAAAACAAgAAAD3/wYAAAACAAgAAAD3/wUAAAACAAgAAAD3/wQAAAACAAgAAAD3/wMAAAACAAgAAAD2/wsAAAACAAgAAAD2/woAAAACAAgAAAD2/wkAAAACAAgAAAD2/wgAAAACAAgAAAD2/wcAAAACAAgAAAD2/wYAAAACAAgAAAD2/wUAAAACAAgAAAD2/wQAAAACAAgAAAD2/wMAAAACAAgAAAD1/wsAAAACAAgAAAD1/woAAAACAAgAAAD1/wkAAAACAAgAAAD1/wgAAAACAAgAAAD1/wcAAAACAAgAAAD1/wYAAAACAAgAAAD1/wUAAAACAAgAAAD1/wQAAAACAAgAAAD1/wMAAAACAAgAAAAGAAIAAAACAAYAAAAGAAEAAAACAAYAAAAGAAAAAAACAAYAAAAGAP//AAACAAUAAAAFAAIAAAACAAgAAAAFAAEAAAACAAgAAAAFAAAAAAACAAgAAAAFAP//AAABAAUAAAAEAAIAAAACAAgAAAAEAAEAAAACAAgAAAAEAAAAAAACAAgAAAAEAP//AAABAAUAAAADAAIAAAACAAgAAAADAAEAAAACAAgAAAADAAAAAAACAAgAAAADAP//AAABAAUAAAACAAIAAAACAAgAAAACAAEAAAACAAgAAAACAAAAAAACAAgAAAACAP//AAABAAUAAAABAAIAAAACAAgAAAABAAEAAAACAAgAAAABAAAAAAACAAgAAAABAP//AAABAAUAAAAAAAIAAAACAAgAAAAAAAEAAAACAAgAAAAAAAAAAAACAAgAAAAAAP//AAABAAUAAAD//wIAAAACAAgAAAD//wEAAAACAAgAAAD//wAAAAACAAgAAAD/////AAABAAUAAAD+/wIAAAACAAgAAAD+/wEAAAACAAgAAAD+/wAAAAACAAgAAAD+////AAABAAUAAAD9/wIAAAACAAgAAAD9/wEAAAACAAgAAAD9/wAAAAACAAgAAAD9////AAABAAUAAAD8/wIAAAACAAgAAAD8/wEAAAACAAgAAAD8/wAAAAACAAgAAAD8////AAABAAUAAAD7/wIAAAACAAgAAAD7/wEAAAACAAgAAAD7/wAAAAACAAgAAAD7////AAABAAUAAAD6/wIAAAACAAgAAAD6/wEAAAACAAgAAAD6/wAAAAACAAgAAAD6////AAABAAUAAAD5/wIAAAACAAgAAAD5/wEAAAACAAgAAAD5/wAAAAACAAgAAAD5////AAABAAUAAAD4/wIAAAACAAgAAAD4/wEAAAACAAgAAAD4/wAAAAACAAgAAAD4////AAABAAUAAAD3/wIAAAACAAgAAAD3/wEAAAACAAgAAAD3/wAAAAACAAgAAAD3////AAABAAUAAAD2/wIAAAACAAgAAAD2/wEAAAACAAgAAAD2/wAAAAACAAgAAAD2////AAABAAUAAAD1/wIAAAACAAgAAAD1/wEAAAACAAgAAAD1/wAAAAACAAgAAAD1////AAABAAUAAAD0/wgAAAACAAgAAAD0/wcAAAABAAkAAAD0/wYAAAAAAAYAAAD0/wUAAAAAAAYAAAD0/wQAAAAAAAYAAAD0/wMAAAAAAAYAAAD0/wIAAAAAAAYAAAD0/wEAAAAAAAYAAAD0/wAAAAAAAAYAAAD0////AAAAAAUAAAD9/yMAAAACAAgAAAD8/yMAAAACAAgAAAD7/yMAAAACAAgAAAD6/yMAAAACAAgAAAD5/yMAAAACAAgAAAD4/yMAAAACAAgAAAD4/yIAAAACAAgAAAD4/yEAAAACAAgAAAD4/yAAAAACAAgAAAD4/x8AAAACAAgAAAD4/x4AAAACAAgAAAD4/x0AAAACAAgAAAD4/xwAAAACAAgAAAD4/xsAAAACAAgAAAD4/xoAAAACAAgAAAD4/xkAAAACAAgAAAD4/xgAAAACAAgAAAD4/xcAAAACAAgAAAD4/xYAAAACAAgAAAD4/xUAAAACAAgAAAD4/xQAAAACAAgAAAD4/xMAAAACAAgAAAD4/xIAAAACAAgAAAD4/xEAAAACAAgAAAD4/xAAAAACAAgAAAD4/w8AAAACAAgAAAD4/w4AAAACAAgAAAD4/w0AAAACAAgAAAD4/wwAAAACAAgAAAD3/yMAAAABAAgAAAD3/yIAAAACAAgAAAD3/yEAAAACAAgAAAD3/yAAAAACAAgAAAD3/x8AAAACAAgAAAD3/x4AAAACAAgAAAD3/x0AAAACAAgAAAD3/xwAAAACAAgAAAD3/xsAAAACAAgAAAD3/xoAAAACAAgAAAD3/xkAAAACAAgAAAD3/xgAAAACAAgAAAD3/xcAAAACAAgAAAD3/xYAAAACAAgAAAD3/xUAAAACAAgAAAD3/xQAAAACAAgAAAD3/xMAAAACAAgAAAD3/xIAAAACAAgAAAD3/xEAAAACAAgAAAD3/xAAAAACAAgAAAD3/w8AAAACAAgAAAD3/w4AAAACAAgAAAD3/w0AAAACAAgAAAD3/wwAAAACAAgAAAD2/yMAAAABAAcAAAD2/yIAAAACAAgAAAD2/yEAAAACAAgAAAD2/yAAAAACAAgAAAD2/x8AAAACAAgAAAD2/x4AAAACAAgAAAD2/x0AAAACAAgAAAD2/xwAAAACAAgAAAD2/xsAAAACAAgAAAD2/xoAAAACAAgAAAD2/xkAAAACAAgAAAD2/xgAAAACAAgAAAD2/xcAAAACAAgAAAD2/xYAAAACAAgAAAD2/xUAAAACAAgAAAD2/xQAAAACAAgAAAD2/xMAAAACAAgAAAD2/xIAAAACAAgAAAD2/xEAAAACAAgAAAD2/xAAAAACAAgAAAD2/w8AAAACAAgAAAD2/w4AAAACAAgAAAD2/w0AAAACAAgAAAD2/wwAAAACAAgAAAD1/yMAAAABAAcAAAD1/yIAAAACAAgAAAD1/yEAAAACAAgAAAD1/yAAAAACAAgAAAD1/x8AAAACAAgAAAD1/x4AAAACAAgAAAD1/x0AAAACAAgAAAD1/xwAAAACAAgAAAD1/xsAAAACAAgAAAD1/xoAAAACAAgAAAD1/xkAAAACAAgAAAD1/xgAAAACAAgAAAD1/xcAAAACAAgAAAD1/xYAAAACAAgAAAD1/xUAAAACAAgAAAD1/xQAAAACAAgAAAD1/xMAAAACAAgAAAD1/xIAAAACAAgAAAD1/xEAAAACAAgAAAD1/xAAAAACAAgAAAD1/w8AAAACAAgAAAD1/w4AAAACAAgAAAD1/w0AAAACAAgAAAD1/wwAAAACAAgAAAD0/yMAAAABAAcAAAD0/yIAAAACAAgAAAD0/yEAAAACAAgAAAD0/yAAAAACAAgAAAD0/x8AAAACAAgAAAD0/x4AAAACAAgAAAD0/x0AAAACAAgAAAD0/xwAAAACAAgAAAD0/xsAAAACAAgAAAD0/xoAAAACAAgAAAD0/xkAAAACAAgAAAD0/xgAAAACAAgAAAD0/xcAAAACAAgAAAD0/xYAAAACAAgAAAD0/xUAAAACAAgAAAD0/xQAAAACAAgAAAD0/xMAAAACAAgAAAD0/xIAAAACAAgAAAD0/xEAAAACAAgAAAD0/xAAAAACAAgAAAD0/w8AAAACAAgAAAD0/w4AAAACAAgAAAD0/w0AAAACAAgAAAD0/wwAAAACAAgAAAD0/wsAAAACAAgAAAD0/woAAAACAAgAAAD0/wkAAAACAAgAAADz/yMAAAAAAAcAAADz/yIAAAAAAAYAAADz/yEAAAAAAAYAAADz/yAAAAAAAAYAAADz/x8AAAAAAAYAAADz/x4AAAAAAAYAAADz/x0AAAAAAAYAAADz/xwAAAAAAAYAAADz/xsAAAAAAAYAAADz/xoAAAAAAAYAAADz/xkAAAAAAAYAAADz/xgAAAAAAAYAAADz/xcAAAAAAAYAAADz/xYAAAAAAAYAAADz/xUAAAAAAAYAAADz/xQAAAAAAAYAAADz/xMAAAAAAAYAAADz/xIAAAAAAAYAAADz/xEAAAAAAAYAAADz/xAAAAAAAAYAAADz/w8AAAAAAAYAAADz/w4AAAAAAAYAAADz/w0AAAAAAAYAAADz/wwAAAAAAAYAAADz/wsAAAAAAAYAAADz/woAAAAAAAYAAADz/wkAAAAAAAYAAADz/wgAAAAAAAYAAADz/wcAAAAAAAUAAAAdACkAAAACAAcAAAAdACgAAAAAAAgAAAAdACcAAAACAAgAAAAdACYAAAACAAgAAAAdACUAAAACAAgAAAAdACQAAAABAAUAAAAcACkAAAABAAcAAAAcACgAAAACAAgAAAAcACcAAAACAAgAAAAcACYAAAACAAgAAAAcACUAAAACAAgAAAAcACQAAAABAAUAAAAbACkAAAABAAcAAAAbACgAAAACAAgAAAAbACcAAAACAAgAAAAbACYAAAACAAgAAAAbACUAAAACAAgAAAAbACQAAAABAAUAAAAaACkAAAABAAcAAAAaACgAAAACAAgAAAAaACcAAAACAAgAAAAaACYAAAACAAgAAAAaACUAAAACAAgAAAAaACQAAAABAAUAAAAZACkAAAABAAcAAAAZACgAAAACAAgAAAAZACcAAAACAAgAAAAZACYAAAACAAgAAAAZACUAAAACAAgAAAAZACQAAAABAAUAAAAYACkAAAABAAcAAAAYACgAAAACAAgAAAAYACcAAAACAAgAAAAYACYAAAACAAgAAAAYACUAAAACAAgAAAAYACQAAAABAAUAAAAXACkAAAABAAcAAAAXACgAAAACAAgAAAAXACcAAAACAAgAAAAXACYAAAACAAgAAAAXACUAAAACAAgAAAAXACQAAAABAAUAAAAWACkAAAABAAcAAAAWACgAAAACAAgAAAAWACcAAAACAAgAAAAWACYAAAACAAgAAAAWACUAAAACAAgAAAAWACQAAAABAAUAAAAVACkAAAABAAcAAAAVACgAAAACAAgAAAAVACcAAAACAAgAAAAVACYAAAACAAgAAAAVACUAAAACAAgAAAAVACQAAAABAAUAAAAUACkAAAABAAcAAAAUACgAAAACAAgAAAAUACcAAAACAAgAAAAUACYAAAACAAgAAAAUACUAAAACAAgAAAAUACQAAAABAAUAAAATACkAAAABAAcAAAATACgAAAACAAgAAAATACcAAAACAAgAAAATACYAAAACAAgAAAATACUAAAACAAgAAAATACQAAAABAAUAAAASACkAAAABAAcAAAASACgAAAACAAgAAAASACcAAAACAAgAAAASACYAAAACAAgAAAASACUAAAACAAgAAAASACQAAAABAAUAAAARACkAAAABAAcAAAARACgAAAACAAgAAAARACcAAAACAAgAAAARACYAAAACAAgAAAARACUAAAACAAgAAAARACQAAAABAAUAAAAQACkAAAABAAcAAAAQACgAAAACAAgAAAAQACcAAAACAAgAAAAQACYAAAACAAgAAAAQACUAAAACAAgAAAAQACQAAAABAAUAAAAPACkAAAABAAcAAAAPACgAAAACAAgAAAAPACcAAAACAAgAAAAPACYAAAACAAgAAAAPACUAAAACAAgAAAAPACQAAAABAAUAAAAOACkAAAABAAcAAAAOACgAAAACAAgAAAAOACcAAAACAAgAAAAOACYAAAACAAgAAAAOACUAAAACAAgAAAAOACQAAAABAAUAAAANACkAAAABAAcAAAANACgAAAACAAgAAAANACcAAAACAAgAAAANACYAAAACAAgAAAANACUAAAACAAgAAAANACQAAAAAAAkAAAANACMAAAACAAYAAAAMACkAAAABAAcAAAAMACgAAAACAAgAAAAMACcAAAACAAgAAAAMACYAAAACAAgAAAAMACUAAAACAAgAAAAMACQAAAACAAgAAAAMACMAAAACAAgAAAALACkAAAABAAcAAAALACgAAAACAAgAAAALACcAAAACAAgAAAALACYAAAACAAgAAAALACUAAAACAAgAAAALACQAAAACAAgAAAALACMAAAACAAgAAAAKACkAAAABAAcAAAAKACgAAAACAAgAAAAKACcAAAACAAgAAAAKACYAAAACAAgAAAAKACUAAAACAAgAAAAKACQAAAACAAgAAAAKACMAAAACAAgAAAAJACkAAAABAAcAAAAJACgAAAACAAgAAAAJACcAAAACAAgAAAAJACYAAAACAAgAAAAJACUAAAACAAgAAAAJACQAAAACAAgAAAAJACMAAAACAAgAAAAIACkAAAABAAcAAAAIACgAAAACAAgAAAAIACcAAAACAAgAAAAIACYAAAACAAgAAAAIACUAAAACAAgAAAAIACQAAAACAAgAAAAIACMAAAACAAgAAAAHACkAAAABAAcAAAAHACgAAAACAAgAAAAHACcAAAACAAgAAAAHACYAAAACAAgAAAAHACUAAAACAAgAAAAHACQAAAACAAgAAAAHACMAAAACAAgAAAAGACkAAAABAAcAAAAGACgAAAACAAgAAAAGACcAAAACAAgAAAAGACYAAAACAAgAAAAGACUAAAACAAgAAAAGACQAAAACAAgAAAAGACMAAAACAAgAAAAFACkAAAABAAcAAAAFACgAAAACAAgAAAAFACcAAAACAAgAAAAFACYAAAACAAgAAAAFACUAAAACAAgAAAAFACQAAAACAAgAAAAFACMAAAACAAgAAAAEACkAAAABAAcAAAAEACgAAAACAAgAAAAEACcAAAACAAgAAAAEACYAAAACAAgAAAAEACUAAAACAAgAAAAEACQAAAACAAgAAAAEACMAAAACAAgAAAADACkAAAABAAcAAAADACgAAAACAAgAAAADACcAAAACAAgAAAADACYAAAACAAgAAAADACUAAAACAAgAAAADACQAAAACAAgAAAADACMAAAACAAgAAAACACkAAAABAAcAAAACACgAAAACAAgAAAACACcAAAACAAgAAAACACYAAAACAAgAAAACACUAAAACAAgAAAACACQAAAACAAgAAAACACMAAAACAAgAAAABACkAAAABAAcAAAABACgAAAACAAgAAAABACcAAAACAAgAAAABACYAAAACAAgAAAABACUAAAACAAgAAAABACQAAAACAAgAAAABACMAAAACAAgAAAAAACkAAAABAAcAAAAAACgAAAACAAgAAAAAACcAAAACAAgAAAAAACYAAAACAAgAAAAAACUAAAACAAgAAAAAACQAAAACAAgAAAAAACMAAAACAAgAAAD//ykAAAABAAcAAAD//ygAAAACAAgAAAD//ycAAAACAAgAAAD//yYAAAACAAgAAAD//yUAAAACAAgAAAD//yQAAAACAAgAAAD//yMAAAACAAgAAAD+/ykAAAABAAcAAAD+/ygAAAACAAgAAAD+/ycAAAACAAgAAAD+/yYAAAACAAgAAAD+/yUAAAACAAgAAAD+/yQAAAACAAgAAAD+/yMAAAACAAgAAAD9/ykAAAABAAcAAAD9/ygAAAACAAgAAAD9/ycAAAACAAgAAAD9/yYAAAACAAgAAAD9/yUAAAACAAgAAAD9/yQAAAACAAgAAAD8/ykAAAABAAcAAAD8/ygAAAACAAgAAAD8/ycAAAACAAgAAAD8/yYAAAACAAgAAAD8/yUAAAACAAgAAAD8/yQAAAACAAgAAAD7/ykAAAABAAcAAAD7/ygAAAACAAgAAAD7/ycAAAACAAgAAAD7/yYAAAACAAgAAAD7/yUAAAACAAgAAAD7/yQAAAACAAgAAAD6/ykAAAABAAcAAAD6/ygAAAACAAgAAAD6/ycAAAACAAgAAAD6/yYAAAACAAgAAAD6/yUAAAACAAgAAAD6/yQAAAACAAgAAAD5/ykAAAABAAcAAAD5/ygAAAACAAgAAAD5/ycAAAACAAgAAAD5/yYAAAACAAgAAAD5/yUAAAACAAgAAAD5/yQAAAACAAgAAAD4/ykAAAABAAcAAAD4/ygAAAACAAgAAAD4/ycAAAACAAgAAAD4/yYAAAACAAgAAAD4/yUAAAACAAgAAAD4/yQAAAACAAgAAAD3/ykAAAAAAAcAAAD3/ygAAAAAAAYAAAD3/ycAAAAAAAYAAAD3/yYAAAAAAAYAAAD3/yUAAAAAAAYAAAD3/yQAAAAAAAYAAAAnACgAAAACAAcAAAAnACcAAAACAAYAAAAnACYAAAACAAYAAAAnACUAAAACAAYAAAAnACQAAAACAAYAAAAnACMAAAACAAYAAAAnACIAAAACAAYAAAAnACEAAAACAAYAAAAnACAAAAACAAYAAAAnAB8AAAACAAYAAAAnAB4AAAACAAYAAAAnAB0AAAACAAYAAAAnABwAAAACAAYAAAAnABsAAAACAAYAAAAnABoAAAACAAYAAAAnABkAAAACAAYAAAAnABgAAAACAAYAAAAnABcAAAAAAAgAAAAnABYAAAACAAgAAAAnABUAAAACAAgAAAAmACgAAAABAAcAAAAmACcAAAACAAgAAAAmACYAAAACAAgAAAAmACUAAAACAAgAAAAmACQAAAACAAgAAAAmACMAAAACAAgAAAAmACIAAAACAAgAAAAmACEAAAACAAgAAAAmACAAAAACAAgAAAAmAB8AAAACAAgAAAAmAB4AAAACAAgAAAAmAB0AAAACAAgAAAAmABwAAAACAAgAAAAmABsAAAACAAgAAAAmABoAAAACAAgAAAAmABkAAAACAAgAAAAmABgAAAACAAgAAAAmABcAAAACAAgAAAAmABYAAAACAAgAAAAmABUAAAACAAgAAAAlACgAAAABAAcAAAAlACcAAAACAAgAAAAlACYAAAACAAgAAAAlACUAAAACAAgAAAAlACQAAAACAAgAAAAlACMAAAACAAgAAAAlACIAAAACAAgAAAAlACEAAAACAAgAAAAlACAAAAACAAgAAAAlAB8AAAACAAgAAAAlAB4AAAACAAgAAAAlAB0AAAACAAgAAAAlABwAAAACAAgAAAAlABsAAAACAAgAAAAlABoAAAACAAgAAAAlABkAAAACAAgAAAAlABgAAAACAAgAAAAlABcAAAACAAgAAAAlABYAAAACAAgAAAAlABUAAAACAAgAAAAkACgAAAABAAcAAAAkACcAAAACAAgAAAAkACYAAAACAAgAAAAkACUAAAACAAgAAAAkACQAAAACAAgAAAAkACMAAAACAAgAAAAkACIAAAACAAgAAAAkACEAAAACAAgAAAAkACAAAAACAAgAAAAkAB8AAAACAAgAAAAkAB4AAAACAAgAAAAkAB0AAAACAAgAAAAkABwAAAACAAgAAAAkABsAAAACAAgAAAAkABoAAAACAAgAAAAkABkAAAACAAgAAAAkABgAAAACAAgAAAAkABcAAAACAAgAAAAkABYAAAACAAgAAAAkABUAAAACAAgAAAAjACgAAAABAAcAAAAjACcAAAACAAgAAAAjACYAAAACAAgAAAAjACUAAAACAAgAAAAjACQAAAACAAgAAAAjACMAAAACAAgAAAAjACIAAAACAAgAAAAjACEAAAACAAgAAAAjACAAAAACAAgAAAAjAB8AAAACAAgAAAAjAB4AAAACAAgAAAAjAB0AAAACAAgAAAAjABwAAAACAAgAAAAjABsAAAACAAgAAAAjABoAAAACAAgAAAAjABkAAAACAAgAAAAjABgAAAACAAgAAAAjABcAAAACAAgAAAAjABYAAAACAAgAAAAjABUAAAACAAgAAAAiACgAAAABAAcAAAAiACcAAAACAAgAAAAiACYAAAACAAgAAAAiACUAAAACAAgAAAAiACQAAAACAAgAAAAiACMAAAACAAgAAAAiACIAAAACAAgAAAAiACEAAAACAAgAAAAiACAAAAACAAgAAAAiAB8AAAACAAgAAAAiAB4AAAACAAgAAAAiAB0AAAACAAgAAAAiABwAAAACAAgAAAAiABsAAAACAAgAAAAiABoAAAACAAgAAAAiABkAAAACAAgAAAAiABgAAAACAAgAAAAiABcAAAACAAgAAAAiABYAAAACAAgAAAAiABUAAAACAAgAAAAhACgAAAABAAcAAAAhACcAAAACAAgAAAAhACYAAAACAAgAAAAhACUAAAACAAgAAAAhACQAAAACAAgAAAAhACMAAAACAAgAAAAhACIAAAACAAgAAAAhACEAAAACAAgAAAAhACAAAAACAAgAAAAhAB8AAAACAAgAAAAhAB4AAAACAAgAAAAhAB0AAAACAAgAAAAhABwAAAACAAgAAAAgACgAAAABAAcAAAAgACcAAAACAAgAAAAgACYAAAACAAgAAAAgACUAAAACAAgAAAAgACQAAAACAAgAAAAgACMAAAACAAgAAAAgACIAAAACAAgAAAAgACEAAAACAAgAAAAgACAAAAACAAgAAAAgAB8AAAACAAgAAAAgAB4AAAACAAgAAAAgAB0AAAACAAgAAAAgABwAAAACAAgAAAAfACgAAAABAAcAAAAfACcAAAACAAgAAAAfACYAAAACAAgAAAAfACUAAAACAAgAAAAfACQAAAABAAkAAAAfACMAAAAAAAYAAAAfACIAAAAAAAYAAAAfACEAAAAAAAYAAAAfACAAAAAAAAYAAAAfAB8AAAAAAAYAAAAfAB4AAAAAAAYAAAAfAB0AAAAAAAYAAAAfABwAAAAAAAYAAAAeACgAAAABAAcAAAAeACcAAAACAAgAAAAeACYAAAACAAgAAAAeACUAAAACAAgAAAAeACQAAAABAAUAAAArABcAAAACAAcAAAArABYAAAACAAYAAAArABUAAAACAAYAAAArABQAAAACAAYAAAArABMAAAACAAYAAAArABIAAAACAAYAAAArABEAAAACAAYAAAArABAAAAACAAYAAAArAA8AAAACAAYAAAArAA4AAAACAAYAAAArAA0AAAACAAUAAAAqABcAAAABAAcAAAAqABYAAAACAAgAAAAqABUAAAACAAgAAAAqABQAAAACAAgAAAAqABMAAAACAAgAAAAqABIAAAACAAgAAAAqABEAAAACAAgAAAAqABAAAAACAAgAAAAqAA8AAAACAAgAAAAqAA4AAAACAAgAAAAqAA0AAAABAAUAAAApABcAAAABAAcAAAApABYAAAACAAgAAAApABUAAAACAAgAAAApABQAAAACAAgAAAApABMAAAACAAgAAAApABIAAAACAAgAAAApABEAAAACAAgAAAApABAAAAACAAgAAAApAA8AAAACAAgAAAApAA4AAAACAAgAAAApAA0AAAABAAUAAAAoABcAAAABAAcAAAAoABYAAAACAAgAAAAoABUAAAACAAgAAAAoABQAAAACAAgAAAAoABMAAAACAAgAAAAoABIAAAACAAgAAAAoABEAAAACAAgAAAAoABAAAAACAAgAAAAoAA8AAAACAAgAAAAoAA4AAAACAAgAAAAoAA0AAAABAAUAAAAnABQAAAACAAgAAAAnABMAAAACAAgAAAAnABIAAAACAAgAAAAnABEAAAACAAgAAAAnABAAAAACAAgAAAAnAA8AAAACAAgAAAAnAA4AAAACAAgAAAAnAA0AAAABAAUAAAAmABQAAAACAAgAAAAmABMAAAACAAgAAAAmABIAAAACAAgAAAAmABEAAAACAAgAAAAmABAAAAACAAgAAAAmAA8AAAACAAgAAAAmAA4AAAACAAgAAAAmAA0AAAABAAUAAAAlABQAAAACAAgAAAAlABMAAAACAAgAAAAlABIAAAACAAgAAAAlABEAAAACAAgAAAAlABAAAAACAAgAAAAlAA8AAAACAAgAAAAlAA4AAAACAAgAAAAlAA0AAAABAAUAAAAkABQAAAACAAgAAAAkABMAAAACAAgAAAAkABIAAAACAAgAAAAkABEAAAACAAgAAAAkABAAAAACAAgAAAAkAA8AAAACAAgAAAAkAA4AAAACAAgAAAAkAA0AAAABAAUAAAAjABQAAAACAAgAAAAjABMAAAACAAgAAAAjABIAAAACAAgAAAAjABEAAAACAAgAAAAjABAAAAACAAgAAAAjAA8AAAACAAgAAAAjAA4AAAACAAgAAAAjAA0AAAABAAUAAAAiABQAAAACAAgAAAAiABMAAAACAAgAAAAiABIAAAACAAgAAAAiABEAAAACAAgAAAAiABAAAAACAAgAAAAiAA8AAAACAAgAAAAiAA4AAAACAAgAAAAiAA0AAAABAAUAAAAVAA8AAAAMAAIAAAAWAA8AAAAMAAIAAAAXAA8AAAAMAAIAAAAYAA8AAAAMAAIAAAAZAA8AAAAMAAIAAAAaAA8AAAAMAAIAAAAbAA8AAAAMAAIAAAAcAA8AAAAMAAIAAAAdAA8AAAAMAAIAAAAeAA8AAAAMAAIAAAAPABYAAAADAAQAAAAOABYAAAABAAQAAAATABYAAAABAAQAAAASABYAAAACAAQAAAAUABsAAAACAAcAAAAUABoAAAACAAUAAAATABsAAAAAAAcAAAATABoAAAAAAAUAAAAbABsAAAADAAQAAAAaABsAAAACAAQAAAARACEAAAADAAQAAAAQACEAAAACAAQAAAAaACIAAAACAAcAAAAaACEAAAACAAUAAAAZACIAAAAAAAcAAAAZACEAAAAAAAUAAAATABwAAAAKAAgAAAATAB0AAAAKAAkAAAAUABwAAAAKAAgAAAAUAB0AAAAKAAkAAAAaABwAAAAKAAgAAAAaAB0AAAAKAAkAAAAbABwAAAAKAAgAAAAbAB0AAAAKAAkAAAAQACIAAAAKAAgAAAAQACMAAAAKAAkAAAARACIAAAAKAAgAAAARACMAAAAKAAkAAAAaACMAAAAKAAgAAAAZACMAAAAKAAgAAAAVABcAAAAKAAgAAAAVABgAAAAKAAkAAAASABcAAAAKAAgAAAASABgAAAAKAAkAAAATABcAAAAKAAgAAAATABgAAAAKAAkAAAAUABcAAAAKAAgAAAAUABgAAAAKAAkAAAAWABcAAAAKAAgAAAAWABgAAAAKAAkAAAAXABcAAAAKAAgAAAAXABgAAAAKAAkAAAAYABcAAAAKAAgAAAAYABgAAAAKAAkAAAAZABcAAAAKAAgAAAAZABgAAAAKAAkAAAAaABcAAAAKAAgAAAAaABgAAAAKAAkAAAAbABcAAAAKAAgAAAAbABgAAAAKAAkAAAAcABcAAAAKAAgAAAAcABgAAAAKAAkAAAAdABcAAAAKAAgAAAAdABgAAAAKAAkAAAAeABcAAAAKAAgAAAAeABgAAAAKAAkAAAAOABcAAAAKAAgAAAAOABgAAAAKAAkAAAAPABcAAAAKAAgAAAAPABgAAAAKAAkAAAAVAAUAAAAJAAcAAAAWAAUAAAAJAAcAAAAXAAUAAAAJAAcAAAAYAAUAAAAJAAcAAAAZAAUAAAAJAAcAAAAaAAUAAAAJAAcAAAANAAgAAAAJAAkAAAANAAkAAAAJAAkAAAAOAAgAAAAJAAkAAAAOAAkAAAAJAAkAAAARAAgAAAAJAAkAAAARAAkAAAAJAAkAAAAPAAcAAAAHAA8AAAAPAAYAAAAHAA8AAAAPAAUAAAAHAA8AAAAQAAUAAAAHAA8AAAAQAAYAAAAHAA8AAAAQAAcAAAAHAA8AAAARAAcAAAAJAAkAAAARAAYAAAAJAAkAAAARAAUAAAAJAAgAAAAOAAcAAAAJAAkAAAANAAcAAAAJAAkAAAAOAAYAAAAJAAkAAAANAAYAAAAJAAkAAAANAAUAAAAJAAgAAAAOAAUAAAAJAAgAAAATAAQAAAAHAAsAAAATAAMAAAAIAAwAAAATAAIAAAAIAAwAAAATAAEAAAAIAAwAAAATAAAAAAAIAAwAAAATAP//AAAIAAsAAAASAP//AAAHAAsAAAARAP//AAAHAAsAAAAQAP//AAAHAAsAAAAPAP//AAAHAAsAAAAOAP//AAAHAAsAAAANAP//AAAGAAsAAAANAAAAAAAGAAwAAAANAAEAAAAGAAwAAAANAAIAAAAGAAwAAAANAAMAAAAGAAwAAAANAAQAAAAHAAsAAAAOAAQAAAAHAAsAAAARAAQAAAAHAAsAAAAPAAMAAAAHAA8AAQAPAAQAAAAHAA8AAQAQAAMAAAAHAA8AAQAQAAQAAAAHAA8AAQA=") tile_set = ExtResource("5_6314l") metadata/_edit_lock_ = true @@ -269,13 +296,34 @@ position = Vector2(354, 172) position = Vector2(260, 194) [node name="BigTank" parent="Tilemaps/Actors" instance=ExtResource("35_31m6w")] -position = Vector2(494, 175) +position = Vector2(542, 104) ExplosionData = ExtResource("36_m2siw") [node name="BigTankHorizontal" parent="Tilemaps/Actors" instance=ExtResource("36_tj8x8")] -position = Vector2(475, 145) +position = Vector2(466, 113) ExplosionData = ExtResource("36_m2siw") +[node name="ScriptableEmitter" type="Area2D" parent="Tilemaps/Actors"] +position = Vector2(480.462, 167.331) +script = ExtResource("38_m2f1m") +Script = SubResource("Resource_g5r8k") +metadata/_edit_group_ = true + +[node name="Sprite2D" type="Sprite2D" parent="Tilemaps/Actors/ScriptableEmitter"] +texture = ExtResource("38_kc3i0") +hframes = 3 +frame = 1 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Tilemaps/Actors/ScriptableEmitter"] +shape = SubResource("CircleShape2D_b0wyy") + +[node name="BulletSpawner" type="Node2D" parent="Tilemaps/Actors/ScriptableEmitter"] +script = ExtResource("43_b8ffn") + +[node name="ControlPad3" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("20_0knpf")] +position = Vector2(436, 161) +Target = NodePath("../ScriptableEmitter") + [node name="ScriptableAreaTrigger" parent="Tilemaps" instance=ExtResource("28_fuxq3")] position = Vector2(230, 250) Events = Array[ExtResource("35_16ubp")]([SubResource("Resource_pgobb")]) diff --git a/Scripts/Actors/Boss.cs b/Scripts/Actors/Boss.cs index 5bc6eb3a..14570e14 100644 --- a/Scripts/Actors/Boss.cs +++ b/Scripts/Actors/Boss.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Cirno.Scripts.AttackPatterns; using Cirno.Scripts.Resources; using Cirno.Scripts.Resources.ScriptableBullets; using Cirno.Scripts.UI; @@ -7,7 +8,7 @@ using Godot.Collections; namespace Cirno.Scripts.Actors; -public partial class Boss : Enemy, IActivable +public partial class Boss : Enemy, IActivable, IScriptHost { [Export] public string BossName { get; private set; } //[Export] private Array Phases; diff --git a/Scripts/Actors/ScriptableBulletsEmitter.cs b/Scripts/Actors/ScriptableBulletsEmitter.cs new file mode 100644 index 00000000..fdd488d1 --- /dev/null +++ b/Scripts/Actors/ScriptableBulletsEmitter.cs @@ -0,0 +1,64 @@ +using System; +using Cirno.Scripts.AttackPatterns; +using Cirno.Scripts.Resources; +using Godot; + +namespace Cirno.Scripts.Actors; + +public partial class ScriptableBulletsEmitter : Area2D, IActivable, IScriptHost +{ + [Export] + public BulletScript Script { get; private set; } + + + private bool _isActive = false; + + public override void _Ready() + { + _homePosition = this.GlobalPosition; + } + + public bool Activate(ActivationType activationType = ActivationType.Toggle) + { + switch (activationType) + { + case ActivationType.Use: + case ActivationType.Toggle: + _isActive = !_isActive; + break; + case ActivationType.Close: + case ActivationType.Enable: + _isActive = true; + break; + case ActivationType.Open: + case ActivationType.Disable: + _isActive = false; + break; + case ActivationType.Destroy: + _isActive = false; + break; + } + + if (_isActive) + { + Script.Start(this); + } + + return true; + } + + public override void _Process(double delta) + { + if (!_isActive) return; + + Script.UpdatePhase(delta); + } + + private Vector2 _homePosition; + public Vector2 HomePosition => _homePosition; + + public void ChangeSpriteDirection(Vector2 direction) + { + + } +} \ No newline at end of file diff --git a/Scripts/Actors/ScriptableBulletsEmitter.cs.uid b/Scripts/Actors/ScriptableBulletsEmitter.cs.uid new file mode 100644 index 00000000..f4d8ea58 --- /dev/null +++ b/Scripts/Actors/ScriptableBulletsEmitter.cs.uid @@ -0,0 +1 @@ +uid://c1gu44a1kkmt1 diff --git a/Scripts/AttackPatterns/IScriptHost.cs b/Scripts/AttackPatterns/IScriptHost.cs new file mode 100644 index 00000000..02b0b218 --- /dev/null +++ b/Scripts/AttackPatterns/IScriptHost.cs @@ -0,0 +1,9 @@ +using Godot; + +namespace Cirno.Scripts.AttackPatterns; + +public interface IScriptHost +{ + public Vector2 HomePosition { get; } + public void ChangeSpriteDirection(Vector2 direction); +} \ No newline at end of file diff --git a/Scripts/AttackPatterns/MovementPattern.cs b/Scripts/AttackPatterns/MovementPattern.cs index d608fce5..46b99409 100644 --- a/Scripts/AttackPatterns/MovementPattern.cs +++ b/Scripts/AttackPatterns/MovementPattern.cs @@ -16,23 +16,28 @@ public partial class MovementPattern : AttackPattern private Tween tween; private bool isComplete = false; - - public override void Start(Boss boss) + + protected IScriptHost Boss; + + public override void Start(Node2D parent) { + if (parent is not IScriptHost boss) + return; + Boss = boss; - tween = boss.CreateTween(); + tween = parent.CreateTween(); isComplete = false; - Vector2 targetPosition = (Boss?.HomePosition ?? boss.GlobalPosition) + this.relativeTargetPosition; + Vector2 targetPosition = (Boss?.HomePosition ?? parent.GlobalPosition) + this.relativeTargetPosition; - tween.TweenProperty(Boss, "position", targetPosition, moveDuration) + tween.TweenProperty(Parent, "position", targetPosition, moveDuration) .SetTrans(transitionType) .SetEase(easeType) .Finished += () => isComplete = true; if (shootingPattern != null && !WaitForCompletion) { - shootingPattern.Start(boss); + shootingPattern.Start(Parent); } } diff --git a/Scripts/AttackPatterns/PatternTest.cs b/Scripts/AttackPatterns/PatternTest.cs index ba5295a9..891152e7 100644 --- a/Scripts/AttackPatterns/PatternTest.cs +++ b/Scripts/AttackPatterns/PatternTest.cs @@ -19,12 +19,12 @@ public partial class PatternTest : AttackPattern private double burstTimer; private BulletSpawner spawner; - public override void Start(Boss boss) + public override void Start(Node2D parent) { - Boss = boss; + Parent = parent; timer = 0; burstTimer = 0; - spawner = boss.GetNode("BulletSpawner"); + spawner = Parent.GetNode("BulletSpawner"); } public override void UpdatePattern(double delta) @@ -33,7 +33,7 @@ public partial class PatternTest : AttackPattern burstTimer += delta; if (timer < duration && burstTimer >= burstInterval) { - spawner.SpawnBullet(Boss.GlobalPosition, Vector2.Right, bulletSpeed, owner, bulletCount, bulletScene: BulletScene); + spawner.SpawnBullet(Parent.GlobalPosition, Vector2.Right, bulletSpeed, owner, bulletCount, bulletScene: BulletScene); burstTimer = 0; } } diff --git a/Scripts/AttackPatterns/SpiralPattern.cs b/Scripts/AttackPatterns/SpiralPattern.cs index 87cc67bd..91441216 100644 --- a/Scripts/AttackPatterns/SpiralPattern.cs +++ b/Scripts/AttackPatterns/SpiralPattern.cs @@ -13,19 +13,19 @@ namespace Cirno.Scripts.AttackPatterns; public partial class SpiralPattern : AttackPattern { [Export] public BulletResource BulletResource { get; set; } - [Export] public PackedScene BulletScene; - [Export] private float _bulletLifeTime = 20f; // Switch to res - [Export] private bool _destroyOnCollision = false; // Switch to res - [Export] private float bulletSpeed = 5f; // Switch to res + //Export] public PackedScene BulletScene; + //[Export] private float _bulletLifeTime = 20f; // Switch to res + //[Export] private bool _destroyOnCollision = false; // Switch to res + //[Export] private float bulletSpeed = 5f; // Switch to res [Export] private int bulletCount = 16; [Export] private float rotationSpeed = 0f; [Export] private float _rotationOffset = 0f; [Export] private float duration = 5f; [Export] private float burstInterval = 0.5f; [Export] private float spread = 360f; - [Export] private BulletOwner owner = BulletOwner.Enemy; // Switch to res - [Export] private DamageType _damageType = DamageType.Neutral; // Switch to res - [Export] private float _bulletDamage = 1f; // Switch to res + //[Export] private BulletOwner owner = BulletOwner.Enemy; // Switch to res + //[Export] private DamageType _damageType = DamageType.Neutral; // Switch to res + //[Export] private float _bulletDamage = 1f; // Switch to res [ExportGroup("Modifiers")] [Export] private BulletCreationModifier _modifier; [ExportGroup("Modifiers")] @@ -37,12 +37,12 @@ public partial class SpiralPattern : AttackPattern private double burstTimer; private BulletSpawner spawner; - public override void Start(Boss boss) + public override void Start(Node2D parent) { - Boss = boss; + Parent = parent; timer = 0; burstTimer = burstInterval; // start immediately - spawner = boss.GetNode("BulletSpawner"); + spawner = parent.GetNode("BulletSpawner"); } public override void UpdatePattern(double delta) @@ -55,12 +55,12 @@ public partial class SpiralPattern : AttackPattern Vector2 direction = BulletResource.Direction; - if (_targetPlayer && Boss.GameManager.PlayerPosition.HasValue) + if (_targetPlayer && GameManager.Instance.PlayerPosition.HasValue) { - direction = (Boss.GameManager.PlayerPosition.Value - Boss.GlobalPosition).Normalized(); + direction = (GameManager.Instance.PlayerPosition.Value - Parent.GlobalPosition).Normalized(); } - var bullet = BulletResource.MakeBullet(Boss.GlobalPosition, bulletCount, spread, angleOffset); + var bullet = BulletResource.MakeBullet(Parent.GlobalPosition, bulletCount, spread, angleOffset); bullet.Direction = direction; //spawner.SpawnBullet(MakeBullet(Boss.GlobalPosition, direction, angleOffset)); @@ -94,25 +94,27 @@ public partial class SpiralPattern : AttackPattern { var bl = BulletResource.MakeBullet(position, bulletCount, angleOffset); bl.Direction = direction; + + return bl; - return new BulletInfo() - { - Position = position, - Direction = direction, - LifeTime = _bulletLifeTime, - DestroyOnCollision = _destroyOnCollision, - Speed = bulletSpeed, - Owner = owner, - DamageType = _damageType, - Damage = _bulletDamage, - BulletCount = bulletCount, - Spread = spread, - BulletScene = BulletScene, - RotationOffset = angleOffset, - Modifier = _modifier, - TimeModifiers = _timeModifiers.ToList()// _timeModifiers.Select(x => x.MakeClone()).ToList() - // TimeModifiers = _timeModifiers?.Where(mod => mod != null).ToList() ?? new List() - }; + // return new BulletInfo() + // { + // Position = position, + // Direction = direction, + // LifeTime = _bulletLifeTime, + // DestroyOnCollision = _destroyOnCollision, + // Speed = bulletSpeed, + // Owner = owner, + // DamageType = _damageType, + // Damage = _bulletDamage, + // BulletCount = bulletCount, + // Spread = spread, + // BulletScene = BulletScene, + // RotationOffset = angleOffset, + // Modifier = _modifier, + // TimeModifiers = _timeModifiers.ToList()// _timeModifiers.Select(x => x.MakeClone()).ToList() + // // TimeModifiers = _timeModifiers?.Where(mod => mod != null).ToList() ?? new List() + // }; } public override bool IsComplete() diff --git a/Scripts/AttackPatterns/TargetedPattern.cs b/Scripts/AttackPatterns/TargetedPattern.cs index cde42b14..8ac31b75 100644 --- a/Scripts/AttackPatterns/TargetedPattern.cs +++ b/Scripts/AttackPatterns/TargetedPattern.cs @@ -23,16 +23,14 @@ public partial class TargetedPattern : AttackPattern private double burstTimer; private BulletSpawner spawner; //private Node2D player; - private GameManager _gameManager; - public override void Start(Boss boss) + public override void Start(Node2D parent) { - _gameManager = boss.GetNode("/root/GameScene"); - Boss = boss; + Parent = parent; timer = 0; burstTimer = 0; - spawner = boss.GetNode("BulletSpawner"); + spawner = Parent.GetNode("BulletSpawner"); } @@ -40,9 +38,9 @@ public partial class TargetedPattern : AttackPattern { timer += delta; burstTimer += delta; - if (timer < duration && burstTimer >= burstInterval && _gameManager.PlayerPosition.HasValue) + if (timer < duration && burstTimer >= burstInterval && GameManager.Instance.PlayerPosition.HasValue) { - spawner.SpawnTargetedBullet(Boss.GlobalPosition, _gameManager.PlayerPosition.Value, bulletSpeed, owner, BulletScene, bulletsPerShot, spread, modifier); + spawner.SpawnTargetedBullet(Parent.GlobalPosition, GameManager.Instance.PlayerPosition.Value, bulletSpeed, owner, BulletScene, bulletsPerShot, spread, modifier); burstTimer = 0; } } diff --git a/Scripts/Resources/AttackPattern.cs b/Scripts/Resources/AttackPattern.cs index 80ad96c1..e691f0ed 100644 --- a/Scripts/Resources/AttackPattern.cs +++ b/Scripts/Resources/AttackPattern.cs @@ -6,9 +6,9 @@ namespace Cirno.Scripts.Resources; [GlobalClass] public abstract partial class AttackPattern : Resource { - public Boss Boss; + public Node2D Parent; [Export] public bool WaitForCompletion = true; - public abstract void Start(Boss boss); + public abstract void Start(Node2D parent); public abstract void UpdatePattern(double delta); public abstract bool IsComplete(); } \ No newline at end of file diff --git a/Scripts/Resources/BossPhase.cs b/Scripts/Resources/BossPhase.cs index 32237954..a548cccc 100644 --- a/Scripts/Resources/BossPhase.cs +++ b/Scripts/Resources/BossPhase.cs @@ -31,7 +31,7 @@ public partial class BossPhase : Resource if (!currentPattern.WaitForCompletion || currentPattern.IsComplete()) { currentPatternIndex = (currentPatternIndex + 1) % Patterns.Count; - Patterns[currentPatternIndex].Start(currentPattern.Boss); + Patterns[currentPatternIndex].Start(currentPattern.Parent); } } } \ No newline at end of file diff --git a/Scripts/Resources/BulletScript.cs b/Scripts/Resources/BulletScript.cs new file mode 100644 index 00000000..9c9c782b --- /dev/null +++ b/Scripts/Resources/BulletScript.cs @@ -0,0 +1,41 @@ +using System.Linq; +using Godot; +using Godot.Collections; + +namespace Cirno.Scripts.Resources; + +[GlobalClass] +public partial class BulletScript : Resource +{ + [Export] + public Array Patterns { get; private set; } + + private Node2D _parent; + + private int _currentPatternIndex = 0; + private double _patternTimer; + + private AttackPattern CurrentPattern => Patterns[_currentPatternIndex]; + + public void Start(Node2D parent) + { + _parent = parent; + if (Patterns.Count == 0) return; + _currentPatternIndex = 0; + + CurrentPattern.Start(parent); + } + + public void UpdatePhase(double delta) + { + _patternTimer += delta; + + CurrentPattern.UpdatePattern(delta); + + if (!CurrentPattern.WaitForCompletion || CurrentPattern.IsComplete()) + { + _currentPatternIndex = (_currentPatternIndex + 1) % Patterns.Count; + CurrentPattern.Start(_parent); + } + } +} \ No newline at end of file diff --git a/Scripts/Resources/BulletScript.cs.uid b/Scripts/Resources/BulletScript.cs.uid new file mode 100644 index 00000000..4143ab42 --- /dev/null +++ b/Scripts/Resources/BulletScript.cs.uid @@ -0,0 +1 @@ +uid://bngko08ho85p6 diff --git a/Scripts/Resources/PatternGroup.cs b/Scripts/Resources/PatternGroup.cs index 077ec874..d9a1dd89 100644 --- a/Scripts/Resources/PatternGroup.cs +++ b/Scripts/Resources/PatternGroup.cs @@ -11,11 +11,11 @@ public partial class PatternGroup : AttackPattern [Export] private Array patterns; private int currentPatternIndex = 0; - public override void Start(Boss boss) + public override void Start(Node2D parent) { - Boss = boss; + Parent = parent; currentPatternIndex = 0; - patterns[currentPatternIndex].Start(boss); + patterns[currentPatternIndex].Start(parent); } public override void UpdatePattern(double delta) @@ -29,7 +29,7 @@ public partial class PatternGroup : AttackPattern currentPatternIndex++; if (currentPatternIndex < patterns.Count) { - patterns[currentPatternIndex].Start(Boss); + patterns[currentPatternIndex].Start(Parent); } } } diff --git a/Scripts/Resources/SimpleMovementPattern.cs b/Scripts/Resources/SimpleMovementPattern.cs index 004ab685..f725ca78 100644 --- a/Scripts/Resources/SimpleMovementPattern.cs +++ b/Scripts/Resources/SimpleMovementPattern.cs @@ -1,4 +1,5 @@ using Cirno.Scripts.Actors; +using Cirno.Scripts.AttackPatterns; using Godot; namespace Cirno.Scripts.Resources; @@ -14,16 +15,22 @@ public partial class SimpleMovementPattern : AttackPattern private Tween tween; private bool isComplete = false; - public override void Start(Boss boss) + protected IScriptHost Boss; + + public override void Start(Node2D parent) { + Parent = parent; + if (parent is not IScriptHost boss) + return; + Boss = boss; - tween = boss.CreateTween(); + tween = Parent.CreateTween(); isComplete = false; - Vector2 targetPosition = (Boss?.HomePosition ?? boss.GlobalPosition) + relativeTargetPosition; + Vector2 targetPosition = (Boss?.HomePosition ?? Parent.GlobalPosition) + relativeTargetPosition; - boss.ChangeSpriteDirection(-(boss.GlobalPosition - targetPosition)); - tween.TweenProperty(Boss, "global_position", targetPosition, moveDuration) + boss.ChangeSpriteDirection(-(Parent.GlobalPosition - targetPosition)); + tween.TweenProperty(Parent, "global_position", targetPosition, moveDuration) .SetTrans(transitionType) .SetEase(easeType) .Finished += () =>